我们使用标准lm
函数运行OLS回归。为解决面板数据问题,我们使用pcse
包重新运行分析,以计算面板更正的标准误差。我们得到了结果并希望生成一个图形来显示预测值和置信区间(正如我们对标准SE的正常lm
回归所做的那样)但是我们得到了这个错误消息:
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "pcse"
知道如何将pcse
计算的se变为lm
对象类以进行预测吗?
您可以在下面找到我们的模型和图形函数。我们感谢任何有关如何解决此问题的建议,即找到一种方法来显示一个显示我们想要显示的内容的图形
格尔茨
型号:
m.2 <- lm(PIV~inter_X1+inter_X2+X3+X1+DumX2+X4+X5, data=Dataset))
summary(m.2)
m.2<- pcse(lm(PIV~(X3*X1)+(X3*X2)+X3+X1+X2+X4+X5, data=Dataset),
groupN = Dataset$C1, groupT = Dataset$Y)
pred.val <- predict(m.2, newdata=Dataset_2,
se.fit=TRUE, interval=c("confidence"), level=0.9)
## Error in UseMethod("predict") :
## no applicable method for 'predict' applied to an object of class "pcse"
答案 0 :(得分:2)
您需要沿着这些方向获取调整后的预测标准误差(改编自http://glmm.wikidot.com/faq):
lmFit <- ...
form <- formula(lmFit)[-2] ## RHS of formula
Designmat <- model.matrix(form,data=Dataset)
## note that your model could be written more compactly as ~X3*(X1+X2)+X4+X5
vv <- vcovPC(lmFit,...)
pred <- Designmat %*% coef(lmFit) ## or predict(lmFit,newdata=Dataset)
predvar <- diag(Designmat %*% vv %*% t(Designmat))
se <- sqrt(predvar) ## for confidence intervals
se2 <- sqrt(predvar+summary(lmFit)$sigma^2) ## for prediction intervals
qq <- qnorm((1-level)/2)
interval <- pred+qq*cbind(se,-se)
A reproducible example会很好,我现在没有时间制作一个......
答案 1 :(得分:0)
您可以使用其他包的方法代码作为模板编写自己的方法。
但从短期来看,从m.2
对象中获取系数值可能要容易得多。 m.2$coefficients
包含所有拟合系数,标记为它们属于哪个术语。然后,您必须编写一个小函数来匹配PIV~(X3*X1)+(X3*X2)+X3+X1+X2+X4+X5
公式的代数形式,并应用这些系数。