R 预测拟合的残差?

R Residuals from predicted fit?

我知道当你生成一个线性模型时,你可以像这样从拟合中提取残差:

# Model
model <- lm(y ~ x, data = coolstuff)

# Residuals
myresids <- model$residuals

我进一步了解您可以使用此模型基于第二个数据集(例如,验证数据集)预测值,如下所示:

mypreds <- predict(model, newdata = coolvalid)

我迷路的地方就是我可以从预测中找到残差的地方。 predict 不生成数据框或小标题 - 只是一个命名的数字列表。

在哪里可以找到预测的残差?

正如 DanY 在评论中指出的那样,残差只是观察值 - 预测值。有关内置数据的简单示例,请参见下文。

# sample data
set.seed(1)
split_indicies <- sample(nrow(mtcars), nrow(mtcars)/2)
train <- mtcars[split_indicies,]
test <- mtcars[-split_indicies,]

# model
model <- lm(mpg ~ disp, data = train)

# residuals of prediction are actual - predicted
test$mpg - predict(model, data = test)
#> Pontiac Firebird   Hornet 4 Drive       Duster 360        Mazda RX4 
#>        9.8318659       -0.1503095        3.4749151        1.4901610 
#>    Mazda RX4 Wag      AMC Javelin        Merc 280C      Merc 450SLC 
#>       -0.1098390       -0.5448161       -5.2950183       -7.7129664 
#>         Fiat 128      Honda Civic   Ford Pantera L    Toyota Corona 
#>      -15.8775915      -11.7018628        0.5021011      -11.2626474 
#>         Merc 280       Volvo 142E   Toyota Corolla     Ferrari Dino 
#>        4.7049817        1.4746340        3.8075878       -8.5311955

reprex package (v2.0.1)

于 2022-02-07 创建