R - 对剩余术语感到困惑

机器算法验证 r 回归 残差
2022-02-11 12:44:42
  • 根均方误差
  • 残差平方和
  • 残差标准误
  • 均方误差
  • 测试错误

我以为我曾经理解这些术语,但我做统计问题的次数越多,我在第二次猜测自己的地方就越感到困惑。我想要一些再保证和一个具体的例子

我可以在网上很容易地找到这些方程式,但我很难得到“像我 5 岁一样解释”这些术语的解释,因此我可以在脑海中明确差异以及一个如何导致另一个。

如果有人可以在下面使用此代码并指出我将如何计算这些术语中的每一个,我将不胜感激。R代码会很棒..

使用以下示例:

summary(lm(mpg~hp, data=mtcars))

用 R 代码告诉我如何找到:

rmse = ____
rss = ____
residual_standard_error = ______  # i know its there but need understanding
mean_squared_error = _______
test_error = ________

像我 5 岁一样解释这些之间的差异/相似之处的奖励积分。例子:

rmse = squareroot(mss)
3个回答

根据要求,我使用mtcars数据进行了简单的回归说明:

fit <- lm(mpg~hp, data=mtcars)
summary(fit)

Call:
lm(formula = mpg ~ hp, data = mtcars)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.7121 -2.1122 -0.8854  1.5819  8.2360 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 30.09886    1.63392  18.421  < 2e-16 ***
hp          -0.06823    0.01012  -6.742 1.79e-07 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.863 on 30 degrees of freedom
Multiple R-squared:  0.6024,    Adjusted R-squared:  0.5892 
F-statistic: 45.46 on 1 and 30 DF,  p-value: 1.788e-07

均方误差(MSE) 是残差平方的平均值

# Mean squared error
mse <- mean(residuals(fit)^2)
mse
[1] 13.98982

均方根误差(RMSE) 是 MSE 的平方根:

# Root mean squared error
rmse <- sqrt(mse)
rmse
[1] 3.740297

残差平方和(RSS) 是残差平方和:

# Residual sum of squares
rss <- sum(residuals(fit)^2)
rss
[1] 447.6743

残差标准误差(RSE) 是 (RSS / 自由度) 的平方根:

# Residual standard error
rse <- sqrt( sum(residuals(fit)^2) / fit$df.residual ) 
rse
[1] 3.862962

同样的计算,因为我们之前计算过,所以简化了rss

sqrt(rss / fit$df.residual)
[1] 3.862962

回归(和其他预测分析技术)上下文中的术语测试错误通常是指计算测试数据的测试统计量,与您的训练数据不同。

换句话说,您使用部分数据(通常是 80% 样本)估计模型,然后使用保留样本计算误差。我再次说明使用mtcars,这次使用 80% 的样本

set.seed(42)
train <- sample.int(nrow(mtcars), 26)
train
 [1] 30 32  9 25 18 15 20  4 16 17 11 24 19  5 31 21 23  2  7  8 22 27 10 28  1 29

估计模型,然后使用保留数据进行预测:

fit <- lm(mpg~hp, data=mtcars[train, ])
pred <- predict(fit, newdata=mtcars[-train, ])
pred
 Datsun 710     Valiant  Merc 450SE  Merc 450SL Merc 450SLC   Fiat X1-9 
   24.08103    23.26331    18.15257    18.15257    18.15257    25.92090 

将原始数据和预测合并到一个数据框中

test <- data.frame(actual=mtcars$mpg[-train], pred)
    test$error <- with(test, pred-actual)
test
            actual     pred      error
Datsun 710    22.8 24.08103  1.2810309
Valiant       18.1 23.26331  5.1633124
Merc 450SE    16.4 18.15257  1.7525717
Merc 450SL    17.3 18.15257  0.8525717
Merc 450SLC   15.2 18.15257  2.9525717
Fiat X1-9     27.3 25.92090 -1.3791024

现在以正常方式计算您的测试统计数据。我说明了 MSE 和 RMSE:

test.mse <- with(test, mean(error^2))
test.mse
[1] 7.119804

test.rmse <- sqrt(test.mse)
test.rmse
[1] 2.668296

请注意,此答案忽略了观察值的加权。

原始海报要求“像我 5 岁一样解释”的答案。假设您的学校老师邀请您和您的同学帮助猜测老师的桌子宽度。班上 20 名学生中的每一个都可以选择一种设备(尺子、秤、卷尺或尺子),并允许测量桌子 10 次。你们都被要求在设备上使用不同的起始位置,以避免一遍又一遍地读取相同的数字;然后必须从结束读数中减去起始读数以最终获得一个宽度测量值(您最近学会了如何进行这种类型的数学运算)。

全班总共进行了 200 次宽度测量(20 名学生,每人 10 次测量)。观察结果将交给老师,老师将处理数字。从参考值中减去每个学生的观察结果将产生另外 200 个数字,称为偏差教师分别对每个学生的样本进行平均,得到 20 个平均值从每个学生的个人平均值中减去他们的观察结果将导致与平均值有 200 个偏差,称为残差如果要为每个样本计算平均残差,您会注意到它始终为零。相反,如果我们将每个残差平方,平均它们,最后撤消平方,我们得到标准偏差. (顺便说一下,我们将最后的计算位称为平方根(想想找到给定平方的底或边),因此整个操作通常简称为均方根;观察值的标准差等于残差的均方根。)

但是老师已经知道了真正的桌子宽度,基于它是如何设计、建造和在工厂检查的。因此,另外 200 个数字,称为误差,可以计算为观测值相对于真实宽度的偏差。可以为每个学生样本计算平均误差。同样,可以为观测值计算20 个标准差的误差标准误差。更多 20均方根误差值也可以计算。三组 20 个值按出现顺序关联为 sqrt(me^2 + se^2) = rmse。根据 rmse,教师可以判断谁的学生提供了对表格宽度的最佳估计。此外,通过分别查看 20 个平均误差和 20 个标准误差值,教师可以指导每个学生如何提高他们的阅读能力。

作为检查,老师从各自的平均误差中减去每个误差,得到另外 200 个数字,我们称之为残差(这并不经常这样做)。如上,平均残差为零,因此残差标准残差的标准差与标准误差相同实际上,均方根残差也相同。(详情见下文。)

现在这里有一些老师感兴趣的东西。我们可以将每个学生的平均值与全班其他学生的平均值进行比较(20 表示总共)。就像我们在这些点值之前定义的一样:

  • m:平均值(观测值),
  • s:标准偏差(观察)
  • 我:平均误差(观察)
  • se:标准误差(观察)
  • rmse:均方根误差(观测值)

我们现在也可以定义:

  • mm:均值
  • sm:平均值的标准差
  • mem:均值的均值误差
  • sem:均值的标准误
  • rmsem:均值的均方根误差

只有当学生的班级被认为是无偏的,即如果mem = 0,那么sem = sm = rmsem;即,均值的标准误差、均值的标准差和均方根误差,如果均值的均值误差为零,则均值可以相同。

如果我们只抽取了一个样本,即班级只有一个学生,则可以使用观测值的标准差 (s) 来估计均值 (sm) 的标准差,为 sm^2~s^ 2/n,其中 n=10 是样本量(每个学生的阅读次数)。随着样本量的增长(n=10,11,...;每个学生的阅读量增加)和样本数量的增长(n'=20,21,...;课堂上更多的学生),两者的一致性会更好。(警告:不合格的“标准误差”通常指的是平均值的标准误差,而不是观测值的标准误差。)

以下是所涉及的计算的一些细节。真实值表示为 t。

定点操作:

  • 平均值:平均值(X)
  • 均方根:RMS(X)
  • 标准偏差:SD(X) = RMS(X-MEAN(X))

样本内集:

  • 观察(给定),X = {x_i},i = 1, 2, ..., n=10。
  • 偏差:一组相对于固定点的差异。
  • 残差:观测值与其平均值的偏差,R=Xm。
  • 误差:观察值与真实值的偏差,E=Xt。
  • 残差:误差与其均值的偏差,RE=E-MEAN(E)

样本内点(见表 1):

  • m:平均值(观测值),
  • s:标准偏差(观察)
  • 我:平均误差(观察)
  • se:观察的标准误差
  • rmse:均方根误差(观测值)

表格1

样本间(合奏)集:

  • 意味着,M = {m_j},j = 1, 2, ..., n'=20。
  • 均值残差:均值与其均值的偏差,RM=M-mm。
  • 均值误差:均值与“真相”的偏差,EM=Mt.
  • 均值残差:均值误差与其均值的偏差,REM=EM-MEAN(EM)

样本间(集合)点(见表 2):

  • mm:均值
  • sm:平均值的标准差
  • mem:均值的均值误差
  • sem:标准误差(平均值)
  • rmsem:均值的均方根误差

表 2

我也觉得所有的术语都很混乱。我强烈认为有必要解释为什么我们有这么多指标。

这是我对 SSE 和 RMSE 的说明:

第一个指标:平方误差和 (SSE)。其他名称,残差平方和 (RSS),残差平方和 (SSR)。

如果我们在优化社区,SSE 被广泛使用。这是因为它是优化的目标,优化在哪里

minimizeβ Xβy2

残差/误差项是e=Xβy, 和e2=eTe,称为平方误差和 (SSE)。

第二个指标:均方根误差 (RMSE)其他名称,均方根偏差。

RMSE 是

1N(Xβy)=1NeTe

在哪里N是数据点的数量。

这就是我们在上面讨论的 SSE 之外还有这个指标的原因。RMSE 度量的优点是它更加“标准化”。具体来说,SSE 将取决于数据量。MSE 不依赖于数据量,但 RMSE 也以相同的单位表示误差y.