R 等价于 S 加函数
R Equivalents of S plus functions
我正在尝试使用 S plus 函数 predict 和 pointwise 从 R 中的拟合线性回归模型中获得预测。我只是想知道是否有人知道这些的 R 等价物。我知道 R 中有 predict
但 se.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
我正在尝试使用 S plus 函数 predict 和 pointwise 从 R 中的拟合线性回归模型中获得预测。我只是想知道是否有人知道这些的 R 等价物。我知道 R 中有 predict
但 se.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