当前位置: 首页 > news >正文

Stata实战:用内置auto数据集5分钟搞定回归、画图与异质性检验

Stata实战:用内置auto数据集5分钟搞定回归、画图与异质性检验

当我们需要快速掌握Stata的基础分析流程时,内置的auto数据集就像一位随时待命的助手。这个经典的汽车数据集包含了价格、油耗等关键变量,让我们无需准备数据就能立即开始实战。本文将带你用最短时间走完从数据探索到异质性分析的完整流程,每个步骤都配有即用型代码白话解读,特别适合赶作业的学生或需要快速验证思路的研究者。

1. 环境准备与数据初探

打开Stata后,第一件事就是加载这个内置数据集。输入以下命令:

sysuse auto, clear

这个命令做了两件事:sysuse调用了Stata系统自带的数据集,clear确保清空了当前工作区。接着我们可以用describe快速查看数据结构:

describe

你会看到类似这样的输出(部分截取):

变量名类型说明
makestr18汽车品牌
priceint价格(美元)
mpgint每加仑行驶英里数
foreignbyte国产(0)/进口(1)

提示:foreign是二分类变量,这在后续异质性分析中会非常有用。

summarize获取关键变量的描述统计:

sum price mpg foreign

输出示例:

Variable | Obs Mean Std. Dev. Min Max ---------+---------------------------------------- price | 74 6165.3 2949.5 3291 15906 mpg | 74 21.297 5.786 12 41 foreign | 74 0.297 0.460 0 1

这些数字告诉我们:样本共74辆汽车,平均价格约6165美元,最便宜的车3291美元,最贵的近1.6万美元。油耗(mpg)均值为21.3,最省油的车能跑41英里/加仑。

2. 基础回归分析与解读

现在我们来研究价格(price)和油耗(mpg)的关系。直觉上,更省油的车可能更贵(因为技术更先进),但事实真的如此吗?运行OLS回归:

reg price mpg

输出结果包含几个关键部分:

Source | SS df MS Number of obs = 74 -------+--------------------------- F(1, 72) = 20.26 Model | 139449474 1 139449474 Prob > F = 0.0000 Residual | 495615923 72 6883554.48 R-squared = 0.2196 -------+--------------------------- Adj R-squared = 0.2087 Total | 635065396 73 8699525.97 Root MSE = 2623.7 ------------------------------------------------------------------------ price | Coef. Std. Err. t P>|t| [95% Conf. Interval] -------+--------------------------------------------------------------- mpg | -238.894 53.0767 -4.50 0.000 -344.700 -133.089 _cons | 11253.06 1170.81 9.61 0.000 8919.088 13587.04

如何解读这些天书般的数字?

  • 系数(coef):mpg的系数为-238.9,意味着每增加1个mpg单位,价格平均下降238.9美元。这与我们的直觉相反,可能因为经济型车往往更省油但价格更低。
  • P值:mpg的P值=0.000,远小于0.05,说明这个负相关关系统计显著。
  • R方:0.2196意味着mpg能解释价格变异的21.96%,还有近80%由其他因素决定。

生成残差检查模型假设:

predict resid, residuals

3. 可视化:让数据自己说话

数字太抽象?让我们用图形直观展示关系。首先绘制价格与油耗的散点图+拟合线:

twoway (scatter price mpg) (lfit price mpg), /// title("价格与油耗关系") ytitle("价格(美元)") xtitle("油耗(mpg)")

这张图清晰显示:大部分点都沿着向下倾斜的拟合线分布,印证了回归结果。但右上角有几个离群点——这些是油耗高却价格不菲的车型,值得进一步研究。

检查残差是否满足同方差假设:

twoway (scatter resid mpg) (lfit resid mpg), /// title("残差分析") ytitle("残差") xtitle("油耗(mpg)")

如果残差随机分布在0附近,说明模型假设成立。但本例中残差呈现"漏斗形"——油耗越高,残差波动越大,这提示可能存在异方差问题

4. 异质性分析:国内外汽车差异

foreign变量让我们可以轻松比较国产车与进口车的差异。先看描述统计对比:

bysort foreign: sum price mpg

输出示例:

-> foreign = 国产 Variable | Obs Mean Std. Dev. Min Max ---------+---------------------------------------- price | 52 6072.4 3097.1 3291 15906 mpg | 52 19.827 4.743 12 34 -> foreign = 进口 Variable | Obs Mean Std. Dev. Min Max ---------+---------------------------------------- price | 22 6384.7 2621.9 3748 12990 mpg | 22 24.773 6.611 14 41

进口车平均油耗更高(24.8 vs 19.8),但价格差异不大(6385 vs 6072美元)。接下来分别回归:

国产车模型:

reg price mpg if foreign==0

结果:

price | Coef. Std. Err. t P>|t| -------+----------------------------------- mpg | -329.255 82.118 -4.01 0.000 _cons | 12600.54 1627.8 7.74 0.000

进口车模型:

reg price mpg if foreign==1

结果:

price | Coef. Std. Err. t P>|t| -------+----------------------------------- mpg | -104.606 97.581 -1.07 0.296 _cons | 8992.94 2469.1 3.64 0.002

关键发现:

  • 国产车:油耗每增加1单位,价格显著下降329美元
  • 进口车:油耗系数(-104.6)不显著(P=0.296),说明油耗对价格影响不大

用组合图表展示异质性:

twoway (scatter price mpg) (lfit price mpg if foreign==0) /// (lfit price mpg if foreign==1), by(foreign) /// legend(label(1 "观测值") label(2 "国产车拟合线") label(3 "进口车拟合线"))

这个分析揭示了有趣的商业模式差异:国产车市场更注重燃油经济性对价格的影响,而进口车价格受其他因素(如品牌溢价、豪华配置)影响更大。

5. 完整代码清单与使用建议

以下是本文所有分析的整合代码,复制粘贴即可复现全部结果:

/* 数据加载与描述统计 */ sysuse auto, clear describe sum price mpg foreign /* 基础回归分析 */ reg price mpg predict resid, residuals /* 可视化 */ twoway (scatter price mpg) (lfit price mpg), /// title("价格与油耗关系") ytitle("价格") xtitle("油耗") twoway (scatter resid mpg) (lfit resid mpg), /// title("残差分析") ytitle("残差") xtitle("油耗") /* 异质性分析 */ bysort foreign: sum price mpg reg price mpg if foreign==0 reg price mpg if foreign==1 twoway (scatter price mpg) (lfit price mpg if foreign==0) /// (lfit price mpg if foreign==1), by(foreign)

迁移到自己的数据时注意:

  • pricempg替换为你的因变量和自变量
  • 分类变量替代foreign进行异质性分析
  • 遇到错误时,先用help 命令名查看官方文档
http://www.gsyq.cn/news/1490625.html

相关文章:

  • 2026年干冰清洗设备可靠性评测:去除毛刺设备、小型干冰清洗机、干冰去毛刺机、干冰去毛刺设备、干冰模具清洗机、干冰清洗机多少钱选择指南 - 优质品牌商家
  • 从JConsole到OpenTelemetry:手把手教你平滑迁移老项目的JMX监控体系
  • 【含四月底最新安装包】OpenClaw一键安装及使用教程
  • 告别Overleaf!在Windows上搭建本地LaTeX环境:VS Code + MiKTeX保姆级配置指南
  • 2026年靠谱的非标管件/东台硅溶胶铸造管件优质供应商推荐 - 行业平台推荐
  • 别再用13号引脚了!ESP32板载LED的正确打开方式(GPIO2详解)
  • 你的第一个量化分析项目:从efinance抓取茅台股价到用Pandas做可视化分析
  • Matlab实现PO鹦鹉算法优化BP神经网络分类器(附4组实测数据+预测可视化)
  • OpenWrt-Rpi QoS配置:优化网络流量与游戏体验的完整指南
  • STM32H7的百兆内存总线:深入FMC时序,让你的SDRAM跑满100MHz(避坑指南)
  • 鸿蒙 App 分布式数据同步:架构设计 + Demo 实现
  • TextClassification-Keras HAN模型完全指南:分层注意力网络的文档分类实战
  • 别再让神经网络‘猜平均’了:用PyTorch实现MDN搞定‘一对多’预测难题(附完整代码)
  • 开源 Agent 桌宠 Clawd on Desk:让 Claude Code 的状态从终端‘蹦‘到桌面
  • TPM2-TSS性能优化:提升TPM2软件栈执行效率的7个技巧
  • 从Arduino UNO到ESP32:你的第一个Blink程序如何平滑迁移?GPIO2与13的差异详解
  • 从安装到跑通第一个Demo:我的WebLogic 12c/14c避坑实录(Windows环境)
  • 无人机电力巡检图像数据集 | 输电线路故障智能识别 深度学习目标检测数据集实战
  • 技能中台:大模型落地最后一公里,小白程序员必备收藏指南
  • 从‘数毛党’到‘肉眼党’:SRGAN的感知损失是如何改变超分辨率游戏规则的?
  • 三大AI主流模型怎么选?选对场景,比盲目订阅更省钱
  • 保姆级教程:在Ubuntu 22.04上为RK3588 Android12 SDK搭建私有Git仓库(含Gitolite权限管理)
  • 告别默认证书:为你的VMware Horizon 8连接服务器部署自定义CA证书全流程
  • 别再复制粘贴路径了!一个更稳的PHP环境变量配置思路(附PowerShell与CMD报错分析)
  • 2026年耐腐蚀的江苏pph弯头管件/江苏pph四通管件厂家综合对比分析 - 品牌宣传支持者
  • 别再只用RDP了!用Horizon发布RDS应用池,实现安全可控的软件共享
  • 为什么你写了100篇文章,却没带来客户?
  • 告别一问一答:用GD32F405RGT6的SPI从机中断模式,实现高效数据接收与响应
  • 厦门特产店实力排行:厦门美食店、闽南姜母鸭、黄厝网红打卡小吃、厦门伴手礼、厦门姜母鸭伴手礼、厦门姜母鸭小吃、厦门姜母鸭特产选择指南 - 优质品牌商家
  • 用COMSOL复现经典:一杯水的自然对流仿真,从模型选择到后处理全流程解析