三、线性回归分析1相关性分析回归分析多重共线性等相关检验和处理2线性回归分析的stata应用实例本部分用到的实例是BigAndy’sBurgerBarn的销售模型。BigAndy的汉堡销售收入取决于单价和广告支出水平。因此,这个模型包含两个解释变量和一个常数项。其中,sales为指定城市的月销售额并以千美仄元度量,price是以美元度量的单个汉堡的价格,advert为广告支出,同样以千美元度量。sales=α1+α2*price+α3*advert+ε3相关性分析相关性分析主要目的是研究变量之间关系的密切程度。相关性分析的方法主要有:Pearson相关系数分析、KendallT相关系数分析、Spearman秩相关系数分析以及偏相关系数分析。1.Pearson相关系数分析Pearson相关性分析是一个描述线性相关强度的量,取值于一1和1之间。Pearson相关性分析的命令格式:correlate[varlist][if][in][weight][,correlate_options]pwcorr[varlist][if][in][weight][,correlate_options]correlate尽可能使用两两变量中所有没有缺失的数据pwcorr只采用没有任何缺失数据的完整观测值4选项含义means显示变量的均值、标准差、最大最小信covariance显示协方差矩阵选项含义obs显示计算每个相关系数时使用的观测值个数sig显示显著性检验的P值print(#)在屏幕上仅显示达到相应显著性水平的相关系数star(#)在显著的相关系数上打上星号listwise使用listwise的方法处理缺失值,这样pwcorr就退化成correlate命令了。所谓listwis。方法是说,如果某一观测值中某个或者多个变量出现缺失,则将整个观测值删掉,这也正是correlate命令使用的方法。对于没有缺失值的数据集,这两种方法没有区别correlate选项说明pwcorr选项说明5用pwcorr命令实现所有变量的Pearson相关系数分析,并在显著性水平超过0.05的相关系数上打上星号,其命令为:pwcorr,sigstar(0.05)62.KendallT相关系数分析KendallT相关性分析是一个非参数度量变量间的相关性,其取值在一1和1之间。KendallT相关性分析的命令格式:ktau[varlist][if][in][weight][,ktau_options]选项含义print(#)在屏幕上仅显示达到相应显著性水平的相关系数star(#)在显著的相关系数上打上星号7用ktau命令实现所有变量的KendallT相关系数分析,并在显著性水平超过0.05的相关系数上打上星号,其命令为:ktau,star(0.05)83.Spearman秩相关系数分析Spearman秩相关性分析也是一种不依赖于总体分布的非参数检验,取值也在一1和1之间。Spearman秩相关性分析的命令格式:spearman[varlist][if][in][weight][,spearman_options]9用spearman命令实现所有变量的Spearman秩相关系数分析,并在显著性水平超过0.05的相关系数上打上星号,其命令为:spearman,star(0.05)104.偏相关系数分析双变量相关分析是研究两个变量之间的相关关系,有时在分析两个变量之间相关关系时,往往会有其他变量的影响因素混合在里面,此时计算出来的相关系数可能并不能真正反映两个变量之间的关系。偏相关性分析的命令格式:pcorrvarnamelvarlist[if][in][weight]11用pcorr命令实现偏相关分析,其命令为:pcorr,salespriceadvert12回归分析回归分析时常用的Stata命令有:regress,predict,test命令。regress,predict,test是一组命令,它们完成各种简单和多元的普通最小二乘法回归。1.regress实现因变量对自变量的回归regress命令的格式:regressdepvarindepvars[if][in][weight][options]因变量自变量选项含义noconstant不加常数项做线性回归hascons由用户指定常数项的值level(#)设定置信水平(默认值为95%)beta报告标准化的beta系数noheader不报告输出表名13实现因变量为销售收入,自变量为单价和广告支出的线性回归,其命令为:regresssalespriceadvert表下方区域为基本的回归结果。第1列依次为被解释变量sales,解释变量price、advert,截距项constant;第2列回归系数;第3列回归系数的标准误;第4列回归系数的t统计量值;第5列p值;第6列95%的置信区间14表左上方区域为方差分析表。第2列从上到下依次为回归平方和(SSE)、残差平方和(SSR)和总离差平方和(SST);第3列为自由度,分别为k=2,n-k-1=75-2-1=72,n-1=75-1=74;第4列为均方和(MSS),由各项平方和除以相应的自由度得到。表右上方区域给出了样本数(Numberofobs)、判定系数(R-squared)、调整的判定系数(AdjR-squared)、F统计量的值、回归方程标准误(RootMSE)以及其他一些统计量的信息。152.predict计算拟合值和残差predict命令的格式:predict[type]newvar[if][in][,single_options]指定存储类型的格式变量名指定需要拟合值还是残差值,若为resid,则是残差计算前面所求回归方程的拟合值和残差。其命令分别为:predicty1predicte,resid163.test进行指定的检验test命令主要用来检验系数是否符合一定的关系.test命令的格式如下:testvarlvar2…var3ktestvar=Ctestvarl=var2testvarl=(var2+var3)/C检验多个变量的系数是否同时为零检验变量的系数是否为C检验两个变量的系数是否相等检验多个变量之间存在的一些关系用test命令检验价格和广告支出的系数是否同时为0,其命令为:testpriceadvertP值0.05,拒绝原假设,即价格和广告支出的系数不同时为017相关检验和处理回归分析时通常需要检验数据是否存在多重共线、序列相关和异方差等问题,如果存在这些问题,则需要对其进行处理。1.多重共线性的检验和处理1.1stata中多重共线性检验的命令格式为:vif//该命令用来得到自变量的方差膨胀因子一般来说,判断多重共线性的标准是(两个标准必须同时满足):*最大的vif大于10;*平均的vif大于1.由判断标准可知不存在多重共线性181.2处理多重共线性的方法1.如果只关心方程的预测能力,则在整个方程显著的条件下,可以不必关心具体的回归系数。2.增加样本容量,剔除导致多重共线性的变量或者修改模型设定形式。3.对于时间序列样本,通过使用差分模型可以一定程度上消除原模型中的多重共线性。4.岭回归方法。异方差的检验和处理2.1stata中异方差检验的命令格式为:hettest或者imtest,white(怀特检验)判断存在异方差的标准是:命令输出结果的P值小于0.05,则拒绝原假设,即存在异方差性。hettest和怀特检验输出结果的p值均大于0.05故不存在异方差性202.2处理异方差性的方法1.在regress命令的options选项中选择robust选项即可;2.加权最小二乘法(WLS)。213.序列相关的检验和处理2.1stata中检验序列相关性的方法:1.BG检验命令为:estatbgodfrey(默认p=1)estatbgodfrey,lags(p)estatbgodfrey,nomiss0(使用不添加0的BG检验)2.box-pierceQ检验/Ljung-BoxQ命令为:regyx1x2x3predictel,residwntestqel(使用stata提供的默认滞后期)wntestqel,lags(p)(使用自己设定的滞后期)3.DW检验:现在已经不常用,因为其只能检验一阶自相关。命令为:estatdwatson223.2stata中处理序列相关性的方法:1.Newey稳健性标准差neweyyx1x2x3,lag(p)(滞后阶数必选)2.使用OLS+聚类稳健的标准差(clusterrobuststandarderror)面板数据中经常使用聚类稳健的标准差。regyx1x2x3,cluster(state)(聚类稳健标准差,假设“state”为聚类变量)3.使用可行广义最小二乘法(FGLS)praisyx1x2x3(使用默认的PW估计法)praiseyx1x2x3,corc(使用CO估计法)4.修改模型设定,可能自相关是由于遗漏了自相关的解释变量。