这是第五版的课本所对应的do-file,另外方差分析本人认为比较简单,所以比较少些.
这是本人暑假在学习汉密尔顿的应用stata做统计分析后输到do-file中.注意:网上可以下载的都是数据.而不是do-file
由于无法直接上传do文件,所以大家下载txt文件后直接拷贝到stata11中的do-file即可
由于不是课本上全部的do程度,所以只是便宜收费些.
汉密尔顿统计分析源代码
- 这是第五版的课本所对应的do-file
- 应用stata做统计分析-汉密尔顿的do-file
- * 汉密尔顿《 应用stata做统计分析 》第五版,重庆大学出版社
- * 只是初步的整理,
- * 个人认为时间序列部分和程序以及模拟,矩阵讲的不好.
- * 重点关注两个实践问题: 1、 我如何使用stata做这一分析
- * 2、 这些统计结果能告诉我什么?
- cd D:\stata11\ado\Examples\汉密尔顿应用STATA做统计分析数据
- * 通过主成分分析和因子分析来构建合成变量.
- * 通过将观测值按经验类型或聚类做划分.
- * stata并不是一个万能的程序,但是只要它做,它就做的棒极了.
- * stata的命令有很强的一致性和直观意义.
- * 课本第25页-第29页的数学公式很有意义,需要用时注意查找.
- * 四种观测值的加权,aw,fw,iw,pw,详细说明见课本第49页.
- * 在任何分析中使用权数我们都要清楚的知道在该分析中进行加权的目的,
- * 权数本身可以是任何变量.
- * lowess 局部加权的散点图修匀曲线.
- *---------------------------------------------------------------
- * 第4章 摘要统计及交互表
- * table作为一般性的表格创建命令,可以创建多大七维的交互表.
- * 因为许多样本数据不能平等的进行四分或者其他的标准划分,
- * 所以这些百分位数通常是近似值.
- * 许多统计程序只有在变量服从正态分布时才能做的更好.
- use VTtown,clear
- tabulate meetings
- tabulate meetings kids
- tabulate meetings kids,column chi2
-
- * 偶尔我们可能需要在没有原始数据的情况下重新分析一个发表的表格,
- * 有一个专门的命令--tabi 即Immediate form of two-way tabulations
- * tabi #11 #12 [...] \ #21 #22 [...] [\ ...] [, options]
- tabi 30 18 \ 18 14,column //column报告每一列的相对频率.
- tabi 30 13 \ 18 7 \ 38 22, all exact
- * exact[(#)]: report Fisher's exact test
- * all:报告了chi2 lrchi2 V gamma taub
-
- *sum ,tabulate,table可以和表示重复观测值数目的频数权数一起使用,
- use sextab2,clear
- tabu lifepart gender [fw=count]
- * 这种加权相当于我们将每一个变量和常数都乘以count的平方
- * note:概率权数或者分析权数不能用于tabulate命令,
- * 因为这些权数的意义对于这个命令的主要选项来说不是很清楚的.
-
- *--------------------------------------------------------------------
- * 第五章 方差分析和其他比较方法
- * oneway y x和anova y x可以完成同样的命令,但是输出的表格不同,
- * 这是执行单因素方差分析,检验在x不同类别上y的平均数是否存在差异.
- * anova y x1 x2 执行双因素方差分析
- * 检验y的平均数在x1和x2两个分类变量的交互类别之间的差别.
- * 关于参数检验和非参数检验
- * t检验假定变量服从正态分布,这一假定不是十分关键,
- * 因为这些检验都比较稳健,但是,当非正态性设计严重的特意值,
- * 或者出现在小样本中,我们将检验中位数而不是平均数,
- * 并使用不做正态分布假定的非参数检验,这样会更可靠.
- * signtest 符号检验,是非参数检验,
- * 采用二项分布来检验关于某一中位数的假设.
- use writing.dta,clear
- ttest preS=10
- signtest preS=10 //使用二项分布,仅有双侧概率有意义.
- signrank postS= preS
- * 符号秩检验进假定分布是对称和连续的,
- * 对这样的数据采用符号秩检验,可以获得实质上和ttest相同的结论.
- * anova方差分析提供比t检验更为一般的方法来检验平均数之间的差异.
- use student2,clear
- anova drink belong gender belong#gender
- * 结论:在双因素方差分析中,交互效应对模型的贡献甚少(p=0.7448),
- * 这一交互效应并不显著的区别于0,
- * 因此我们更可能愿意拟合一个没有交互项,并且也更简单的模型.
- * 这确实是回归之前应该做的一件更有意义的事情.
- * 回归分析可以帮助理解复杂的方差分析的结果.
- * 协方差分析:扩展了多因素方差分析,
- * 使之可以涵盖混合了分类变量和连续变量的情况.
- * 可以通过在anova中指明哪些变量是连续的来实现这一点.
- anova drink belong gender C.gpa
- * 注:除了用于统计显著性的F检验,
- * 方差分析或协方差分析通常并不提供很多变量之间如何联系的描述信息.
- * 回归分析凭借其清晰的模型和参数估计,在描述方面做的更好.
- * 因为方差分析和协方差分析可以算是回归分析的特例,
- * 我们可以用回归分析的形式重新表述它们.
- reg //看到回归的内容,信息十分丰富.
- * 把单个虚拟变量的回归系数理解为它对y的预测值或者条件平均数的效应.
- *----------------------------------------------------------------
- * 第六章 线性回归分析
- * rvfplot 自动采用最近的回归分析结果画出残差对拟合值(即预测值)
- * 的标绘图.
- * pwcorr,sig
- * 显示皮尔逊相关系数矩阵,采用配对删除的方法去掉缺失值,
- * 并显示对每个相关系数进行H0:ρ=0的t检验概率.
- * reg y x1 x2 x3 [aweight=w]
- * 变量w代表分析权数,
- * 这种加权相当于我们将每一个变量和常数都乘以w的平方根,
- * 然后所执行的常规回归.
- * xtmixed population year || city: year
- * ||之前定义了固定效应,是描述人口的平均变动趋势;
- * ||之后定义了随机效应,准许每一城市具有特定的截距和斜率
- * (即不同的起点和增长率)
- *
- * 残差包含了模型在哪里拟合较差的信息,
- * 因而对诊断分析或者排除故障的分析很重要.
- * predict的各种选项详见课本第145页.
- use states,clear
- spearman csat expense
- * 这是基于序次(rank-based)的等级相关系数.
- * 可以用来测量定序变量之间的联系,
- * 或者作为皮尔逊相关的一种抗特异值的稳健指标,
- * 把测量变量转换成序次后,
- * csat和expense之间的斯比尔曼等级相关等价于皮尔逊相关.
- pwcorr csat expense ,sig
- * 虽然数值不是一定相同,
- * 但是它们在拒绝没有关联这一原假设上的结论是一致的.
-
- * areg--Linear regression with a large dummy-variable set
- areg csat percent ,absorb(region)
- * areg 进行拟合变量的时候,事先并不需要先创建需年变量后再进行,
- * 它能吸收一个k分类变量的效应.
- * 其模型拟合,对吸收变量的F检验和其他关键方面都和---
- *---我们明确设立虚拟变量获得结果完全一样.
- * 注意,areg并不提供单个虚拟变量的系数估计.
- * 但是它有两个优点:
- * (1)加快探索进程,很快可对一个虚拟变量是否值得研究做出反馈.
- * (2)对变量创建虚拟变量,会导致变量太多或模型太大.
-
- * 当然,明确的虚拟变量也有其他优点,(比如纳入交互效应)
- * 斜率虚拟变量:将虚拟变脸乘以测量型变量.
-
- * 对于匆忙的分析人员来说,
- * 逐步回归法提供了模型选择的自动化之路.
- * SW的缺点:
- * 逐步法并不在其选择过程中考虑变量的实际意义或理论意义,
- * 也不评价和解决每一步模型中可能产生的缺点.
-
- * 多项式回归的评价:
- * 虽然多项式回归更好的拟合了数据,但它也有重要的统计弱点,
- * (1)不同幂次的x项互相之间可能高度相关,从而导致多重共线性.
- * (2)另外,多项式回归比较倾向于追随哪些x取值特大或特小的异常案例,
- * 因此,一小部分数据点便可以对结果施加不成比例的影响,
- * 因为这两个原因,多项式回归的结果会因样本而异,
- * 对某个数据拟合的很好,但是对其他数据则很糟糕.
- * 总结:从实际数据出发,来考察是否有必要加入收入的平方项.
-
-
- *-------------------------------------------------------------
- * 第七章 回归诊断
- * 定义:拟合一个初始模型,
- * 然后仔细查看结果中可能存在的问题的迹象或模型需要改进的方面.
- * 多重共线:R2很大但是回归系数却并不显著.
- * 具体资料详见王菲的笔记和张鹏伟的笔记.
- *-------------------------------------------------------------
- * 第八章 拟合曲线
- * 将OLS等线性参数模型的用途扩展到包含曲线关系的情况.
- * 我们在显示中遇到更多的是非线性情况,有三种办法:
- *(1)非参数办法:包括波段回归(band reg)和lowess(修匀)
- *(1-1)波段回归
- * 非参回归适宜作为一种探索性工具,
- * 因为他能在不要求分析员事先设定某一特殊模型的情况下直观的概要描述数据.
- use missile,clear
- graph twoway (mband CEP year,bands(8)) ///
- (scatter CEP year), ///
- ytitle("圆概率误差,miles")
- * 拟合了中位数-波段图,
- * bands(8)是指将散点图划分为8个等宽的垂直波段,
- * 并使用线段将每一波段内的(y的中位数,x的中位数)点连接起来.
- * 非参回归并不要求事先假定函数形式,
- * 准许我们以开放的心态对数据进行探索.
- *
- graph twoway (mband CEP year,bands(8)) ///
- (scatter CEP year), ///
- ytitle("圆概率误差,miles") by(country)
- * 非参数回归能够辅助定性描述或者作为随后提到的参数模型做准备工作.
- * 波段回归的不足:
- * 波段在x取值的不同区间都具有同样的宽度,
- * 尽管其中的一些波段包含很少的观测案例,甚至不包含观测案例,
- * 比如对于服从正态分布的变量而言,
- * 波段回归曲线的左右端点常常只反映少量数据点.
- *(1-2)lowess修匀---locally weighted scatterplot smooting
- * 即局部加权散点图修匀,
- lowess CEP year if country==0,bwidth(0.4)
- * 选项 bwidth(0.4) 设定lowess的波段宽度,40%的样本进行修匀.
- * 即用于对每一点进行修匀的样本比例,默认设置是0.8,
- * 波段宽度越接近于1,修匀的程度越高.
- use ice,clear
- graph twoway (lowess sulfate year,bwidth(0.05) clwidth(thick)) ///
- (line sulfate year,clpattern(solid)), ///
- ytitle("SO4 ion concentration, ppb") ///
- legend(label(1 "修匀") label(2 "原始数据") )
-
- lowess sulfate year,bwidth(0.05) gen(smooth)
- label variable smooth "修匀so4"
- gen rough= sulfate- smooth //波动值
- label variable rough "波动值so4"
- graph twoway line smooth year,saving(fig_smooth,replace)
- graph twoway line rough year,saving(fig_rough,replace)
- graph combine fig_smooth.gph fig_rough.gph,rows(2)
- *(2)转换变量的线性回归:box-cox
- * 常用的转换有 对数转换,幂阶梯(ladder of powers),box-cox转换.
- help boxcox
- use tornado,clear //1916-1986年之间美国龙卷风信息的数据
- graph twoway (scatter avlost year) ///
- (lfit avlost year), ///
- yline(0) ytitle("Average lives lost/tornado")
- * 通过对数转换来进行逆转换,
- gen loglost=ln(avlost)
- reg loglost year
- predict yhat2
- graph twoway (scatter loglost year) ///
- (mspline yhat2 year)
- replace yhat2=exp(yhat2) //逆转换
- graph twoway (scatter avlost year) ///
- (mspline yhat2 year,bands(50)),yline(0)
- * box-cox转换,
- boxcox avlost year,model(lhsonly)
- //left-hand-side Box-Cox model; the default
- *(3)非线性回归
- * 变量转换通过使用熟悉的内在线性模型技术使得拟合一些曲线关系成为可能,
- * 但是,内在非线性模型需要不同类型的拟合技术.
- use nonlin,clear
- nl exp2 y1 x
- predict yhat1
- graph twoway (scatter y1 x) ///
- (line yhat1 x,sort) //看非线性的预测值和数据的拟合
- use lichen,clear
- * Gompertz曲线是已被广泛用于对生物成长过程进行建模的非对称的S形曲线.
- twoway scatter rlong age || lowess rlong age
- range newage 0 396 100 //Generate numerical range
- * range varname #first #last [#obs]
- replace age=newage[_n-11] if age >=.
- sum rlong age newage
- nl gom3 rlong age,init(B1=34)
- * 非线性回归程序可能对其初始参数估计值非常敏感,
- * 尤其是处理很少数据或相对复杂的模型时.
- * 初始值的设定可以先前针对类似数据的经验或
- * 其他学者发表的成果可能有助于提供合适的初始值.
- *-------------------------------------------------------------
- * 第九章 稳健回归
- * 命令 ---rreg ---qreg ---bsqreg
- * 长期以来,由于样本中经常包含异常值,
- * 导致不同样本之间在结果上差异很大或者说效率较差.
- * 稳健回归的方法在理想数据条件下几乎可以取得比OLS一样的效率,
- * 而在数据不理想时能够取得比OLS高得多的效率.
- * 两种稳健回归:rreg 和qreg
- * 优点:都能抵抗异常值,
- * 在非正态和厚尾型误差分布的情况下便能取得高于OLS的效率,
- * 缺点:无法搞定误差异分布或误差相关时.
- * rreg: Robust regression
- use robust1,clear
- reg y1 x //理想的回归
- rreg y1 x //
- * 采用迭代再加权最小二乘法(IRLS)程序RREG来取得稳健回归.
统计分析参考附件
[程序分享] 应用stata做统计分析-汉密尔顿的do-file
本文来自: 人大经济论坛 Stata专版 版,详细出处参考: https://bbs.pinggu.org/forum.php?mod=viewthread&tid=1214252&page=1&from^^uid=3495972