使用pcse包预测预测值和置信区间

时间:2014-06-02 16:29:21

标签: r regression lm predict

我们使用标准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"

2 个答案:

答案 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公式的代数形式,并应用这些系数。