你好,
當繪製一個簡單的回歸圖時,我可以獲得 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。 需要年齡、性別和身高七個參數。