全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3594 2
2017-06-12
进行boxcox回归时,开始一切正常。直到画转换后的回归图时提示出错

dat<-read.csv("e:/p078.csv")
#View(dat)
lm.sol<-lm(y~x,data=dat)
summary(lm.sol)

library(MASS)
op<-par(mfrow=c(2,2),mar=.4+c(4,4,1,1),oma=c(0,0,2,0))

plot(fitted(lm.sol),resid(lm.sol),cex=1.2,pch=21,col='red',bg='orange',xlab='fitted value',ylab='residuals')#第一张图,预测值与残差散点图

boxcox(lm.sol,lambda=seq(0,1,len=10))#第二张图,确定lambda
lambda=0.55
ylam<-(dat$y^lambda-1)/lambda
lm.lam<-lm(ylam~dat$x)
summary(lm.lam)

plot(fitted(lm.lam),resid(lm.lam),cex=1.2,pch=21,col='red',bg='orange',xlab='fitted value',ylab='residuals')#第三张图,预测值与变换后进行回归的残差之间的散点图

beta0<-lm.lam$coefficients[1]
beta1<-lm.lam$coefficients[2]

curve((1+lambda*(beta0+beta1*dat$x))^(1/lambda),from=min(dat$x),to=max(dat$x),col='blue',lwd=2,xlab='x',ylab='y')#第四张图,回归曲线和相应是散点

就是这一步发生错误,说“expr did not evaluate to an object of length n

points(dat$x,dat$y,cex=1.2,pch=21,col='red',bg='orange')
mtext('box-cox transfoemation',outer=TRUE,cex=1.5)
par(op)

附件列表

p078.rar

大小:372 Bytes

 马上下载

本附件包括:

  • p078.csv

code.rar

大小:651 Bytes

 马上下载

本附件包括:

  • code.txt

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-6-13 13:29:41
改成:
curve((1 + lambda * (beta0 + beta1 * x)) ^ (1 / lambda), from = min(dat$x), to = max(dat$x), col = 'blue', lwd = 2, xlab = 'x', ylab = 'y')
即可。
curve函数中的第一个参数是个表达式,一般要求含有"x"字符,而不是具体的数据,因此把"dat$x"改成"x"就可以了。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-6-13 13:45:50
cheetahfly 发表于 2017-6-13 13:29
改成:
curve((1 + lambda * (beta0 + beta1 * x)) ^ (1 / lambda), from = min(dat$x), to = max(dat$x), ...
谢谢您。

这是我昨天刚看到的我们图书馆的最近新书:多元统计分析_从数据到结论_韩明2016,p76-81,中的内容。我看到其中的boxcox,觉得好玩,就拿来试了试。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群