大家好,欢迎来到IT知识分享网。
一、回归系数的解释
- 与市场价值相关的,例如,价格、销售额、工资等都可以取对数;
- 以年度量的变量,如受教育年限、工作经历等通常不取对数;
- 比例变量,如失业率、参与率等,两者均可;
- 变量取值必须是非负数,如果包含0,则可以对y取对数ln(1+y);
取对数的好处:
- 减弱数据的异方差性
- 如果变量本身不符合正态分布,取 了对数后可能渐近服从正态分布
- 模型形式的需要,让模型具有经济学意义。
双对数模型:𝑙𝑛𝑦 = 𝑎 + 𝑏𝑙𝑛𝑥 + 𝜇,x每增加1%,y平均变化b%:
半对数模型:𝑦=a+blnx+μ,x每增加1%,y平均变化b/100个单位:
半对数模型:𝑙𝑛𝑦=a+bx+μ,x每增加1个单位,y平均变化(100b)%:
对于多元回归模型,我们就加一句“在控制其他变量不变的情况下”,然后逐一的套用上面的话即可。
二、虚拟变量X
三、回归实例
- 以评价量为因变量,分析其它变量和评价量之间的关系;
- 以评价量为因变量,研究影响评价量的重要因素
一般使用Stata这个软件进行回归分析比较方便。
关于Stata这个软件的安装有时间我会再写一篇指导安装的文章。
详情请看这篇文章:
【番外】Stata软件安装教程
下面我们直接应用:
首先我们导入需要的数据;
点击“确定”后软件会产生一行代码,我们只需把这行代码复制到控制台运行即可完成导入。
导入成功的标志就是右边的变量存储区会有变量显示出来:
由于下面的控制台只负责运行代码,而不会保存代码。所以如果想将代码保存(就像Matlab的m文件一样),那么可以照如下操作:
新建一个do文件,在新建的文件中粘贴刚才的代码,然后保存到你常用的路径中即可:
下次直接打开该do文件点击运行即可。
Stata数据的描述性统计
1.定量数据
summarize 变量1 变量2 … 变量n
注:
- 这后面的变量可以手写,也可以直接双击右侧变量区的变量直接添加
- summarize可以简写作sum,后面加变量名,也可以达到一样的效果
- 该函数只适用于对定量数据,即数值数据进行统计描述,一定不能把定性数据的变量放进去。
- 不要把结果直接截图放到论文中。因为在论文中会因为分辨率问题变得模糊,很影响论文观感。正确的做法是全选中这里给提供的表格,鼠标右击,点击”复制表格“,复制到Excel中美化一下,然后再复制到论文中。
2.定性数据
注:
- 后面的gen(A)可以加可以不加。
- 可以简写为tab
3.Stata回归的语句
- Model:代表的是SSR:回归平方和
- Residual:代表SSE,误差平方和
- Total:SST
- df:自由度
- R-squared =1-SSR/SST
- MS=SS/df,是将SS按照自由度平均后的值,这个用的很少,一般不用考虑,一般用的是前面两项
样本的个数n是846个,那么SST的自由度就是n-1=845,SSR对应的自由度是等于k,SSE对应的自由度是n-k-1。
这个自由度是用来做什么的呢?是最后拟合调整拟合优度的。
这个F(2,843)是一个F统计量构造出来的。此F统计量他的第一个自由度是2,第二个自由度是843。实际上对应的就是SSR和SSE的两个自由度。其检验值等于15.09。
(你要看一个检验,首先一定要弄清楚这几个东西:原假设是什么,构造的统计量是什么:F统计量还是什么,还有就是对应的检验值的P值。)
那么此处的H0(原假设)是什么呢?
我们这里有K个自变量,这里的H0就是假设这K个自变量前面的回归系数全部都是0。
假如我们没有拒绝H0(也就是P值求出来比如说是0.3,他是大于0.05的),那就无法拒绝H0,那次是就要下结论:无法拒绝原假设,也就是认为K个变量的回归系数都是0,那此时就认为我们的回归没有多大意义。因为回归出来所有的系数都是0,所以这个模型就没有任何意义。
而此时我们看我们生成的数据:P值是0.0000,是明显小于0.05的,所以此时我们的回归是有意义的,回归系数不全为0。
还有就是这里既有R-squared,也有Adj R-squared,上面已经说了R-squared是如何计算的,这个参数叫做拟合优度,在有些情况下我们需要调整这个拟合优度,算出来的改进值就是Adj R-squared。
关于拟合优度:
- 回归分为解释型回归和预测型回归。 预测型回归一般才会更看重 R 2 R^2 R2。
解释型回归更多的关注模型整体显著性以及自变量的统计显著性和经济意义显著性即可。 - 对于预测型回归,如果 R 2 R^2 R2实在太低,可以对模型进行调整,例如对数据取对数或者平方后再进行回归。
- 数据中可能有存在异常值或者数据的分布极度不均匀也会导致 R 2 R^2 R2过小
- 补充:关于拟合优度和调整后的拟合优度: 我们引入的自变量越多,拟合优度会变大。但我们倾向于使用调整后的拟合优度,如果新引入的自变量对SSE的减少程度特别少,那么调整后的拟合优度反而会减小
note: G4 omitted because of collinearity
接下来我们就将所有的变量放入回归分析中:
regress 团购价元 评价量 商品毛重kg A1 A2 A3 B1 B2 B3 B4 B5 B6 B7 B8 B9 C1 C2 D1 D2 D3 D4 D5 > E1 E2 E3 E4 F1 F2 G1 G2 G3 G4
这就是我们这一道题的第一问。
ssc install reg2docx, all replace
安装好之后运行如下代码:
//下面这一行就是回归的语句,如果之前运行过,此处可以不重复运行 regress 评价量 团购价元 商品毛重kg A1 A2 A3 B1 B2 B3 B4 B5 B6 B7 B8 B9 C1 C2 D1 D2 D3 D4 D5 E1 E2 E3 E4 F1 F2 G1 G2 G3 G4 //下面这行语句是把上面回归产生的结果保存到名为m2的文件中 est store m2 //下面这行语句是把m2文件中的内容用我们刚刚安装的那个插件reg2docx 来重新处理生成一张我们想要的表格 reg2docx m2 using m2.docx, replace
官话:为了更为精准的研究影响评价量的重要因素(去除量纲的影响),我们可考虑使用标准化回归系数。
那么如何进行标准化回归呢?
对数据进行标准化,就是将原始数据减去它的均数后,再除以该变量的标准差,计算得到新的变量值,新变量构成的回归方程称为标准化回归方程,回归后相应可得到标准化回归系数。 标准化系数的绝对值越大,说明对因变量的影响就越大(只关注显著的回归系数哦,不显著的我们没必要进行比较)
那如何在Stata中实现标准化回归呢?
Stata标准化回归命令
regress y x1 x2 … xk,beta
regress 评价量 团购价元 商品毛重kg A1 A2 A3 B1 B2 B3 B4 B5 B6 B7 B8 B9 C1 C2 D1 D2 D3 D4 D5 E1 E2 E3 E4 F1 F2 G1 G2 G3 G4,beta
最终全部代码如下:
// 按键盘上的PageUp可以使用上一次输入的代码(Matleb中是上箭头) // 清除所有变量 clear // 清屏 和 matlab的clc类似 cls // 导入数据(其实是我们直接在界面上粘贴过来的,我们用鼠标点界面导入更方便 本条请删除后再复制到论文中,如果评委老师看到了就知道这不是你写的了) // import excel "C:\Users\hc_lzp\Desktop\数学建模\第7讲.多元回归分析\代码和例题数据\课堂中讲解的奶粉数据.xlsx", sheet("Sheet1") firstrow import excel "课堂中讲解的奶粉数据.xlsx", sheet("Sheet1") firstrow // 定量变量的描述性统计 summarize 团购价元 评价量 商品毛重kg // 定性变量的频数分布,并得到相应字母开头的虚拟变量 tabulate 配方,gen(A) tabulate 奶源产地 ,gen(B) tabulate 国产或进口 ,gen(C) tabulate 适用年龄岁 ,gen(D) tabulate 包装单位 ,gen(E) tabulate 分类 ,gen(F) tabulate 段位 ,gen(G) // 下面进行回归 regress 评价量 团购价元 商品毛重kg // 下面的语句可帮助我们把回归结果保存在Word文档中 // 在使用之前需要运行下面这个代码来安装下这个功能包(运行一次之后就可以注释掉了) // ssc install reg2docx, all replace // 如果安装出现connection timed out的错误,可以尝试换成手机热点联网,如果手机热点也不能下载,就不用这个命令吧,可以自己做一个回归结果表,如果觉得麻烦就直接把回归结果截图。 est store m1 reg2docx m1 using m1.docx, replace // * p<0.01 p<0.05 * p<0.1 // Stata会自动剔除多重共线性的变量 regress 评价量 团购价元 商品毛重kg A1 A2 A3 B1 B2 B3 B4 B5 B6 B7 B8 B9 C1 C2 D1 D2 D3 D4 D5 E1 E2 E3 E4 F1 F2 G1 G2 G3 G4 est store m2 reg2docx m2 using m2.docx, replace // 得到标准化回归系数 regress 评价量 团购价元 商品毛重kg, b // 画出残差图 regress 评价量 团购价元 商品毛重kg A1 A2 A3 B1 B2 B3 B4 B5 B6 B7 B8 B9 C1 C2 D1 D2 D3 D4 D5 E1 E2 E3 E4 F1 F2 G1 G2 G3 G4 rvfplot // 残差与拟合值的散点图 graph export a1.png ,replace // 残差与自变量团购价的散点图 rvpplot 团购价元 graph export a2.png ,replace // 为什么评价量的拟合值会出现负数? // 描述性统计并给出分位数对应的数值 summarize 评价量,d // 作评价量的概率密度估计图 kdensity 评价量 graph export a3.png ,replace // 异方差BP检验 estat hettest ,rhs iid // 异方差怀特检验 estat imtest,white // 使用OLS + 稳健的标准误 regress 评价量 团购价元 商品毛重kg A1 A2 A3 B1 B2 B3 B4 B5 B6 B7 B8 B9 C1 C2 D1 D2 D3 D4 D5 E1 E2 E3 E4 F1 F2 G1 G2 G3 G4, r est store m3 reg2docx m3 using m3.docx, replace // 计算VIF estat vif // 逐步回归(一定要注意完全多重共线性的影响) // 向前逐步回归(后面的r表示稳健的标准误) stepwise reg 评价量 团购价元 商品毛重kg A1 A3 B1 B2 B3 B4 B5 B6 B7 B9 C1 D1 D2 D3 D4 E1 E2 E3 F1 G1 G2 G3, r pe(0.05) // 向后逐步回归(后面的r表示稳健的标准误) stepwise reg 评价量 团购价元 商品毛重kg A1 A3 B1 B2 B3 B4 B5 B6 B7 B9 C1 D1 D2 D3 D4 E1 E2 E3 F1 G1 G2 G3, r pr(0.05) // 向后逐步回归的同时使用标准化回归系数(在r后面跟上一个b即可) stepwise reg 评价量 团购价元 商品毛重kg A1 A3 B1 B2 B3 B4 B5 B6 B7 B9 C1 D1 D2 D3 D4 E1 E2 E3 F1 G1 G2 G3, r b pr(0.05) // 补充语法 (大家不需要具体的去学Stata软件,掌握我课堂上教给大家的一些命令应对数学建模比赛就可以啦) // 事实上大家学好Excel,学好后应对90%的数据预处理问题都能解决 // (1) 用已知变量生成新的变量 generate lny = log(评价量) generate price_square = 团购价元 ^2 generate interaction_term = 团购价元*商品毛重kg // (2) 修改变量名称,因为用中文命名变量名称有时候可能容易出现未知Bug rename 团购价元 price // 注意:代码文件仅供参考,一定不要直接用于自己的数模论文中 // 国赛对于论文的查重要求非常严格,代码雷同也算作抄袭
在运行以下几步时又延伸出一个问题:
// 定量变量的描述性统计 summarize 团购价元 评价量 商品毛重kg // 定性变量的频数分布,并得到相应字母开头的虚拟变量 tabulate 配方,gen(A) tabulate 奶源产地 ,gen(B) tabulate 国产或进口 ,gen(C) tabulate 适用年龄岁 ,gen(D) tabulate 包装单位 ,gen(E) tabulate 分类 ,gen(F) tabulate 段位 ,gen(G)
如何把这些数据放入论文中呢?如果把他们都复制到论文中,显得太过冗余(因为真的很多),一种办法是放在附录中,还有一种办法是用Excel进行画图,用这种简练的方式把所有的数据呈现出来,既美观又显得丰富。
这个我会在另一篇文章里介绍怎么用Excel画数据透视图。
【番外】利用Excel表格绘制数据透视图
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/135750.html