我们使用标准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
公式的代数形式,并应用这些系数。