第9章 非线性回归

9.5 表9-13数据中GDP和投资额K都是用定基居民消费价格指数CPI缩减后的值,1978年的价格指数为100。(C-D生产函数y=AKαLβ)
(1)用线性化的乘性误差项模型拟合C-D生产函数。
(2)用非线性的最小二乘拟合加性误差项的C-D生产函数。
(3)对线性化回归检验自相关,如果存在自相关则用自回归方法改进。
(4)对线性化回归检验共线性,如果存在共线性则用岭回归方法改进。

年份 t CPI GDP k l
1978 1 100.00 3624.1 1377.9 40152
1979 2 101.90 3962.9 1446.7 41024
1980 3 109.54 4124.2 1451.5 42361
1981 4 112.28 4330.6 1408.1 43725
1982 5 114.53 4623.1 1536.9 45295
1983 6 116.82 5080.2 1716.4 46436
1984 7 119.97 5977.3 2057.7 48197
1985 8 131.13 6836.3 2582.2 49873
1986 9 139.65 7305.4 2754.0 51282
1987 10 149.85 7983.2 2884.3 52783
1988 11 178.02 8385.9 3086.8 54334
1989 12 210.06 8049.7 2901.5 55329
1990 13 216.57 8564.3 2975.4 64749
1991 14 223.94 9653.5 3356.8 65491
1992 15 238.27 11179.9 4044.2 66152
1993 16 273.29 12673.0 5487.9 66808
1994 17 339.16 13786.9 5679.0 67455
1995 18 397.15 14724.3 6012.00 68065
1996 19 430.12 15782.8 6246.50 68950
1997 20 442.16 16840.6 6436.00 69820
1998 21 438.62 17861.6 6736.10 70637
1999 22 432.48 18975.9 7098.90 71394
2000 23 434.21 20604.7 7510.50 72085
2001 24 437.25 22256.0 8567.30 73025
2002 25 433.75 24247.0 9764.90 73740

rm(list=ls())# ---- xt9.5 数据中GDP和投资额K都是用定基居民消费价格指数CPI缩减后的值,1978年的价格指数为100 ----
# ---- (1)用线性化的乘性误差项模型拟合C-D生产函数。 ----
data9.5 <- read.csv('D:/rwork/应用回归/习题数据/表9-13.csv',head=TRUE)
t <- data9.5[,2]
y <- data9.5[,4]
ly <- log(data9.5[,4])
lk <- log(data9.5[,5])
ll <- log(data9.5[,6])
model1 <- lm(ly~lk+ll,data9.5)
summary(model1)
anova(model1)
# 线性化模型:A=0.17,α=0.80,β=0.40。  #A=exp(-1.78545)# ---- (2)用非线性的最小二乘拟合加性误差项的C-D生产函数。 ----
model2 <- nls(y~A*((k^a)*(l^b)),data9.5,start=list(A=2,a=0.9,b=0.3),lower=c(0,0,0),upper=c(10000,100,100),algorithm='port',control=nls.control(maxiter=1000,tol=1e-1000))
summary(model2)
# 非线性化模型:A=0.41,α=0.87,β=0.27。# ---- (3)对线性化回归检验自相关,如果存在自相关则用自回归方法改进。 ----
## 检验自相关-DW检验 ----
library(lmtest)
dwtest(model1,alternative='two.sided') #DW检验
# DW=0.72,存在自相关。
# 可知DW值为0.72,P值=3.1e-05,查DW表,n=25,k=2,显著性水平α=0.05,
#  得dL=1.29,dU=1.45,由于DW=0.72<dL=1.20,知DW值落入正相关区域,即残差序列存在正的自相关。## 用迭代法处理序列相关,并建立方程 ----
# 一次迭代ly(t)'=ly(t)-ρ*ly(t-1),lk(t)'=lk(t)-ρ*lk(t-1),ll(t)'=ll(t)-ρ*ll(t-1)
# 自相关系数ρ^=1-DW/2=1-0.72/2=0.64,计算的ly',lk',ll'
rho_hat <- 1-0.72/2 #自相关系数ρ^
n <- length(ly)
lyy <- ly[2:n]-rho_hat*ly[1:n-1]
lkk <- lk[2:n]-rho_hat*lk[1:n-1]
lll <- ll[2:n]-rho_hat*ll[1:n-1]
model3 <- lm(lyy~lkk+lll)
summary(model3) #回归分析
anova(model3) #方差分析表
# 用迭代法得到A=0.40,α=0.73,β=0.53。  #A=exp(-0.90814)# ---- (4)对线性化回归检验共线性,如果存在共线性则用岭回归方法改进。 ----
## 检验共线性-方差扩发因子法 ----
library(car)
vif(model1)
#  所有自变量对应的VIF全部大于10,所以自变量之间存在共线性。## 检验共线性-特征根判定法 ----
XX <- cor(data.frame(ly,lk,ll)) #计算样本相关阵
kappa(XX,exact=TRUE) #exact=TRUE时,精确计算条件数,否则近似计算条件数。
# 根据条件数100<=k=870.1625<=1000,说明自变量之间存在较强的多重共线性。## 建立ly对lk、ll的岭回归。 ----
datas <- data.frame(scale(data.frame(ly,lk,ll)))
#对样本数据进行标准化处理并转换为数据框的格式存储
library(MASS)
ridge9.5 <- lm.ridge(ly~lk+ll,data=datas,lambda=seq(0,8,0.2))
# 做岭回归,对于标准化后的数据模型不包含截距项,其中lambda为岭参数k的所有取值beta <- coef(ridge9.5) #将所有不同岭参数所对应的回归系数的结果赋给beta
beta
# 结果中,第1列为岭参数k,其取值范围为0到3,步长0.1,共有31个k值。
# 第2至3列是数据标准化后的岭回归系数,其中第1行k=0的数值就是普通最小二乘估计的标准化回归系数。## 绘制岭迹图
k <- ridge9.5$lambda #将所有岭参数赋给k
plot(k,k,type='n',xlab='岭参数k',ylab='岭回归系数',ylim=c(0.4,1.15))
# 创建没有任何点和线的图形区域
linetype <- c(1:2)
char <- c(18:19)
for (i in 1:2)lines(k,beta[,i+1],type='o',lty=linetype[i],pch=char[i],cex=0.75) #画岭迹线
legend(4.5,1,inset=0.5,legend=c('lk','ll'),cex=0.8,pch=char,lty=linetype) #添加图例
# legend(locator(i),inset=0.5,legend=c('lk','ll'),cex=0.8,pch=char,lty=linetype) #添加图例 # 注意运行时鼠标点击双击图片# 两个自变量的方差扩大因子皆大于13,且条件数大于870,存在严重多重共线性。取岭回归参数=5,得岭估计A=0.00083, α=0.48, β=1.13。

参考课本:应用回归分析(R语言版),何晓群编著

R语言之非线性回归xt9.5相关推荐

  1. R语言处理非线性回归模型C-D方程,使用R语言进行多项式回归、非线性回归模型曲线拟合...

    对于线性关系,我们可以进行简单的线性回归.对于其他关系,我们可以尝试拟合一条曲线.曲线拟合是构建一条曲线或数学函数的过程,它对一系列数据点具有最佳的拟合效果. 使用示例数据集#我们将使Y成为因变量,X ...

  2. r语言做断轴_R语言用nls做非线性回归以及函数模型的参数估计

    非线性回归是在对变量的非线性关系有一定认识前提下,对非线性函数的参数进行最优化的过程,最优化后的参数会使得模型的RSS(残差平方和)达到最小.在R语言中最为常用的非线性回归建模函数是nls,下面以ca ...

  3. 利用R语言进行线性/非线性回归拟合实例(1)

    利用R语言进行线性/非线性回归拟合实例(1) 1. 生成一组数据 vector<float>xxvec; vector<float>yyvec; ofstreamfout(&q ...

  4. R语言曲线回归:多项式回归、多项式样条回归、非线性回归数据分析

    最近我们被客户要求撰写关于曲线回归的研究报告,包括一些图形和统计输出.本文将使用三种方法使模型适合曲线数据:1)多项式回归:2)用多项式样条进行B样条回归:3) 进行非线性回归.在此示例中,这三个中的 ...

  5. R 回归 虚拟变量na_工具amp;方法 | R语言机器学习包大全(共45个包)

    机器学习,是一门多学科交叉的人工智能领域的分析技术,它使用算法解析数据,从中学习,然后对世界上的某件事情做出决定或预测. 目前,常见机器学习的研究方向主要包括决策树.随机森林.神经网络.贝叶斯学习和支 ...

  6. r语言在java中的实现_R语言在现实中的应用

    R语言在现实中的应用有哪些?主要有以下几种 - 1.数据科学 "哈佛商业评论"将数据科学家命名为"21世纪最性感的工作". Glassdoor将其命名为2016 ...

  7. r语言 plot_R和Python的特点对比,这样你就知道该怎么选择了

    数据科学界有三大宝: Python.SAS和R,不过像SAS这种高端物种,不是我们这些平民能供养得起的啊. 根据 IEEE Spectrum的最新排名,R和Python仍然是最热门的数据科学编程语言. ...

  8. 数据科学r语言_您应该为数据科学学习哪些语言?

    数据科学r语言 Data science is an exciting field to work in, combining advanced statistical and quantitativ ...

  9. R语言学习笔记(六)回归分析

    文章目录 写在前面 普通最小二乘(OLS)回归法 正态假设 简单线性回归 多项式回归 多元线性回归 有交互项的多元线性回归 小结 回归诊断 标准方法 综合验证方法 多重共线性 广义线性回归--Logi ...

最新文章

  1. 从HP发布BSM新版套件看网管与安管的融合
  2. php对帖子分类,php – 从WordPress中的自定义分类获取所有帖子
  3. 限速会自动恢复吗_骨折会自己好吗?骨折后怎样做恢复快?
  4. Linux上的Systemctl命令
  5. 字典生成工具_CANOpen系列教程09_CANOpen对象字典
  6. 如何文件服务器安装打印机,如何安装打印机方法图解
  7. 使用nagios监控oracle
  8. 一句代码实现批量数据绑定[下篇]
  9. 为什么可积不一定可导_本命年为什么要穿红?你一定不知道!
  10. 动软连接oraclet生成代码
  11. 数据可视化平台Superset 简介
  12. 服务器系统root密码忘记,云服务器 忘记root密码忘记了
  13. 微信小程序之店铺评分组件及vue中用svg实现的评分显示组件
  14. linux连不上网问题总结
  15. 电子招投标智能辅助评标系统,有哪些实施成效?
  16. 【每日一题】039 手机尾数
  17. JVM虚拟机读书日记4
  18. C#将设置开机、关闭开机启动项
  19. ie-css3.htc兼容ie8
  20. 英文android系统,安卓系统中英文对照

热门文章

  1. 创建网易云歌单外链 Hexo
  2. Spring 事务管理@transactional 的实现原理和使用
  3. Mac m1 配置OpenCV (C++)
  4. 【锐捷无线】隐藏SSID配置
  5. 食蔬宝收银称重软件V1.0
  6. 获取订单API接口系列,可接入erp系统场景
  7. Imx283 Uboot2017+Linux3/4/5系统内核移植
  8. 元转分金额字符串转换:单位元转成单分
  9. C#序列化反序列化读写XML文件
  10. vue -观察者模式