[掃雷]你真的知道MSE嗎?

MSE是 mean squared error 的縮寫,指實際值與估計值之差的平方和,再除以個數。此定義來自於維基百科。從此定義來說,MSE可以視為變異數的估計量(Estimator)。

通常這定義寫法上都以參數的估計值符號做為表示,而不是使用Y的估計值符號,這意味著網頁表示的

{\ displaystyle \ operatorname {MSE}({\ hat {\ theta}})= \ operatorname {E} _ {\ theta} \ left [({\ hat {\ theta}}-\ theta)^ {2} \對]。}

才是真正的表達方式。

那麼如果是以Y的估計值符號表示,那就是出現在實驗設計的變異數分析表,以及迴歸分析的變異數分析表。此時的MSE不同於變異數是除以樣本個數,而是除以自由度。

很多人也覺得符號使用上沒有問題,或是認為只是符號問題,都是表達相同的意義。但這對於學習者而言是沒有任何益處,甚至造成意義上的誤解,與迷惑。

另外,有意思的是現在為了配合機器學習,將估計值叫做預測值。這些數值其實都是機器學習中,稱之的training過程所得到的結果。這是否能夠獲得數學方程式呢?至少目前我沒有看到估計方程式的出現,所以無從評論。

很多人都覺得不管除以樣本個數,還是自由度,並不影響結果,於是就出現了網上對於損失函數的定義上出現下圖情況。




所以,對於MSE的使用上,使用者需要注意的地方有二。

第一點是使用者需要認清你在哪種狀態使用,估計量,還是實驗設計或迴歸,其意義、公式與計算是有所不同的。

你如果是迴歸分析,那麼你寫的程式不能單純使用上圖的MSE表示,而需要跟隨迴歸分析的MSE計算。即使這MSE的計算需要你多寫幾行程式,你也應該寫完,而不是使用估計量定義概念去寫,或是省略樣本個數。

如果你的樣本個數會改變,特別是大數據的資料庫更新資料,就會造成資料量個數不同,此時的MSE值也會不同。如果此方法應用在金融上,就是差之毫釐,損失無窮。


第二點是使用者要將MSE做什麼用。MSE可以做評判準則,例如精確度,或是做變異數的代表,也可以是一個統計量,進一步找抽樣分配等。這同樣受到你公式使用的影響,造成不同的變化。

例如,你將MSE找出來後,讓它形成抽樣分配,可是MSE有除以樣本個數,或除以自由度或如同網路上(上圖),當作SSE。這也就讓人不禁有所懷疑電腦跑出來的「預測值」是否真從估計模型出來。


參考來源: