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。另外,残差绝对值与x1,x2的等级相关系数t检验的P值为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。
进行DW检验可以得到:
DW=1.4424,P=0.1035,由此可知,在显著性水平为0.05时,新的残差序列不存在自相关,这表明BOX-COX方法成功地消除了序列自相关。
|
请发表评论