r语言 - 使用pcse包预测的预测值和置信区间



我们使用标准lm函数运行OLS回归。为了解决面板数据的问题,我们使用pcse包重新运行分析以计算面板修正的标准误差。我们得到了结果,并希望生成一个图形来显示预测值和置信区间(就像我们对标准se的正常lm回归所做的那样),但我们得到了这个错误消息:

Error in UseMethod("predict") : 
  no applicable method for 'predict' applied to an object of class "pcse"

任何想法如何获得pcse计算se到lm对象类,以便预测?

你可以在下面找到我们的模型和图形函数。我们非常感谢任何关于如何解决这个问题的建议,也就是说,找到一种方法来提出一个显示我们想要它显示的图形

Greetz

模型:

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"

您需要这样做来获得预测的调整标准误差(改编自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)

一个可复制的例子会很好,我现在没有时间编一个…

您可以使用其他包的方法的代码作为模板来编写自己的方法。

但是在短期内,从m.2对象中获取系数值可能要容易得多。m.2$coefficients包含所有拟合系数,并标记为它们属于哪一项。然后,您必须编写一个小函数来匹配PIV~(X3*X1)+(X3*X2)+X3+X1+X2+X4+X5公式的代数形式,并应用这些系数。

最新更新