探索变量之间的关系,从相关到因果的量化建模
散点图(Scatter Plot)是观察两个连续变量之间关系的最直观工具。将一对对数据 (x, y) 绘制在直角坐标系中,点的分布模式往往暗示着变量间的关联形态。
两个变量高度相关,并不意味着一个变量的变化导致了另一个变量的变化。可能存在 lurking variable(潜伏变量)同时影响着两者。冰淇淋销量与溺水事故正相关,但原因是气温——而不是冰淇淋导致溺水。
协方差(Covariance)衡量两个变量的联合变异程度:
协方差的符号揭示相关方向,但数值大小受量纲影响,难以直接比较。为此引入皮尔逊相关系数 r:
r 的取值范围在 −1 到 +1 之间。|r| 越接近 1,线性相关越强;越接近 0,线性相关越弱。
相关系数 r 对非线性关系不敏感。即使 r ≈ 0,变量之间也可能存在强烈的非线性关联(如完美的抛物线关系)。因此,做回归前务必先看散点图。
线性回归试图找到一条最佳拟合直线 ŷ = a + bx,使得预测值与实际值之间的残差平方和(RSS)最小:
通过求偏导并令其为零,可得最小二乘估计:
R²(决定系数)表示因变量的变异中有多少比例能被回归模型解释:
R² 越接近 1,模型拟合越好。但高 R² 不等于好模型——可能发生了过拟合(Overfitting)。当模型过于复杂、参数过多时,它在训练数据上表现优异,却对新数据失去预测能力。
房价预测:利用面积、房龄等特征建立回归模型预测房价。
销售与广告:分析广告投入与销售额的关系,优化预算分配。
传感器校准:通过回归建立传感器输出与真实物理量的映射。
材料应力-应变:在弹性范围内建立线性关系评估材料性能。
对任意 x₀,点估计为 ŷ₀ = a + bx₀。残差定义为实际值减去预测值:
残差图(Residual Plot)以预测值 ŷ 为横轴、残差 e 为纵轴。理想的残差图应呈现随机散布的带状,无明显模式。若出现喇叭形或曲线形,说明模型假设存在问题。
某实验室记录了 6 组温度(°C)与材料电阻(Ω)的数据:(20, 10.2), (25, 10.8), (30, 11.5), (35, 12.0), (40, 12.6), (45, 13.1)。求温度与电阻的相关系数 r。
先算均值:X̄ = (20+25+30+35+40+45)/6 = 32.5,Ȳ = (10.2+10.8+11.5+12.0+12.6+13.1)/6 = 11.7。
计算离差积之和:Σ(xᵢ−X̄)(yᵢ−Ȳ) = (−12.5)(−1.5)+...+ (12.5)(1.4) = 56.25。
Σ(xᵢ−X̄)² = 437.5,Σ(yᵢ−Ȳ)² = 7.34。
r = 56.25 / sqrt(437.5 * 7.34) ≈ 56.25 / 56.67 ≈ 0.993。
沿用例题 9.1 的数据,求电阻对温度的线性回归方程,并解释斜率的实际意义。
b = Σ(xᵢ−X̄)(yᵢ−Ȳ) / Σ(xᵢ−X̄)² = 56.25 / 437.5 ≈ 0.1286 Ω/°C。
a = Ȳ − b·X̄ = 11.7 − 0.1286 × 32.5 ≈ 7.52 Ω。
回归方程:ŷ = 7.52 + 0.129x。
根据例题 9.2 的回归方程,计算各数据点的预测值与残差,并求 R²。
对每个 xᵢ 计算 ŷᵢ 和 eᵢ = yᵢ − ŷᵢ:
| 温度 x | 实际 y | 预测 ŷ | 残差 e |
|---|---|---|---|
| 20 | 10.2 | 10.10 | 0.10 |
| 25 | 10.8 | 10.74 | 0.06 |
| 30 | 11.5 | 11.38 | 0.12 |
| 35 | 12.0 | 12.02 | −0.02 |
| 40 | 12.6 | 12.66 | −0.06 |
| 45 | 13.1 | 13.30 | −0.20 |
SS_res = 0.10² + 0.06² + 0.12² + (−0.02)² + (−0.06)² + (−0.20)² ≈ 0.072。
SS_tot = Σ(yᵢ−Ȳ)² = 7.34。
R² = 1 − 0.072/7.34 ≈ 0.990。
某工程师用 5 个数据点拟合了一个 4 次多项式,R² = 1.000;而线性模型 R² = 0.95。他应该选择哪个模型用于外推预测?
4 次多项式用 5 个点可以完美穿过每个点(R² = 1),但这属于严重的过拟合。高阶多项式在数据点之间可能出现剧烈振荡,外推预测极不可靠。
线性模型虽然 R² 稍低,但参数少、物理意义明确(电阻随温度线性变化符合材料学常识),泛化能力更强。
MATLAB 提供了强大的回归分析工具。以下代码演示从计算相关系数、拟合回归线到绘制残差图的完整流程。
运行结果:
MATLAB 的 corrcoef 返回相关系数矩阵,对角线为 1,非对角线为两两相关系数。polyfit 用最小二乘法拟合多项式系数,polyval 用于求预测值。残差图是诊断模型假设的核心工具。
当我们需要比较三组或更多组数据的均值时,t 检验不再适用——多次两两比较会放大犯第一类错误的概率。方差分析(Analysis of Variance,ANOVA)通过一次性比较所有组的均值差异,解决了这一问题。
ANOVA 的精髓是将数据的总波动分解为两部分:
其中 SST(Total Sum of Squares)是所有数据与总均值之差的平方和。如果组间变异相对于组内变异足够大,就说明各组均值之间存在显著差异。
ANOVA 使用 F 统计量来量化"组间变异 / 组内变异"的比值:
其中 dfB = k − 1(k 为组数),dfW = N − k(N 为总样本量)。MSB 和 MSW 分别称为组间均方和组内均方。
在原假设"所有组均值相等"成立时,F 统计量服从 F(k−1, N−k) 分布。若计算出的 F 值大于临界值(或 p 值小于 α),则拒绝原假设,认为至少有一组均值与其他组不同。
虽然 ANOVA 的目的是比较均值,但它使用的工具是方差的分解。通过比较"组间方差"与"组内方差"的比值,间接推断均值是否相等。当组间方差远大于组内方差时,均值必然不相等。这种通过方差推断均值的方法,由统计学家 Ronald Fisher 在 20 世纪初提出。
单因素 ANOVA(One-Way ANOVA):只研究一个分类变量(因素)对数值结果的影响。例如,比较三种不同肥料对作物产量的影响。
双因素 ANOVA(Two-Way ANOVA):同时研究两个分类变量的主效应和交互效应。例如,同时考察肥料类型和灌溉方式对作物产量的影响,以及它们之间是否存在交互作用(某种肥料在特定灌溉条件下效果特别好)。
ANOVA 的结论是"至少有一组不同",但并未告诉我们具体是哪几组不同。此时需要进行事后检验,常用方法包括:
1. 制造工艺优化:比较五种不同切削参数下零件的表面粗糙度,ANOVA 能识别哪些参数对质量有显著影响,指导工艺窗口的设定。在六西格玛项目中,ANOVA 是筛选关键因子的标准工具。
2. 药物临床试验:比较新药高剂量组、低剂量组与安慰剂组的疗效指标。ANOVA 一次性判断三组差异,事后检验定位有效剂量。这是 FDA 审批药物时要求的标准统计方法之一。
3. A/B/n 测试与用户体验:当同时测试多个产品版本(如三种不同的推荐算法)时,ANOVA 判断整体差异,事后检验找出最优版本。这比多次 t 检验更严谨,避免了假阳性膨胀。
单因素 ANOVA 计算步骤:
前提假设:各组数据独立、近似正态分布、方差齐性(homoscedasticity)。若方差不齐,可采用 Welch's ANOVA 替代。
某学校测试三种教学方法(传统讲授、翻转课堂、项目式学习)对学生成绩的影响,每组 10 名学生,成绩如下:
总均值 x̄ = (745 + 814 + 875) / 30 = 2434 / 30 ≈ 81.13
传统组均值 x̄₁ = 74.5,翻转组 x̄₂ = 81.4,项目组 x̄₃ = 87.5
SSB = 10×(74.5−81.13)² + 10×(81.4−81.13)² + 10×(87.5−81.13)²
SSB = 10×43.98 + 10×0.07 + 10×40.58 ≈ 846.3
SST 通过计算所有数据与总均值之差的平方和得到 ≈ 1026.5
SSW = SST − SSB ≈ 1026.5 − 846.3 = 180.2
dfB = 3 − 1 = 2,dfW = 30 − 3 = 27
MSB = 846.3 / 2 = 423.15,MSW = 180.2 / 27 ≈ 6.67
F = 423.15 / 6.67 ≈ 63.4
查 F 分布表,F0.05(2, 27) ≈ 3.35。由于 63.4 >> 3.35,p 值远小于 0.001。
结论:拒绝原假设,三种教学方法的成绩存在显著差异。
anova1 执行单因素方差分析,返回 p 值、方差分析表和统计结构。multcompare 配合 tukey-kramer 方法进行事后检验,输出每对组间的均值差异、置信区间和校正后的 p 值。