当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R predict.lm 线性模型拟合的预测方法


R语言 predict.lm 位于 stats 包(package)。

说明

基于线性模型对象的预测值。

用法

## S3 method for class 'lm'
predict(object, newdata, se.fit = FALSE, scale = NULL, df = Inf,
        interval = c("none", "confidence", "prediction"),
        level = 0.95, type = c("response", "terms"),
        terms = NULL, na.action = na.pass,
        pred.var = res.var/weights, weights = 1,
        rankdeficient = c("warnif", "simple", "non-estim", "NA", "NAwarn"),
        tol = 1e-6, verbose = FALSE,
        ...)

参数

object

继承自"lm"的类的对象

newdata

一个可选的 DataFrame ,用于查找用于预测的变量。如果省略,则使用拟合值。

se.fit

指示是否需要标准错误的开关。

scale

std.err 的标度参数。计算。

df

规模的自由度。

interval

区间计算的类型。可以缩写。

level

容忍度/置信度。

type

预测类型(响应或模型项)。可以缩写。

terms

如果 type = "terms" ,哪些术语(默认为所有术语),则为 character 向量。

na.action

函数确定应如何处理 newdata 中的缺失值。默认是预测 NA

pred.var

为预测区间假设的未来观测值的方差。查看具体信息'。

weights

用于预测的方差权重。这可以是数值向量或片面模型公式。在后一种情况下,它被解释为在 newdata 中计算的表达式。

rankdeficient

character 字符串,指定在排名不足模型的情况下应该发生什么,即当 object$rank < ncol(model.matrix(object)) 时。

"warnif"

仅在预测“不可估计”情况下给出 warning,即向量与原始数据不在同一预测子空间中(具有容差 tol )。在这种情况下,不可估计的索引也会作为属性 "non-estim" 返回(请参阅 rankdeficient="non-estim" )。

"simple"

恢复兼容R< 4.3.0,在不可估计的情况下可能给出可疑的预测,并且总是发出信号warning.

"non-estim"

给出相同的预测,没有 warning ,并且具有属性 attr(*, "non-estim") ,其中新数据观测值的 1:nrow(newdata) 中的索引被认为是不可估计的。

"NA"

默默地预测NA 不可估计的新数据。经常在新代码中推荐。

"NAwarn"

使用 warning 预测不可估计的新数据 NA

tol

非负数决定了在秩不足的情况下如何确定不可估计性。

verbose

logical 指示是否应生成有关等级不足处理的消息。

...

传入或传出其他方法的进一步参数。

细节

predict.lm 生成预测值,通过评估框架 newdata 中的回归函数获得(默认为 model.frame(object) )。如果逻辑 se.fitTRUE ,则计算预测的标准误差。如果设置了数字参数 scale (带有可选的 df ),则将其用作标准误差计算中的残余标准差,否则从模型拟合中提取。设置 intervals 指定在指定的 level 处计算置信度或预测(容差)间隔,有时称为窄间隔与宽间隔。

如果拟合为 rank-deficient,则在 lm 计算期间将删除设计矩阵的某些列,并将相应的 coef() 组件设置为 NA 。仅当 newdata 包含在与原始数据相同的子空间中时,这种拟合的预测才有意义。其他 newdata 条目(行)是 non-estimable 。现在对此进行检查(高达数值公差 tol ),除非对应于先前行为的 rankdeficient == "simple" 始终发出警告并使用非 NA 系数与设计矩阵的相应列进行预测。新的默认选项 rankdeficient == "warnif" 检查是否存在 “non-estimable” 情况(最多容差 tol ),并且仅在这种情况下发出警告。所有其他 rankdeficient 选项也会检查并预测 NA 或以不同方式标记不可估计的情况。

如果省略newdata,则预测基于用于拟合的数据。在这种情况下,如何处理原始拟合中缺失值的情况由该拟合的 na.action 参数确定。如果 na.action = na.omit 省略的情况不会出现在预测中,而如果 na.action = na.exclude 则会出现(在预测、标准误差或区间限制中),且值为 NA 。另请参阅napredict

预测区间针对 newdata 中每种情况的单个观察(或默认情况下,用于拟合的数据),误差方差为 pred.var 。这可以是 res.var 的倍数,即 的估计值:默认情况是假设未来的观测值与用于拟合的观测值具有相同的误差方差。如果提供weights,则将其倒数用作比例因子。对于加权拟合,如果预测针对原始数据帧,weights 默认为用于模型拟合的权重,并会出现警告,因为它可能不是预期结果。如果对拟合进行加权并给出newdata,则默认情况下假设预测方差恒定,并带有警告。

predict.lm 生成预测向量或预测矩阵和列名称为 fitlwrupr (如果设置了 interval )。对于 type = "terms" 来说,这是一个每项有一列的矩阵,并且可能具有属性 "constant"

如果 se.fitTRUE ,则返回包含以下组件的列表:

fit

向量或矩阵如上

se.fit

预测平均值的标准误差

residual.scale

残余标准差

df

残差自由度

注意

首先在 newdata 中查找变量,然后以通常的方式搜索(其中包括拟合中使用的公式的环境)。如果找到的变量长度与 newdata 中提供的变量长度不同,则会发出警告。

请注意,预测方差和预测区间始终指未来的观测值,可能对应于用于拟合的相同预测变量。残差的方差会更小。

严格来说,用于预测极限的公式假设拟合的自由度与残差方差的自由度相同。如果res.var不是从拟合中获得的,情况可能并非如此。

例子

require(graphics)

## Predictions
x <- rnorm(15)
y <- x + rnorm(15)
predict(lm(y ~ x))
new <- data.frame(x = seq(-3, 3, 0.5))
predict(lm(y ~ x), new, se.fit = TRUE)
pred.w.plim <- predict(lm(y ~ x), new, interval = "prediction")
pred.w.clim <- predict(lm(y ~ x), new, interval = "confidence")
matplot(new$x, cbind(pred.w.clim, pred.w.plim[,-1]),
        lty = c(1,2,2,3,3), type = "l", ylab = "predicted y")

## Prediction intervals, special cases
##  The first three of these throw warnings
w <- 1 + x^2
fit <- lm(y ~ x)
wfit <- lm(y ~ x, weights = w)
predict(fit, interval = "prediction")
predict(wfit, interval = "prediction")
predict(wfit, new, interval = "prediction")
predict(wfit, new, interval = "prediction", weights = (new$x)^2)
predict(wfit, new, interval = "prediction", weights = ~x^2)

##-- From  aov(.) example ---- predict(.. terms)
npk.aov <- aov(yield ~ block + N*P*K, npk)
(termL <- attr(terms(npk.aov), "term.labels"))
(pt <- predict(npk.aov, type = "terms"))
pt. <- predict(npk.aov, type = "terms", terms = termL[1:4])
stopifnot(all.equal(pt[,1:4], pt.,
                    tolerance = 1e-12, check.attributes = FALSE))

也可以看看

模型拟合函数lmpredict

SafePrediction 用于根据(单变量)多项式和样条拟合进行预测。

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Predict method for Linear Model Fits。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。