R 平方的一个实例是什么?
直接答案
R 平方(R²)的一个实例从一个小数据集开始,计算模型的预测值,然后比较两个量:(1)模型解释的变异,以及(2)观测结果中的总变异。R² 是解释变异与总变异的比值,定义为:
R² = 1 − (SSres / SStot)
其中 SSres 是残差平方和,SStot 是围绕均值的总平方和。
以下是一个完整的数值示例。它不依赖任何实时市场数据。
机制或定义
为明确计算过程,定义一个因变量 y(观测值)和一组对应时间点的模型预测值 ŷ。
- 计算观测值的均值:ȳ = average(y)。
- 计算总平方和(SStot):
SStot = Σ(yi − ȳ)² - 计算残差和残差平方和(SSres):
SSres = Σ(yi − ŷi)² - 转换为 R²:
R² = 1 − SSres / SStot
通俗解释:当模型的预测值相对于观测值围绕其均值的离散程度(总变异)更接近实际观测值(残差小)时,R² 值会升高。
证据或示例
假设我们有 4 个观测结果 y 和一组由某个模型生成的简单预测值 ŷ。
设:
- y = [2, 0, 4, 6]
- ŷ = [2, 1, 3, 5]
假设:
- 预测值 ŷ 与 y 对应相同的四个案例。
- 我们使用标准的“解释方差”定义来计算 R²。
- 不包含任何成本、执行影响或未来行为;这纯粹是对这四个点拟合情况的算术总结。
第 1 步:y 的均值
ȳ = (2 + 0 + 4 + 6) / 4 = 12/4 = 3
第 2 步:总平方和(SStot)
- (2 − 3)² = 1
- (0 − 3)² = 9
- (4 − 3)² = 1
- (6 − 3)² = 9
因此 SStot = 1 + 9 + 1 + 9 = 20
第 3 步:残差与 SSres
残差 (yi − ŷi):
- 2 − 2 = 0 → 平方:0
- 0 − 1 = −1 → 平方:1
- 4 − 3 = 1 → 平方:1
- 6 − 5 = 1 → 平方:1
因此 SSres = 0 + 1 + 1 + 1 = 3
第 4 步:计算 R²
R² = 1 − SSres / SStot = 1 − 3/20 = 17/20 = 0.85
结果:对于此数据集和这些预测值,R² = 0.85。这意味着残差误差远小于 y 围绕其均值的变异性。
局限性与风险
- R² 不代表因果关系。即使模型捕捉到了模式但未解释其成因,也可能出现高 R²。
- R² 依赖于所选的 y 和 ŷ 的生成方式。如果改变模型形式、训练数据或预处理方式,R² 可能发生变化。
- 过拟合风险:模型可能在历史数据上拟合得很好(样本内 R² 高),但泛化能力差。历史关系不能保证未来结果。
- 对数据集的敏感性:如果 SStot 很小(y 值接近其均值),R² 可能变得不稳定或误导。
- 在样本外数据中的失效模式:在新数据上计算的 R² 可能远低于样本内值,因为当关系发生变化时,残差通常会增大。
验证或下一步问题
你可以通过重新计算三个要素——ȳ、SStot 和 SSres——使用相同的观测值 y 和预测值 ŷ 来独立验证任何 R² 值。如果你想进一步探究,一个有用的下一步问题是:当预测来自不同时间窗口、不同缩放方式或不同模型选择时,R² 会如何表现——尤其是在关系随时间不稳定的情况下。