为什么我的多元线性回归中的观察结果比 R 数据框中的行多?

Why do I have more observations in my Multiple Linear Regression than I do rows in my dataframe in R?

我正在 运行R 中的 MLR 检查 4 个解释变量(温度、溶解氧、实际盐度和氧化还原电位)对 1 个响应变量(Shell 圆度的影响):

shell_round_mlr <- lm(Shell_Round ~ TempC + O2 + PSU + ORP, data = morph.na)

相关数据集 (morph.na) 有 53 行 数据。当我运行下面的代码检查模型时...

par(mfrow = c(2,2))
plot(shell_round_mlr)

我得到这些图:

[残差与拟合值、正态 Q-Q、尺度位置、残差与杠杆] [1]: https://i.stack.imgur.com/Lkkmd.png

其中显示的观察结果 #65 和 #159 是我可能想要删除的观察结果。但是,当我只有 53 行数据时,我怎么可能有一个观察 #159?我已经三重检查我是否调用了正确的数据帧。

此外,在这种情况下,如果我想删除任何这些麻烦的观察结果,我该怎么做呢?它不像从数据框中删除一行那么简单。

如有任何建议,我们将不胜感激。 谢谢。

如果没有可重现的示例,很难诊断您的问题。但正如@aosmith 在评论中指出的那样,plot 将使用行索引进行标记。此示例显示 lm 个标记值高于总样本量的图。

set.seed(1L)
df <- data.frame(x = rnorm(20), y = rnorm(20))
rownames(df) <- sample(50:70, 20)

fit <- lm(y ~ x, data = df)

plot(fit)

相比之下,这是与 labels.id = NULL 相同的情节:

plot(fit, labels.id = NULL)