use*_*333 4 r linear-regression predict lm
> reg.len <- lm(chao1.ave ~ lg.std.len, b.div) # b.div is my data frame imported from a CSV file
> reg.len
Call:
lm(formula = chao1.ave ~ lg.std.len, data = b.div)
Coefficients:
(Intercept) lg.std.len
282.4 -115.7
> newx <- seq(0.6, 1.4, 0.01)
> prd.len <- predict(reg.len, newdata=data.frame(x=newx), interval="confidence", level=0.90, type="response")
Error in eval(expr, envir, enclos) : object 'lg.std.len' not found
Run Code Online (Sandbox Code Playgroud)
我试过像这样做lm:lm(b.div$chao1.ave ~ b.div$lg.std.len)但是,然后,predict()警告新数据和变量的长度不同.所以,我尝试了上面的方法,现在predict()给出一个错误,说它无法识别对象.怎么解决,好吗?
Predict期望newdata具有相同的列名(以匹配reg.len中的公式).您在新数据规范中将其更改为"x",这不是公式的一部分.
dat <- data.frame(y=rnorm(50),lg.std.len=sample(10:15,50,replace=TRUE))
reg.len <- lm(y ~ lg.std.len,data=dat)
newx <- seq(0.6, 1.4, 0.01)
prd.len <- predict(reg.len, newdata=data.frame(lg.std.len=newx),
interval="confidence", level=0.90, type="response")
Run Code Online (Sandbox Code Playgroud)
关键部分是 newdata=data.frame(lg.std.len=newx)
| 归档时间: |
|
| 查看次数: |
7716 次 |
| 最近记录: |