你好,
当绘制一个简单的回归图时,我可以获得 R^2 和 RMSE。
我想知道JMP中RMSE具体是如何计算的。
这是因为我在某处读到(Fearn 2002),有些人取误差平方和的平方根,除以 n而其他人除以 n-1 。
JMP 13 Pro 是如何做到的?
谢谢!
使用 Python sklearn 库计算均方根误差
均方误差 ( MSE ) 定义为实际值与估计值之差的平方平均值。 这意味着 MSE 的计算方法是预测目标变量与实际目标变量之间的差值的平方除以数据点的数量。 它始终是非负值并且接近零更好。
均方根误差是均方误差 (MSE) 的平方根。 这与均方误差 (MSE) 相同,但在确定模型的准确性时会考虑值的根。
import numpy as np
import sklearn.metrics as metrics
actual = np.array([56,45,68,49,26,40,52,38,30,48])
predicted = np.array([58,42,65,47,29,46,50,33,31,47])
mse_sk = metrics.mean_squared_error(actual, predicted)
rmse_sk = np.sqrt(mse)
print("Root Mean Square Error :", rmse_sk)
它实际上除以总样本量减去模型项数 (n - df_model)。例如,如果我对 15 个数据点和 1 个具有 3 个级别的分类因子进行方差分析,则该模型将具有 1 个截距项和 2 个用于分类因子的模型项(总共 3 个)。因此,RMSE 将是 sqrt(SSE/(15-3))。
JMP 和现在的 JMP Pro 始终以相同的方式计算 RMSE:按照方差分析的定义。 它是均方误差的平方根。 均方误差是误差平方和除以误差自由度的商。 误差的自由度是校正后的总自由度减去模型的自由度。 校正总数的自由度为 N - 1。 (平均响应的校正会损失一个自由度。)
以下是使用示例数据文件夹中的 Big Class 数据表进行的体重与身高的简单线性回归:

误差的自由度为 DF(CT) - DF(M) = 39 - 1 = 38。 高度需要一个参数。
这是体重与年龄、性别和身高的多元回归:

误差的自由度为 DF(CT) - DF(M) = 39 - 7 = 32。 需要年龄、性别和身高七个参数。