Advertisement

伍德里奇计量经济学导论之计算机操作题的R语言实现(简单线性回归)

阅读量:

引言

本学期将深入学习伍德里奇第四版《计量经济学导论》课程内容。旨在通过实践操作加深对该学科的理解。计划对课程中的计算机操作部分进行R语言实现。如若发现任何问题,请在下方留言指正;如有任何建议或意见,请随时提出。

本系列博客将不会在内容上重复讨论题目,并将重点在于提供R语言代码与习题解答的内容。这些内容主要参考了《计量经济学导论中的习题解答》,以及由王斌会教授编著的《计量经济学模型及其实现的R语言应用》一书,并参考了英文教材《Applied Econometrics with R》的相关章节内容。

第四版计量经济学导论电子表格文件可从百度网盘下载:http://pan.baidu.com/s/1qWkmTE8

C2.1

(1)

复制代码
    #导入数据 请注意修改文件路径名
    data_2.1<-read.csv("E:\ 博客\ 计量经济学\ ch_2\ 401k.csv",header=TRUE)
    #平均参与率
    ave_prate<-mean(data_2.1$prate)
    #平均匹配率
    ave_mrate<-mean(data_2.1$mrate)
    
    {r,echo=FALSE}

(2)

复制代码
    #估计回归方程
    lm_prate<-lm(prate~mrate,data=data_2.1)
    summary(lm_prate)
    #估计结果
    #prate=83.0755+5.8611mrate
    #n=1534
    #R-squared=0.0747
    
    {r,echo=FALSE}

(3)

复制代码
    #解释系数
    #当匹配率为0的时候,回报率为83.0755%
    #mrate的系数表明在其他条件不变的条件下,当匹配率每增加一美元,回报率平均增加5.86%。
    
    {r,echo=FALSE}

(4)

复制代码
    #输入mrate数据  输出fit的值就是点估计
    point<-data.frame(mrate=3.5)
    predict(lm(prate~mrate,data=data_2.1),point,interval = "confidence")
    #点估计为103.5892%,显然这个答案是不可能的,这是由于数据集1534个记录中,只有34个记录中的mrate是大于3.5的,当mrate较大时,拟合效果不好。
    
    {r,echo=FALSE}

(5)

复制代码
    #prate的变异中,只有7.47%由mrate进行解释。该值不大,说明有其他因素影响着回报率。
    
    {r,echo=FALSE}

C2.2

(1)

复制代码
    data_2.2<-read.csv("E:\ 博客\ 计量经济学\ ch_2\ ceosal2.csv")
    #为简便,将数据导入内存
    attach(data_2.2)
    #平均年薪
    ave_salary<-mean(salary)
    #平均任期
    ave_ceoten<-mean(ceoten)
    
    {r,echo=FALSE}

(2)

复制代码
    #任期一年个数
    n_ceoten<-length(which(ceoten==0))
    #最长任期
    max_ceoten<-max(ceoten)
    
    {r,echo=FALSE}

(3)

复制代码
    #参数估计
    lm_ceosal<-lm(log(salary)~ceoten)
    summary(lm_ceosal)
    #回归方程为
    log(salary)=6.505498+0.009723*ceoten
    #报告
    #每多担任一年ceo,年薪平均增长几乎1%
    #释放数据集
    detach(data_2.2)
    
    {r,echo=FALSE}

C2.3

(1)

复制代码
    data_2.3<-read.csv("E:\ 博客\ 计量经济学\ ch_2\ sleep75.csv")
    attach(data_2.3)
    #方程拟合
    lm_sleep75<-lm(sleep~totwrk)
    summary(lm_sleep75)
    #sleep=3586.37695-0.15075*totwrk
    #观测次数
    #n=706
    #R-squared=0.1033
    #截距项表示,每周不工作时睡眠时间约等于3586.37695分钟
    
    {r,echo=FALSE}
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-07-13/bZpIi0cuFaq6PgYxtU5rKm2vODGs.png)

(2)

复制代码
    #预测多工作两小时(120分钟)睡眠时间减少
    #Δsleep=-0.15075*120=-18.09  每晚减少-18.09分钟,效应不大
    detach(data_2.3)
    
    {r,echo=FALSE}

C2.4

(1)

复制代码
    data_2.4<-read.csv("E:\ 博客\ 计量经济学\ ch_2\ wage2.csv")
    attach(data_2.4)
    #平均工资
    ave_wage<-mean(wage)
    #平均IQ
    ave_IQ<-mean(IQ)
    #IQ样本标准差
    sd_IQ<-sd(IQ)
    
    {r,echo=FALSE}

(2)

复制代码
    lm_wage2<-lm(wage~IQ)
    summary(lm_wage2)
    #回归方程为
    #wage=116.9916+8.3031*IQ
    #n = 935,R-squared=0.09554
    #IQ增加15单位,工资预期变化
    #Δwage=8.3031*15=124.5465
    #IQ能够解释9.554%的工资变化
    
    {r,echo=FALSE}

(3)

复制代码
    #由题可得,可以构建对数水平模型
    #log(wage)=a+bIQ+u
    #估计可得
    lm_wage<-lm(log(wage)~IQ)
    summary(lm_wage)
    #log(wage)=5.8869943+0.0088072*IQ
    #IQ提高15个单位 wage平均提高13.21%
    #Δlog(wage)=0.0088072*15=0.132108
    detach(data_2.4)
    
    {r,echo=FALSE}

C2.5

(1)

复制代码
    data_2.5<-read.csv("E:\ 博客\ 计量经济学\ ch_2\ rdchem.csv")
    attach(data_2.5)
    #构建模型为
    #log(rd)=a +b*log(sales)+u
    #b为rd对sales的弹性
    
    {r,echo=FALSE}

(2)

复制代码
    lm_rdchem<-lm(log(rd)~log(sales))
    summary(lm_rdchem)
    #log(rd)=-4.10472+1.07573*log(sales)
    #弹性值为1.07573
    #当其他条件不变时,sales每增加1%,rd增加1.07573%。
    detach(data_2.5)
    
    {r,echo=FALSE}

C2.6

(1)

复制代码
    data_2.6<-read.csv("E:\ 博客\ 计量经济学\ ch_2\ meap93.csv")
    attach(data_2.6)
    #随着更多一美元的花费,对通过率的影响越来越小。
    #因为当支持较低时,可以通过购买教学书籍、上辅导班,增加一美元对数学通过率提高影响较大;随着支出增加到一定地步时,此时已经有大量书籍、有名师等教育资源,增加一美元对数学通过率的提高影响越来越小。
    
    {r,echo=FALSE}

(2)

复制代码
    #见书中证明,略
    
    {r,echo=FALSE}

(3)

复制代码
    lm_meap93<-lm(math10~log(expend))
    summary(lm_meap93)
    #math10=-69.341+11.164*log(expend)
    #n=408 R-squared=0.02727
    
    {r,echo=FALSE}

(4)

复制代码
    #支出影响多大
    #当其他条件不变时,expend每增加1%,math10平均增加0.11164%
    #支出提高10%,math10会增加1.1164%。
    
    {r,echo=FALSE}

(5)

复制代码
    max_fit<--69.341+11.164*max(log(expend))
    detach(data_2.6)
    #可知数据集中最大为30.15033%,没有超过100%
    
    {r,echo=FALSE}

C2.7

(1)

复制代码
    data_2.7<-read.csv("E:\ 博客\ 计量经济学\ ch_2\ charity.csv")
    attach(data_2.7)
    #平均捐款数量
    ave_gift<-mean(gift)
    #没有捐款的百分比 占比60%
    percent_gift<-100*((length(which(respond==0)))/length(respond))
    
    {r,echo=FALSE}

(2)

复制代码
    #平均邮递数
    ave_mailsyear<-mean(mailsyear)
    #最小、最大邮递数
    min_mailsyear<-min(mailsyear)
    max_mailsyear<-max(mailsyear)
    
    {r,echo=FALSE}

(3)

复制代码
    lm_gift<-lm(gift~mailsyear)
    summary(lm_gift)
    #估计的回归方程为
    #gift=2.0141+2.6495*mailsyear
    #n=4268,R-squared=0.01379
    
    {r,echo=FALSE}

(4)

复制代码
    #回归系数表明当其他条件不变时,每年的邮件邮寄数量每增加一封,捐款平均增加2.6495荷兰盾
    #当邮递成本为1荷兰盾时,仍然有2.6495-1=1.6495的净利润
    #这只是平均所获净利润,仍然有length(which(gift<1))=2561封邮件没有捐款
    
    {r,echo=FALSE}

(5)

复制代码
    #最小预测值为2.676475
    min_fit<-min(mailsyear)*2.6495+2.0141
    #从该回归分析可得,不可能预测gift为0,因为最小值为2.676475。
    detach(data_2.7)
    
    {r,echo=FALSE}

全部评论 (0)

还没有任何评论哟~