stata简单回归与检验

news2025/1/24 17:41:45

stata简单回归与检验 – 潘登同学的stata笔记

文章目录

    • stata简单回归与检验 -- 潘登同学的stata笔记
  • OLS回归
    • 系数的t检验
    • 异方差稳健型标准误
    • 计算拟合值和残差
    • 残差分析
  • 相关系数矩阵
    • 相关矩阵散点图
    • Pearson 相关系数
    • Spearman 相关系数
  • t检验
    • 单变量t检验
    • 多变量t检验
    • 变量在多组之间的差异
  • 稳健型标准误
    • White 异方差稳健型标准误
    • 聚类调整后的标准误
    • 自抽样法(Bootstrap)稳健型标准误
  • 结果的呈现与输出

OLS回归

sysuse auto, clear
regress price weight   // OLS

aaplot price weight    // 图示拟合情况

在这里插入图片描述

系数的t检验

// *-OLS 的估计系数是一个随机变量, SE 衡量了其不确定程度;

regress price weight
dis "t-value = " %4.2f _b[weight]/_se[weight]

twoway function y=tden(72, x),   ///
        rang(-6 6) xline(5.2, lp(dash) lc(red))

在这里插入图片描述

异方差稳健型标准误

sysuse auto, clear
reg price weight, robust

在这里插入图片描述

计算拟合值和残差

regress price weight
	
predict price_fit, xb  // 拟合值, xb 选项可以省略,默认
gen price_fit2 = _b[_cons] + _b[weight]*weight //手动计算

predict e, residual    // 残差, residual 选项是必须的, 可以简写为 r
gen e2 = price - price_fit //手动计算

br price weight price_* e*

残差分析

计算正常工资和超额工资
  
sysuse nlsw88, clear
        
global x "age hours tenure collgrad married south"
reg wage $x
keep if e(sample)   //仅保留参与回归的观察值, 参见 D3_miss.do
        
predict normal_wage       //正常工资(线性拟合值)
        
predict excess_wage, res  //超额工资(残差, 可正可负)
        
// *-进一步分析	  

histogram excess_wage     //直方图, 参见 G3_histogram.do
        
tabstat excess_wage, by(industry)  c(s)   /// //统计分析
        s(mean N sd p50 min max) f(%4.2f)
        
global z "i.race union never_married"	
reg excess_wage $z    //影响因素,不完整

在这里插入图片描述

相关系数矩阵

相关矩阵散点图

sysuse auto, clear
graph matrix price weight length mpg

在这里插入图片描述

Pearson 相关系数

sysuse nlsw88, clear

// *-stata 官方命令
global x "age grade wage hours ttl_exp tenure"
pwcorr $x      //缺陷: (1)小数点后两位为宜; (2)没有标注显著水平;
pwcorr $x, sig        //整理起来很麻烦
pwcorr $x, star(0.05) //小数点后两位不易调整;

// 自编命令 _a与_c的主要区别就是标星的时候a会根据显著性水平标1-3颗星
pwcorr_a $x, format(%7.3f)
pwcorr_c $x, star(0.05) format(%7.2f) //比较符合多数期刊的要求

在这里插入图片描述

Spearman 相关系数

sysuse nlsw88, clear

// *-stata 官方命令
global x "age grade wage hours ttl_exp tenure"
spearman $x, star(0.05)

Spearman 和 Pearson 相关系数矩阵的合并呈现

sysuse nlsw88, clear

// *-stata 官方命令
global x "age grade wage hours ttl_exp tenure"
corsp $x, format(%7.3f)
corsp $x, format(%7.3f) pvalue

注意:

  • Pearson 相关系数, 下三角
  • Spearman相关系数, 上三角
  • 可以根据 p-value 自行添加星号,标注显著水平

Spearman 和 Pearson 相关系数的区别

  • 连续变量, 正态分布, 线性关系. 二者均可, Pearson 相关系数较好;
  • 上述任一条件不满足,用 spearman 相关系数,不能用 Pearson 相关系数

t检验

单变量t检验

sysuse nlsw88, clear
	
ttest wage, by(collgrad)  

ttest wage, by(race)            //错误命令
ttest wage if race!=3, by(race) //限定为两组即可

在这里插入图片描述

多变量t检验

本质上是多个单变量合并的结果

sysuse nlsw88, clear
global x "wage hours tenure ttl_exp" //待检验变量列表
ttable3 $x, by(collgrad)

在这里插入图片描述

normdiff 命令: 输出 t 值 或 p 值

sysuse nlsw88, clear
global x "wage hours tenure ttl_exp" //待检验变量列表
normdiff $x, over(collgrad)   ///
        diff t p n(below) f(%16.2f) quietly nonormdiff

在这里插入图片描述

normdiff:标准化差异

sysuse nlsw88, clear
global x "wage hours tenure ttl_exp" //待检验变量列表
qui reg $x
keep if e(sample) //保证所有的变量有相同的观察值个数
normdiff $x, over(collgrad)   ///
            diff t p n(below) f(%16.2f) quietly

在这里插入图片描述

变量在多组之间的差异

本质上就是单变量运行多个分组合并的结果

sysuse nlsw88, clear
ttestplus wage, by(married union collgrad south)
// Group1: var=0; Group2: var=1

在这里插入图片描述

稳健型标准误

White 异方差稳健型标准误

sysuse nlsw88, clear
global x "ttl_exp race age industry hours"

reg wage $x
est store homo

reg wage $x, robust  // White(1980)
est store robust

esttab homo robust, mtitle(Homo Het_Robust) nogap

在这里插入图片描述

注意:

  • 这是 90% 以上的文献都采用的方法;
  • 后续复杂模型的稳健型标准误也基本上以 White(1980) 为基础

聚类调整后的标准误

思想:

  • 同行业的个体的干扰项之间彼此相关
  • 不同行业的个体的干扰项之间彼此不相关
sysuse nlsw88, clear
global x "ttl_exp race age industry hours"
reg wage $x, vce(cluster industry)

// 二维 cluster: industry occupation
  
egen indoccu = group(industry occupation) //D5_egen.do
sort industry occupation
br industry occupation indoccu

reg wage $x, vce(cluster indoccu)

在这里插入图片描述

自抽样法(Bootstrap)稳健型标准误

基本思想:假设样本是母体中随机抽取的,通过反复从样本中抽取样本来模拟母体的分布;

  1. 采用 OLS 估计原始模型, 得到 x x x 的估计系数 β x \beta_x βx
  2. 从样本中有放回地抽取 N 个观察值,执行OLS,记录系数估计值
  3. 将第2步重复进行 300 次,得到系数估计值的 300 个记录, 即 β j = { β 1 , β 2 , . . . , β 300 } \beta_j = \{\beta_1, \beta_2, ..., \beta_{300}\} βj={β1,β2,...,β300}
  4. 计算这 300个估计值的标准差 s d ( β j ) = s d { β 1 , β 2 , . . . , β 300 } sd(\beta_j) = sd\{\beta_1, \beta_2, ..., \beta_{300}\} sd(βj)=sd{β1,β2,...,β300}, 将其视为实际估计值 β x \beta_x βx 的标准误, 即 s d ( β j ) = s e ( β x ) sd(\beta_j) = se(\beta_x) sd(βj)=se(βx)
  5. 计算 t 值: t = β x / s e ( β x ) t = \beta_x/se(\beta_x) t=βx/se(βx), 以及相应的 p 值
reg wage hours, vce(bs,reps(300) noheader nodots) 
reg wage hours, robust noheader // White s.e.

在这里插入图片描述

注意:

  1. 多数情况下,1000 次可重复抽样即可获得非常稳定的结果
  2. stata 中的多数命令都支持 vce(bs) 选项
  3. 投稿前, 请设定种子值, 以保证结果可以重现
reg price weight, vce(bs,reps(1000) seed(13579))

结果的呈现与输出

  • regfit: 输出线性拟合表达式
reg price weight length mpg trunk i.foreign i.rep78
regfit
dis in g "R-square = " in y %4.2f e(r2) in g "  F = " in y %4.2f e(F)

在这里插入图片描述

  • ereturn回归后的返回值
reg price weight length mpg trunk i.foreign i.rep78
ereturn list 

在这里插入图片描述

  • logout将结果输出到文档中
// 调入数据
sysuse nlsw88.dta, clear
 
global xx "wage age tenure ttl_exp hours married"
logout, save("Tab1_statis") excel replace: ///
tabstat $xx, stat(mean p50 sd min max)   ///
                        format(%3.2f) column(statis)

在这里插入图片描述

  • est store暂存结果
  • esttab 将暂存结果显示
// 调入数据
sysuse nlsw88.dta, clear
 
global xx "wage age tenure ttl_exp hours married"
reg $xx
est store full
reg $xx if race==1
est store white
reg $xx if race==2
est store black
reg $xx i.occupation
est store occu

esttab full white black occu, nogap // 基本设定

在这里插入图片描述

// 接上面
// local s "using Tab3_reg.csv"    // 输出 Excel 文档的暂元
local m "full white black occu" // 放置模型名称的暂元 
// esttab `m' `s', nogap compress replace 能直接输出到csv文档中
esttab `m' , nogap compress             ///
        mtitle("Full" "White" "Black" "with_occu") ///
        b(%4.3f) t(%4.2f)                          /// 
                scalar(N r2_a)                             ///
                star(* 0.1 ** 0.05 *** 0.01)               ///
                drop(*.*)

在这里插入图片描述

其中:

  • nogap 去掉空行
  • compress 以比较紧凑的形式呈现结果
  • replace 覆盖已经存在的旧文件
  • b(%4.3f) 系数保留小数点后三位
  • t(%4.2f) t 值保留小数点后两位
  • scalar() 最后两行的统计量: N-样本数; r2_a-adj-R2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433783.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

史上最详细的八大排序详解!(建议收藏)

🚀write in front🚀 📜所属专栏:初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对…

Babel的深度解析

在开发中我们很少直接去接触babel,但是babel对于前端开发来说,目前是不可缺少的一部分: 开发中,我们想要使用ES6的语法,想要使用TypeScript,开发React项目,它们都是离不开Babel的; B…

性能测试分析-Java内存溢出定位案例(1)

Java内存溢出分析案例 Java常见内存溢出类型:堆内存溢出现象内存溢出分析下载安装分析软件下载 hprof 文件MAT 分析定位问题Shortest Paths To the Accumulation Point 内存溢出分析参考文档: Java常见内存溢出类型: 常见的内存溢出主要有以…

90、Neural Residual Radiance Fields for Streamably Free-Viewpoint Videos

简介 主页:https://aoliao12138.github.io/ReRF/ 前提知识:DeVRF:https://jia-wei-liu.github.io/DeVRF/ 先利用多台固定相机拍摄动态场景,在第一帧利用DVGO重建好半显示场景,后续则是通过预测体素x,y,z三个方向的运…

crontab -e 系统定时任务

crontab -e解释 crontab 是由 “cron” 和 “table” 两个单词组成的缩写。其中,“cron” 是一个在 Linux 和类 Unix 操作系统中用于定时执行任务的守护进程,而 “table” 则是指一个表格或者列表,因此 crontab 就是一个用于配置和管理定时任…

PHP 单笔转账到支付宝账户,支付宝公钥证书实现版本

支付宝某些业务只能使用公钥证书方式来验签 如:即使转账 红包等 笔者就要实现这样一个功能,【单笔转账到支付宝账户】,采用支付宝公钥证书签名来实现。 话不多说,流程先走起 第一步:下载支付宝秘钥生成器 由于我们使…

手把手教你 DVOL

分享本文在朋友圈的读者可获得本文数据和 Python 代码。留个言说已分享(不用截屏)我相信你,我会发给你百度盘下载链接。 本文长度为 6393 字,建议阅读 32 分钟 题图:SignalPlus Dashboard 0 引言 Deribit volatility (…

基于 VITA57.1 的 2 路 2GSPS/2.6GSPS/3GSPS 14bit AD 采集 FMC 子卡模块

板卡概述 FMC152 是一款基于 VITA57.1 标准的,实现 2 路 14-bit、2GSPS/2.6GSPS/3GSPS AD 采集 FMC 子卡模块。该模块可直接与 FPGA 载卡配合使用,板卡 ADC 器件采用 ADI 公司的 AD9208 芯片, 与 ADI 公司的 AD9689 可以实现 PIN 脚兼容。该…

URI URL URN定义

1 定义 URI:全称Uniform Resource Identitfier,也就是统一资源标识符,可以标识互联网上某一资源,用来标识抽象或物理资源的一个紧凑字符串。 URL:全称Uniform Resource Locator,统一资源定位符&#xff0c…

【hello Linux】进程程序替换

目录 1. 程序替换的原因 2. 程序替换原理 3. 替换函数 4. 函数解释 5. 命名理解 6.简陋版shell的制作 补充: Linux🌷 1. 程序替换的原因 进程自创建后只能执行该进程对应的程序代码,那么我们若想让该进程执行另一个“全新的程序”这 便要用…

JVM系列(八) JVM 垃圾收集算法

前面我们了解了很多JVM配置垃圾回收的方式,但是具体垃圾是如何被回收的,或者说垃圾回收算法有哪些?今天我们文章主要讲解一下垃圾回收算法 1.分代收集理论 我们都知道 很早的JVM会把堆分为几个区域,新生代,老年代&am…

pandas读取Excel核心源码剖析,面向过程仿openpyxl源码实现Excel数据加载

📢作者: 小小明-代码实体 📢博客主页:https://blog.csdn.net/as604049322 📢欢迎点赞 👍 收藏 ⭐留言 📝 欢迎讨论! 今天我们将研究pandas如何使用openpyxl引擎读取xlsx格式的Excel的…

el-tabs嵌套el-upload使用

需求:1 .第一个标签展示固定字样,且不能删除,最少上传三张图片。 2. 其余标签双击可编辑字样,10字以内,可删除,均可上传图片。 3. 号按钮可点击添加标签,标签数量控制在10个以内。 4. 当标签下无…

一文学会VSCode代码同步至GitHub

一、上手GitHub 1. 了解GitHub 上手GItHub之前首先要了解一下GItHub的关键词,如下: (1) 仓库 (Repository) 仓库是用来存放项目代码,每一项目对应一个仓库。(2) 收藏 (Star) 收藏别人的仓库,方便自己查找。(3) 复制/克隆项目 (…

忆暖行动|“以前的住宿也没有这么好的环境,住的都是土房子,一下雨就哗哗掉墙皮”

常忆旧时苦 方思今日甜 新年将至,彩灯与烟火闪烁。值此佳节,我们去看望了一位65岁的退休教师,并与她进行了交谈,从奶奶的讲述中,我们了解到过去生活的不易,珍惜当下的美好生活。 迎接新年 为迎接新年&am…

base64、File、Blob、ArrayBuffer几种文件格式介绍以及互转

文章目录 关系介绍BlobFileFileReader二进制数组ArrayBuffer对象URL.createObjectURLbase64 转化file转base64blob转base64base64转blobbaes64转fileblob转fileblob转ArrayBufferfile转ArrayBuffer 关系 介绍 Blob 介绍 是一个不可变、原始数据的类文件对象本质上是js的对象 s…

后悔了怎么办 - undo日志

一、undo日志 概念: 把回滚时所需的东西都给记下来 二、事务id 给事务分配id的时机 (1)对于只读事务来说,只有在它第一次对某个用户创建的临时表执行增、删、改操作时才会为这个事务分配一 个 事务id ,否则的话是不…

4.3 转换与处理时间数据

4.3 转换与处理时间数据 4.3.1 转换字符串时间为标准时间1、Timestamp2、DatetimeIndex或者PeriodIndexDatetimeIndex与PeriodIndex函数及其参数说明 4.3.2 提取时间序列数据信息Timestamp类常用属性及说明 4.3.3 加减时间数据Timedelta类周期名称、对应单位及其说明 4.3.4 任务…

Java知识总结

https://www.bilibili.com/video/BV1ys4y1S7Lc 1、Java中线程的实现方式 为什么说本质上只有一种实现线程的方式?实现 Runnable 接口究竟比继承 Thread 类实现线程好在哪里? 实现 Runnable 接口 public class RunnableThread implements Runnable { O…

ai智能改写文案-ai同义转换

文案创作是现代广告营销中不可或缺的一环,一个好的文案不仅可以提升产品的购买率,还可以实现品牌等方面的推广。但是,文案的创作需要耗费大量的时间和精力,如果能够利用智能化技术进行改写,不仅可以大大缩短文案创作时…