使用R进行多元回归预测,预测数据框架

使用R进行多元回归预测,预测数据框架,r,dataframe,regression,lm,predict,R,Dataframe,Regression,Lm,Predict,我得到了一个名为petrol的data.frame中的数据,它有125行和以下列: hydrcarb,tanktemp,disptemp,tankpres,dispres,sqrtankpres,sqrdispres 我被要求从petrol中删除最后25行,调整模型,其中hydrcarb是响应变量,其余是解释变量,并对前100行执行此操作。然后使用拟合模型预测剩余的25 这就是我到目前为止所做的: #make a new table that only contains first 100 p

我得到了一个名为
petrol
的data.frame中的数据,它有125行和以下列:
hydrcarb
tanktemp
disptemp
tankpres
dispres
sqrtankpres
sqrdispres

我被要求从
petrol
中删除最后25行,调整模型,其中
hydrcarb
是响应变量,其余是解释变量,并对前100行执行此操作。然后使用拟合模型预测剩余的25

这就是我到目前为止所做的:

#make a new table that only contains first 100 
petrold <- petrol[-101:-125,]
petrold

#FITTING THE MODEL
petrol.lmB <- lm(hydrcarb~ tanktemp + disptemp + tankpres + disppres + sqrtankpres + sqrdisppres, data=petrol)

#SELECT LAST 25 ROWS FROM PETROL
last25rows <-petrol[101:125,c('tanktemp','disptemp','tankpres','disppres','sqrtankpres','sqrdisppres')]


#PREDICT LAST 25 ROWS
predict(petrold,last25rows[101,c('tanktemp','disptemp','tankpres','disppres','sqrtankpres','sqrdisppres')])

因此,我不确定如何获得25组不同数据的
hydrcarb
预测值。

Alex A.已经指出
predict
需要一个模型作为第一个参数。除此之外,您应该一次通过
predict
所有要预测的行。此外,我建议您“动态”对数据帧进行子集划分,而不是创建不必要的副本。最后,有一种较短的方法可以编写传递给
lm
的fromula:

# data for example
data(Seatbelts)
petrol <- as.data.frame(Seatbelts[1:125, 1:7])
colnames(petrol) <- c("hydrcarb", "tanktemp", "disptemp", "tankpres", "disppres", "sqrtankpres", "sqrdisppres")

# fit model using observations 1:100
petrol.lmB <- lm(hydrcarb ~ ., data = petrol[1:100,])

#predict last 25 rows
predict(petrol.lmB, newdata = petrol[101:125,])
#例如数据
数据(安全带)

汽油预测的第一个参数是模型,在本例中是汽油.lmB
。看看
?预测
# data for example
data(Seatbelts)
petrol <- as.data.frame(Seatbelts[1:125, 1:7])
colnames(petrol) <- c("hydrcarb", "tanktemp", "disptemp", "tankpres", "disppres", "sqrtankpres", "sqrdisppres")

# fit model using observations 1:100
petrol.lmB <- lm(hydrcarb ~ ., data = petrol[1:100,])

#predict last 25 rows
predict(petrol.lmB, newdata = petrol[101:125,])