R语言——伍德里奇计量经济导论案例实践 第二 & 三章 简单与多元线性回归

Posted 爱尔兰粉公爵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了R语言——伍德里奇计量经济导论案例实践 第二 & 三章 简单与多元线性回归相关的知识,希望对你有一定的参考价值。

伍德里奇(Jeffrey M. Wooldridge)的现代计量经济学导论(Introductory Econometrics: A Modern Approach)在美国的大学经济课程教学中有着无与伦比的地位,几乎是所有计量经济学教授推荐的教材。在我阅读过的计量经济学教材中,伍德里奇的书我觉得是写得最好思路最易让人接受的,并且全书提供了非常丰富的案例帮助理解抽象的概念。好东西价格自然也不便宜,最新版的计量经济导论在亚马逊上的折后售价为202.77美元。不过国内有清华大学出版的影印版本,淘宝上面的价格也就60块人民币上下,也算是造福国内同学了。

马上就要开学了,几个月的假期很多计量经济的概念都已经忘的一干二净,而开学后我就要接受博士阶段高级计量经济学的洗礼,所以打算从头开始复习一遍伍德里奇的书,同时用R语言具体实践书中的所有案例。一般在进行回归分析时,很多人都会想到Stata,鉴于我的Stata license即将过期,所以还是使用开源免费的R语言。并且R语言专为数据科学打造,在数据处理与可视化方面更有优势。今天就从书的第二章和第三章的简单与多元线性回归开始复习。



首先安装 wooldridge包并加载,这个包收集了伍德里奇教材案例用到的所有数据,加载这个包以后我们就不用再单独下载数据导入了。同时,加载数据处理万能包 tidyverse包。
### 安装wooldridge包install.packages("wooldridge")
### 加载包library(wooldridge)library(tidyverse)
一、简单线性回归(eg 2.3: CEO salary and ROE)
简单线性回归所用到的案例是研究公司CEO薪酬与ROE之间的关系,所使用到的数据为 ceosal1。我们已经加载 wooldridge包,可以直接查看数据,也可通过帮助页面查看数据信息。
### 在单独窗口查看数据View(ceosal1)### 通过帮助页面查看数据变量信息?ceosal1
### 绘制散点图查看salary与roe之间的关系ggplot(data = ceosal1, aes(x = roe, y = salary)) +   geom_point() +   theme_bw()
我们发现有几个数据分散较远,属于异常值,我们可以通过设置坐标轴范围去除这些异常值,便于我们更好的观察数据。
  
    
    
  
ggplot(data = ceosal1, aes(x = roe, y = salary)) +   geom_point() + theme_bw() +   ### 设置坐标轴范围 ylim(0, 5000)
R语言——伍德里奇计量经济导论案例实践 第二 & 三章 简单与多元线性回归
查看变量 salaryroe之间的线性相关系数,结果约为0.115,两者的线性相关性并不是十分强烈。
  
    
    
  
cor(ceosal1$roe, ceosal1$salary)
salary进行简单线性回归分析,独立变量为 roe。R语言自带的 stats包即可执行线性回归分析。
  
    
    
  
### 进行线性回归分析 保存结果 lm1 <- lm(salary ~ roe, data = ceosal1) ### 查看分析结果 lm1
R语言——伍德里奇计量经济导论案例实践 第二 & 三章 简单与多元线性回归
  
    
    
  
### 查看详细分析结果 summary(lm1)
R语言——伍德里奇计量经济导论案例实践 第二 & 三章 简单与多元线性回归
R语言的线性回归分析结果是以list的形式进行保存的,我们可以通过list的相关语句查看更为详细的回归分析结果。
  
    
    
  
### 查看lm1回归分析具体包含的信息 names(lm1)
### 使用$召唤各种信息 ### 系数值 lm1$coefficients ### 残差 lm1$residuals ### 拟合值 lm1$fitted.values
### 也可通过stats包自带的命令符 ### 系数值 coef(lm1) ### 残差 resid(lm1) ### 拟合值 fitted(lm1)
R语言——伍德里奇计量经济导论案例实践 第二 & 三章 简单与多元线性回归
下面将拟合值添加进原始数据生成新的表格,然后进行数据可视化。我们既可以通过连接拟合值得到拟合线,也可通过回归分析得出来的截距和斜率直接添加拟合线。
  
    
    
  
### 拟合值 ceosal1_pred <- mutate(ceosal1, pred = lm1$fitted.values) ### 连接拟合值 添加线性回归拟合线 ggplot(data = ceosal1_pred, aes(x = roe, y = salary)) +   geom_point() +   geom_line(aes(y = pred), color = "red") +   ylim(0, 5000) +   theme_bw()
### 查看线性回归截距、斜率 lm1 ### 根据截距、斜率 添加线性回归拟合线 ggplot(data = ceosal1_pred, aes(x = roe, y = salary)) +   geom_point() + geom_abline(intercept = 936.19, slope = 18.50, color = "red") + ylim(0, 5000) + theme_bw()
R语言——伍德里奇计量经济导论案例实践 第二 & 三章 简单与多元线性回归
二、多元线性回归 (eg 3.2: hourly wage equation)
这个例子需要用到的数据是 wage1,研究时薪与受教育年限、经验等的关系。多元线性回归所使用的命令符与简单线性回归相同,只需在公式后面继续叠加变量即可。
  
    
    
  
### 多元线性回归分析 lm2 <- lm(log(wage) ~ educ + exper + tenure, data = wage1) ### 查看具体结果 summary(lm2)
R语言——伍德里奇计量经济导论案例实践 第二 & 三章 简单与多元线性回归
如果想让输出的结果类似于Stata那样的表格,可以安装 stargazer包。这个包只有一个命令符,专门为输出计量分析结果而设。我们可以选择结果输出的形式,比如LaTex代码,这样就可以直接将结果粘贴进LaTex编辑界面,输出生成非常整洁的表格,也可以选择text,直接在R里面以表格形式显示结果。我们还可以选择表格的具体格式以满足期刊投稿的要求,命令符里面自带的有一些期刊的格式,比如AER,我们可以直接选择。
  
    
    
  
### 安装stargazer包 install.packages("stargazer") library(stargazer)
### 以表格形式输出回归结果 stargazer(lm2, type = "text")
R语言——伍德里奇计量经济导论案例实践 第二 & 三章 简单与多元线性回归
三、原点回归 (regression through the origin) 和常数项回归 (regression on a constant)
有的时候我们的线性回归模型不需要截距,我们可以在输入命令符时申明截距为零,这样得出来的结果就不会有截距,还是以eg3.2为例。
  
    
    
  
### 原点回归 lm3 <- lm(log(wage) ~ 0 + educ + exper + tenure, data = wage1) summary(lm3)
有的时候我们也会将因变量对常数项进行回归,这个时候我们得到的结果会是因变量的平均值。我们只需将独立变量设置为1,以eg 2.3为例。
### 常数项回归lm3 <- lm(salary ~ 1, data = ceosal1)

以上是关于R语言——伍德里奇计量经济导论案例实践 第二 & 三章 简单与多元线性回归的主要内容,如果未能解决你的问题,请参考以下文章

计量经济学系列之导论(外经贸课程版)

代做聚类时间序列文本分析语义情感分析空间计量经济R Matlab代做

管理经济学-第一章导论

计量经济学笔记-1前言&导论

深度学习之BP神经网络--Stata和R同步实现(附数据和代码)

01 导论计量经济学及stata应用