Stata无偏性检验(安慰剂检验代码)

article/2025/10/23 13:17:15

无偏性检验原理

Stata回归的系数值只是某个样本的观测值,不一定是真值(事实上恰好等于真值的概率极小),但较大概率会落在真值的附近,且分布有一定规律。
对于回归系数结果的无偏性,我们可以通过在整体中反复抽样进行检验,观测结果分布。

检验思路

在Excel中随机生成一列x(自变量),一列u(干扰项),然后令y=1.6x+u,这样生成x,y两列相关性很高但并非完全线性的数据,其中u刻画了其他因素的冲击。

Stata代码

此检验需要做多次循环,而恰好Stata写循环又比较鬼畜,下面给出完整代码:

//随机指定treat变量
forvalue i=1/200{ //循环200次clearimport excel "C:\Users\Desktop\计量助教\有效性检验\有效性检验.xlsx", firstrow  //调入数据,换pathgen random_digit1=ceil(runiform(1,1000)) //生成1到1000随机数(可能重复)g new_treat=0sort random_digit1 //根据随机数random_digit1排序gen s=_nreplace new_treat=1 if s<51  //样本容量50 /*(51-1)*///合并,回归,提取系数////g x = post*new_treatreg y x if new_treat==1  //筛选lable为1的样本部分g _b_new_treat = _b[x]  //提取x的回归系数g _se_new_treat = _se[x] //提取x的标准误g _t_new_treat=_b_new_treat/_se_new_treat  //计算得到p值g _p_new_treat = 2*ttail(e(df_r), abs(_t_new_treat))  //计算得出pvaluekeep _b_new_treat  _se_new_treat _t_new_treat _p_new_treatduplicates drop _b_new_treat, forcesave placebo`i', replace  //把第i次placebo检验的系数和标准误存起来
}//纵向合并200次的系数和标准误 
use placebo1, clear
forvalue i=2/200{append using placebo`i' //纵向合并200次回归的系数及标准误
}  //t值,p值作图
gen p值=_p_new_treat
gen 估计系数=_b_new_treat
twoway scatter p值 估计系数 , color(*.5)|| kdensity 估计系数 ,tline(1.6 , lp(dash) lc(black) )  tlabel(1.6 , add  labsize(*.75)) //1.6是基准回归中的系数真值   * 删除临时文件 *
forvalue i=1/200{erase  placebo`i'.dta 
} * 保存结果 *
save result2.dta,replace

代码注释已经较为详细,只要把数据路径换掉就可以跑。

结果

选取1000个观测值,第一次跑200遍,每次随机抽取50个观测值:
200遍循环
下面还有每次抽取400个,跑50次循环结果:
50遍
可以明显看出,样本容量较大时更容易发现真值,或者说从分布结果来看距离真值更近。


http://chatgpt.dhexx.cn/article/XmHmHAOm.shtml

相关文章

最小二乘法的无偏性

最小二乘法的介绍&#xff0c;可以参考 最小二乘法的多角度理解 这篇文章。 只有两个参数的情况下&#xff1a; 已知X&#xff0c;Y两个向量数据。我们假设Y中的元素与X中的元素满足线性关系 中间的步骤可以参考文章 最小二乘法的多角度理解 最后&#xff0c;…

无偏性、有效性、一致性

https://www.matongxue.com/madocs/808/ 无偏性 有效性 进行估计的时候也是&#xff0c;估计量越靠近目标&#xff0c;效果越“好”。这个“靠近”可以用方差来衡量。 一致性

无偏性、有效性

无偏性 定义式&#xff1a; 也即&#xff1a;估计量的数学期望等于被估计参数的真实值&#xff0c;则称此此估计量为被估计参数的无偏估计&#xff0c;即具有无偏性&#xff0c;是一种用于评价估计量优良性的准则。 通俗说&#xff0c;就是只要你对估计量求完了期望&#xff…

main函数的argc与argv

int main(int argc, char** argv) 1、 argc与argv的默认值&#xff08;argv相当于数组&#xff0c;尺寸由argc控制&#xff09; argc默认为1&#xff0c;因此argv的默认是argv[0]—指向程序运行时的全路径名 #include <iostream> #include <opencv2/core/core.hpp>…

命令行参数argc和argv的解释

今日学习到K&R第5.10节&#xff0c;谈及命令行参数argc和argv&#xff0c;以下是本人的一些见解和思考。 在C语言环境中&#xff0c;main函数的括号里会有两个参数&#xff1a;argc和argv。 例如&#xff1a; int main(int argc, char *argv[]) 第一个参数argc&#xf…

c++ main中argc和argv解析

目录 一、概述 二、例子 1、代码 2、编译运行 3、参数传递方式1 4、参数传递方式2 一、概述 argc 是 argument count的缩写&#xff0c;表示传入main函数的参数个数&#xff1b;argv 是 argument vector的缩写&#xff0c;表示传入main函数的参数序列或指针&#xff…

c语言argc和argv的作用,c语言中int main(int argc, char argv)中argc和argv的作用

摘要:我们在开发C语言时,经常看到int main(int argc, char *argv[]),但是没有太多的关注于argc和argv这两个参数,其实它们有很多的作用呢。 编写一个计算器 为了简单起见,我在Ubuntu下编写了一个支持个位数“加、减”操作的计算器,我们待会通过这个实例向大家讲解argc和a…

argc 和 argv

argc 是 argument count的缩写&#xff0c;表示传入main函数的参数个数&#xff1b; argv 是 argument vector的缩写&#xff0c;表示传入main函数的参数序列或指针&#xff0c;并且第一个参数argv[0]一定是程序的名称&#xff0c;并且包含了程序所在的完整路径&#xff0c;所以…

php argc argv,argc和argv怎么使用

argc即为argument count的缩写&#xff0c;表示传入main函数的参数个数&#xff1b; argv即为argument vector的缩写&#xff0c;表示传入main函数的参数序列或指针&#xff0c;并且第一个参数argv[0]一定是程序的名称&#xff0c;并且包含了程序所在的完整路径&#xff0c;所以…

c语言argc lt 3,C语言中argc与argv怎么用?为什么我初始化argc时候老是出错??

满意答案 zrc28 2013.07.24 采纳率&#xff1a;59% 等级&#xff1a;12 已帮助&#xff1a;6548人 argc与argv[]是启动C程序时系统传入的&#xff0c;可以直接使用。argc是参数数量&#xff0c;argv是参数表数组。如命令行为“prg.exe 1 2 3”&#xff0c;则argc为4&#xf…

c语言中argc的作用,C语言中main函数的参数argc和argv

参考资料: C++语言中的main函数,经常带有参数argc,argv,如下: int main(int argc, char** argv) int main(int argc, char* argv[]) 这两个参数的作用: argc 是指命令行输入参数的个数(以空白符分隔) argv存储了所有的命令行参数 假如你的程序是hello.exe,如果在命令行运…

php args argc,Main函数参数argc,argv说明

Wikipedia&#xff0c;自由的百科全书 C/C语言中的main函数&#xff0c;经常带有参数argc&#xff0c;argv&#xff0c;如下&#xff1a; int main(int argc, char** argv) int main(int argc, char* argv[]) 这两个参数的作用: argc 是指命令行输入参数的个数(以空白符分隔) a…

C和C++中argc和argv的含义以及用法

C和C中argc和argv的含义以及用法 各位小伙伴在接触C和C的时候&#xff0c;总会看到这样的东西 很多伙伴应该都一直注意到了这两个参数&#xff0c;但是很多伙伴编写多年C和C代码&#xff0c;还没有使用过这两个参数。argc和argv这两个参数看起来很复杂&#xff0c;其实一点都…

c++笔记(1):C++中命令行参数argc,argc[ ]究竟是什么

C中命令行参数argc&#xff0c;argc[ ]究竟是什么 1.argc为整数 2.argv为指针的指针&#xff08;可理解为&#xff1a;char **argv or: char *argv[] or: char argv[][] &#xff0c;argv是一个指针数组&#xff09; 注&#xff1a;main()括号内是固定的写法。 3.下面给出一…

关于C++中的argc,argv的使用方法

想必很多人都好奇C中的int argc 和 char **argv 。那我们今天来看看argc,argv的使用方法 1&#xff0c;int argc argc 实际上指命令行接受的参数个数&#xff0c; 比如说&#xff0c;这个程序给的参数是10和21&#xff0c;那么argc的值就是3。为什么是三呢&#xff0c;不是二…

前端面试题整理(一)

1、什么是HTML HTML 指的是超文本标记语言 (Hyper Text Markup Language)&#xff0c;不是一种编程语言&#xff0c;而是一种标记语言&#xff0c;是标准通用标记语言下的一个应用&#xff0c;也是一种规范&#xff0c;一种标准&#xff0c;它通过标记符号来标记要显示的网页中…

《动手学深度学习》—学习笔记

文章目录 深度学习简介起源特点小结 预备知识获取和运行本书的代码pytorch环境安装方式一方式二 数据操作创建运算广播机制索引运算的内存开销NDArray和NumPy相互变换Tensor on GPU&#xff08;PyTorch&#xff09; 自动求梯度MXNetPyTorch 查阅文档 深度学习基础线性回归线性回…

1. Linux系统简介

目录 1.1 操作系统是什么 1.2 Linux是什么,有哪些特点? 1.3 Linux和UNIX的关系及区别 UNIX 的坎坷历史 Linux 的那些往事 UNIX与Linux的亲密关系 UNIX/Linux系统结构 1.4 类UNIX系统是什么鬼? 1.5 Linux中大量使用脚本语言,而不是C语言! C语言并不是最佳选择 脚…

NLP在线医生(一)

1.1 背景介绍 学习目标: 了解智能对话系统的相关背景知识.掌握使用Unit对话API. 什么是智能对话系统&#xff1f; 随着人工智能技术的发展, 聊天机器人, 语音助手等应用在生活中随处可见, 比如百度的小度, 阿里的小蜜, 微软的小冰等等. 其目的在于通过人工智能技术让机器像人类…

计算机网络自顶向下 概念填空整理(完整)

第一章 计算机网络和因特网 1.1 什么是因特网 我们可以从两个角度来回答这个问题&#xff1a;一种是描述组成它的软硬件&#xff1b;另一种是将其视为为分布式应用提供基础服务的联网设施来描述。其实&#xff0c;第一种角度&#xff0c;是从它的组成来描述&#xff0c;第二种…