什么是决定系数(R²)?
决定系数通常记作R²,用来衡量模型的预测值与实际观测数据的吻合程度。它表示因变量的方差中,能够被模型解释的那一部分所占的比例。R²的取值范围从1(完美拟合,即预测值与实际值完全一致)一直到0(此时模型并不比直接用均值预测更高明);当模型的表现比"用均值作基准"还要差时,R²甚至可能变为负数。
如何使用本计算器
请输入一组实际观测值(y)以及与之一一对应的预测值(ŷ),两者都用英文逗号分隔,且顺序必须保持一致。计算器会将它们逐一配对,先算出实际值的均值,再推导出残差平方和(SSres)与总平方和(SStot),最终给出R²以及模型所解释的方差百分比。
公式详解
$$R^{2} = 1 - \frac{SS_{res}}{SS_{tot}}$$ 其中 \(SS_{res} = \sum (y_i - \hat{y}_i)^2\),代表模型预测之后仍然残留的误差;而 \(SS_{tot} = \sum (y_i - \bar{y})^2\),代表数据围绕自身均值的总体波动程度。用前者除以后者,得到的是模型"未能解释"的波动比例;再用1减去它,就得到了模型"成功解释"的波动比例。
实例演算
实际值 = [3, −0.5, 2, 7],预测值 = [2.5, 0.0, 2, 8]。实际值的均值 = 2.875。$$SS_{res} = 0.5^2 + 0.5^2 + 0^2 + 1^2 = 0.25 + 0.25 + 0 + 1 = 1.5$$ $$SS_{tot} = (0.125)^2 + (3.375)^2 + (0.875)^2 + (4.125)^2 \approx 0.0156 + 11.3906 + 0.7656 + 17.0156 = 29.1875$$ $$R^{2} = 1 - \frac{1.5}{29.1875} \approx 0.9486$$ 也就是说该模型解释了大约94.9%的方差。
常见问题
R²会出现负值吗?会的。如果你的预测比每次都直接猜均值还要差,那么SSres就会大于SStot,R²随之变为负数。
R²越高就代表模型越好吗?不一定。R²可能因为过拟合,或因为加入了无关的预测变量而被"虚高"。务必同时结合残差图和样本外(out-of-sample)表现一起判断。
R²和相关系数有什么区别?在一元线性回归中,R²等于实际值与预测值之间皮尔逊相关系数(r)的平方。