• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

BOX-COX变换(R语言)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.消除异方差

代码实现如下:

data3.2<-read.csv("C:/Users/Administrator/Desktop/data3.2.csv",head=TRUE)
library(MASS)
bc3.2<-boxcox(y~x1+x2,data=data3.2,lambda=seq(-2,2,0.01))
# λ的取值为区间[-2,2]上步长为0.01的值,bc3.2中保存了λ的值及其对应的对数似然函数值
lambda<-bc3.2$x[which.max(bc3.2$y)]  # 将使对数似然函数值达到最大的λ复制给lambda
lambda
y_bc<-(data3.2$y^lambda-1)/lambda  # 计算变换后的y值
lm3.2_bc<-lm(y_bc~x1+x2,data=data3.2)  # 使用变换后的y值建立回归方程
summary(lm3.2_bc)
abse<-abs(resid(lm3.2_bc))  # 计算残差的绝对值
cor.test(data3.2$x1,abse,method="spearman")  # 计算残差与x1的相关系数
cor.test(data3.2$x2,abse,method="spearman")  # 计算残差与x2的相关系数

输出结果如下所示:





  根据输出结果,使似然函数取值最大的λ=0.47\lambda=0.47。另外,残差绝对值与x1,x2x_{1},x_{2}的等级相关系数tt检验的PP值为0.07587,0.4266,在显著性水平为0.05时不显著,故可认为异方差被消除。

2.消除自相关

data2.2<-read.csv("C:/Users/Administrator/Desktop/data2.2.csv",head=TRUE)
bc2.2<-boxcox(y~x,data=data2.2,lambda=seq(-2,2,0.01))
lambda<-bc2.2$x[which.max(bc2.2$y)]
y_bc<-(data2.2$y^lambda-1)/lambda
lm2.2_bc<-lm(y_bc~x,data=data2.2)
summary(lm2.2_bc)
lambda

输出结果如下:



  根据上面的输出结果可以知道,使似然函数取值最大的λ=1.21\lambda=1.21
  进行DW检验可以得到:
  
  DW=1.4424,P=0.1035DW=1.4424,P=0.1035,由此可知,在显著性水平为0.05时,新的残差序列不存在自相关,这表明BOX-COX方法成功地消除了序列自相关。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap