R 等价于 S 加函数

R Equivalents of S plus functions

我正在尝试使用 S plus 函数 predict 和 pointwise 从 R 中的拟合线性回归模型中获得预测。我只是想知道是否有人知道这些的 R 等价物。我知道 R 中有 predictse.fit = TRUE 参数在 R 中不可用。我的代码如下:

使用 mtcars 作为示例数据:

# S plus codes
model.lm <- lm(mpg ~ disp, data = mtcars)
newData <- data.frame(disp=300)
predict.disp <- predict(model.lm, newData, se.fit = TRUE)
pointwise(predict.disp, 0.99)

我已经在 R 中尝试了 运行 下面的代码,但它似乎没有给我与上面代码中获得的 S plus 输出相同的东西:

predict(model.lm, newData, interval = "prediction", level = 0.99) 

有没有其他人在 R 中遇到过这个问题?

编辑:

以下是 pointwise 在 S plus 中的作用:

function(results.predict, coverage = 0.99)
{
fit <- results.predict$fit
limits <- qt(1 - (1 - coverage)/2, results.predict$df)*results.predict$se.fit
list(upper = fit + limits, fit = fit, lower = fit - limits)
}

感谢您的所有回答。我想另一个想法是在 R 中使用上面的代码。

在查看了 pointwise 的帮助页面后,我认为可以这样做:

est <- predict(lm(y ~ x), new, se.fit = TRUE)
matplot(x = seq(-3, 3, 0.5), est$fit + cbind( est$se.fit*-1.96, 0, est$se.fit*1.96))

您的不匹配是由于计算预测而不是置信区间。

predict(model.lm, newData, interval="confidence", level=0.99)
       fit      lwr      upr
1 17.23532 15.41756 19.05308

结果与使用上面提供的 pointwise 函数相同(向量与列表、顺序和名称的差异):

pointwise(predict.disp,0.99)
$upper
       1 
19.05308 

$fit
       1 
17.23532 

$lower
       1 
15.41756