在 R 中拟合与解读线性回归简介

欢迎大家!在本章中,我们将从 Paper A 的理论公式转向 Paper B 的实际应用,学习如何使用 R 语言进行线性回归 (Linear Regression)。回归分析是精算师工具箱中最强大的工具之一——它让我们能够理解变量之间的关系(例如驾驶者的年龄如何影响其保险索赔金额),并对未来做出预测。

对于 Paper B,考官不仅是在寻找一个“正确的数字”;他们更希望看到你能利用软件拟合模型、解读汇总输出结果,并验证该模型是否真正适合数据。如果一开始觉得 R 代码很陌生,请别担心;我们将逐行拆解输出内容。

1. 拟合模型:lm() 函数

在 R 中,我们使用 lm() 函数(代表“linear model”,即线性模型)来拟合线性回归模型。最重要的一点是记住其公式语法 (formula syntax)

\(response \sim explanatory\)

  • 响应变量 (Response Variable, \(y\)): 你想要预测的目标(例如:总索赔成本)。
  • 解释变量 (Explanatory Variable, \(x\)): 你认为会影响响应变量的因素(例如:保单持有人人数)。

简单线性回归 vs. 多重线性回归

简单线性回归中,我们只有一个解释变量:
\(model1 <- lm(y \sim x, data = my_data)\)

多重线性回归中,我们有多个解释变量:
\(model2 <- lm(y \sim x1 + x2 + x3, data = my_data)\)

小贴士:R 使用最小二乘法 (Method of Least Squares) 来计算最佳拟合线。这种方法能使实际数据点与模型预测值之间的平方差之和达到最小。

2. 解读汇总输出结果 (Summary Output)

拟合模型后(例如 \(fit <- lm(y \sim x)\)),你可以使用 summary(fit) 命令来查看结果。这是 Paper B 大多数题目考查的重点。

系数表 (The Coefficients Table)

这张表提供了截距和斜率的最小二乘估计值

  • (Intercept) Estimate (\(\hat{\beta}_0\)): 当所有 \(x\) 变量均为零时,\(y\) 的预测值。
  • Variable Estimate (\(\hat{\beta}_1\)): 在假设所有其他变量保持不变的情况下,该解释变量每增加 1 个单位,响应变量随之产生的变化量。

斜率的统计推断

输出结果还为每个系数提供了一个 p 值 (p-value)(通常标记为 Pr(>|t|))。这用于检验原假设 (Null Hypothesis) \(H_0: \beta_i = 0\):

  • 小 p 值(通常 \(p < 0.05\)): 我们拒绝 \(H_0\)。该解释变量具有统计显著性 (statistically significant)——它与响应变量之间存在显著的关系。
  • 大 p 值 (\(p > 0.05\)): 我们未能拒绝 \(H_0\)。在存在其他变量的情况下,该变量可能不是一个有用的预测指标。

核心重点:务必留意 R 输出中的星号 (***)。它们是判断显著性的快速视觉引导,但在考试中,请务必引用实际的 p 值来支持你的结论。

3. 评估拟合优度 (Goodness of Fit)

我们的模型究竟在多大程度上解释了数据?我们主要看 R 输出中的两个指标:

多重 R 平方 (Multiple R-squared, \(R^2\))

\(R^2\) 告诉我们响应变量的总变异中,由解释变量所解释的部分所占的比例。其取值范围为 \(0\) 到 \(1\):

  • \(R^2 = 0.85\) 意味着模型解释了数据中 85% 的变异。
  • \(R^2 = 1.00\) 表示完美拟合(这在现实的精算数据中非常罕见!)。

调整后的 R 平方 (Adjusted R-squared)

当你增加更多解释变量时,\(R^2\) 几乎总是会增加,即使这些新变量毫无用处。调整后的 R 平方会对增加不必要的变量进行“惩罚”。在比较具有不同数量变量的两个模型时,通常首选 Adjusted R-squared 较高的那一个。

4. 利用残差检查模型的有效性

“残差”(Residual) 是实际观测值与模型预测值之间的差异:\(e_i = y_i - \hat{y}_i\)。为了确保线性回归是有效的,我们需要通过 R 的诊断图(通常使用 plot(fit))来检查这些残差。

  • 残差 vs 拟合值图 (Residuals vs Fitted plot): 我们希望看到点呈随机的“云状”分布。如果出现明显的模式(如曲线或漏斗形),则说明线性模型可能不合适,或者方差可能不是常数(即存在异方差性 heteroscedasticity)。
  • 正态 Q-Q 图 (Normal Q-Q plot): 点应该大致分布在一条直线对角线上。这证实了残差呈正态分布,这是确保我们的 p 值和置信区间有效的前提假设。

常见错误: 不要只说“模型很好”。要利用残差图来证明满足了线性 (linearity)等方差性 (constant variance)正态性 (normality) 的假设。

5. 预测与置信限

一旦有了拟合模型,我们就可以使用 predict() 函数来估计新数据的值。在 CS1 中,你必须区分两种区间:

置信区间 (Confidence Interval - 平均响应)

这是针对具有特定 \(x\) 值的所有项目的平均 (average) 响应的区间。
R 代码:\(predict(fit, newdata, interval = "confidence")\)

预测区间 (Prediction Interval - 个体响应)

这是针对单个 (single) 未来观测值的区间。个体结果比平均值更难精确预测,因此预测区间总是比置信区间更宽
R 代码:\(predict(fit, newdata, interval = "prediction")\)

类比: 预测 1,000 名男性的平均身高(置信区间)要比预测下一个走进门的男性的身高(预测区间)容易得多。

6. 总结与模型选择

当你有几个潜在的解释变量时,你需要选择“最佳”的一组。这个过程包括:

  • 检查每个变量的显著性(p 值)。
  • 寻找最高的调整后 R 平方
  • 剔除对模型没有显著贡献的变量(这个过程通常被称为“逐步法”选择,但在考试中,你可能只需要比较两个特定的模型)。

你知道吗? 精算师经常使用这些模型来设定“基准费率”。例如,线性回归可能会告诉他们,车龄每增加一年,预计的年度维修成本就会增加 \(\$50\)。那 \(\$50\) 就是你在 R 输出中看到的斜率系数

快速复习框

  • lm(y ~ x):拟合模型。
  • summary():显示系数、p 值和 \(R^2\)。
  • p-value < 0.05:变量具有显著性。
  • R-squared:解释了多少变异。
  • plot():通过残差检查模型假设是否成立。
  • 预测区间 (Prediction Interval):总是比置信区间 (Confidence Interval) 更宽。