gpt4 book ai didi

R biglm预测搜索因变量

转载 作者:行者123 更新时间:2023-12-02 07:41:32 25 4
gpt4 key购买 nike

我正在使用 biglm 包对数据集进行回归。使用以下代码回归运行良好:

chunkStart <- seq(1,150000000,1000000)
chunkEnd <- seq(1000000,151000000,1000000)
ff <- price ~ factor(Var1) + factor(Var2)

#for(i in 1:length(chunkStart)){
for(i in 1:5){

startRow <- chunkStart[i]
endRow <- chunkEnd[i]
curchunk <- data.frame( price=x[startRow:endRow,1]
,Var1=factor( x[startRow:endRow,6], levels=1:3), Var2= factor( x[startRow:endRow,7], levels=1:3 ) )

if(i == 1){
a <- biglm(ff,curchunk )
}
if(i != 1){
a <- update(a,curchunk )
}
rm(curchunk )
gc()
print(paste(i, " | ",startRow ," | ",endRow ," | ", sep=""))
flush.console()
}

> summary(a)
Large data regression model: biglm(ff, curchunk)
Sample size = 5000000
Coef (95% CI) SE p
(Intercept) 0.0457 0.0454 0.0461 2e-04 0
factor(Var1)2 0.0189 0.0184 0.0194 2e-04 0
factor(Var1)3 0.0148 0.0142 0.0155 3e-04 0
factor(Var2)2 -0.0331 -0.0335 -0.0326 2e-04 0
factor(Var2)3 -0.0417 -0.0426 -0.0408 4e-04 0

当我尝试使用 biglm 对象“a”进行预测时,问题就来了。

> df1 <- data.frame(y[1:1000,])
> pred1 <- predict(a, df1)
Error in eval(expr, envir, enclos) : object 'price' not found

为什么 predict 函数要查找 price/因变量?有什么建议吗?

编辑:

> head(df1)
Var1 Var2
1 3 3
2 3 1
3 3 2
4 2 1
5 2 2
6 1 1
> str(df1)
'data.frame': 1000 obs. of 2 variables:
$ Var1: Factor w/ 3 levels "1","2","3": 3 3 3 2 2 1 2 1 2 1 ...
$ Var2: Factor w/ 3 levels "1","2","3": 3 1 2 1 2 1 1 1 2 1 ...
> pred1 <- predict(a, df1)
Error in eval(expr, envir, enclos) : object 'price' not found

最佳答案

它寻找因变量的原因是 predict 方法调用了 stats 包中的 model.frame,并且该函数要求所有变量都出现在新数据中.这在 model.frame 帮助页面上有说明,但没有解释其背后的动机。

您实际上需要做的就是在您的新数据中创建一个与因变量同名的变量,然后用零(或任何非缺失值)填充它。所以如果你运行这个它应该工作:

df1$price <- 0
pred1 <- predict(a, df1)

关于R biglm预测搜索因变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10507369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com