用stata内置数据集进行说明:
. sysuse auto, clear. regress price mpg foreign

表格中的p值只保留到三位小数,所以看上去是0,实际上不是严格等于0
. ereturn list
这个命令可以输出更加完整的结果,其中就有系数矩阵e(b)、协方差矩阵e(V)、残差自由度e(df_r),后面会用到。

t统计量

t统计量的通用公式为: t=(估计量-假想值) / 估计量的标准误 零假设的β值一般都是0,所以t可以直接等于估计量 / 该估计量的标准误

这里以foreign变量为例:
. display _b[foreign]1767.2922. display _se[foreign]700.15797. display
_b[foreign]/_se[foreign]2.5241336
这个值比上面表格里面的值更精确,此外因为标准误本质还是一个标准差(大于0),所以系数列和t列正负相同。

如果求多个变量的t统计量,则需要借助mata,它是stata中进行矩阵运算的一个工具。求多个β的标准误具体算法涉及到矩阵的相关知识点,在陈强计量教材的p89的公式5.50有介绍,即向量
β_hat的协方差矩阵的主对角元素开根号。

在stata命令窗口直接输入mata表示进入mata模块,end表示退出。

st_matrix表示导入矩阵 

第一行最后的英文单引号'表示转置,注意:有时候从其他网页或文件直接复制粘贴过来的可能是中文单引号,所以报错 

第三行就是协方差矩阵的主对角元素的平方根 

第四行:矩阵元素之间的运算需要加上冒号

p值

p值计算公式为:p = 2 ∗ (1 − T(df,|t|)),其中T( )是自由度为df的t分布对应的累计分布函数。仍以foreign变量为例:
. local t = _b[foreign]/_se[foreign]. di 2*ttail(e(df_r),abs(`t')).01383634
第一行表示定义一个局部变量,只能在下文被使用一次(相对应的是全局变量) 

第二行:abs( )求绝对值,e(df_r)调用自由度,ttail()求t分布的尾部概率,也就是上面公式的1 − T(df,|t|)
,注意:第二行调用局部变量t时,t左右两边有两个符号,分别是键盘左上方的波浪线下面的符号,和英文的单引号。

多个变量的p值计算如下:

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信