您的位置 首页 kreess

描述性統計:差值

差值的本意是兩數相減後剩餘的數值。略有不同地,這裡的差值定義為「度量差異的值」。如何描述「差異」?極差級差指兩極之差,即最大值和最小值相減後的值。值越小可以說明樣本所有數據

差值的本意是兩數相減後剩餘的數值。

略有不同地,這裡的差值定義為「度量差異的值」。

如何描述「差異」?

極差

級差指兩極之差,即最大值和最小值相減後的值。值越小可以說明樣本所有數據間的差異越小(緊密)。但是「值越大,所有數據之間的差異越大」,就有可能說不通瞭,比如下面這個例子。由於極差僅僅保留瞭樣本最值之間的差異,因此隻能粗略地描述數據的變化范圍。

最值差距明顯而中間數據排列緊湊,極差並不能真實反映樣本數據的差異。

四分位差

四分位差保留瞭上四分位(Q3,百分比排列 75% 位置上的數)與下四分位(Q1,百分比排列 25% 位置上的數)之間的差異,也稱作四分位距(IQR)。IQR 計算的是極差最中間的部分,因此可以用來描述中間 50% 數據的差異程度——數值越大中間的數據越分散,越小則越緊密也越靠近中位數。相比極差而言,IQR 不容易受到極端值的影響。

離差

如果說極差總傾向掩蓋數值間的真實差異,那麼離差(deviation)便毫無保留地呈現瞭每個數值的差異。離差是觀測值距離特定參照的差值,因而一定程度上反映瞭實際情況與我們預期之間的差異。這裡的特定參照數據可以是預測值,也可以是均值、最值等。

方差、標準差

既然離差反映瞭各個數據與參照之間的差異,那麼它的平均值就可用來反映所有數據的平均差異。由於離差可能出現負值,比如選定平均數作為參照時計算的「離均差」,加總離差值容易出現中和。為瞭避免這樣的情況,很自然會想到對離差取絕對值或平方後再求和的做法。方差(Variance)便是這樣一種方式計算而來的平均值。因為離差不盡相同,故將每個離差平方求和再取平均,「盡最大努力保證公平」地代表數據間的差異。

有時候方差數值非常大,為瞭方便衡量常常會開根號,這時稱為標準差(Standard Deviation)。

以上類型的差值足以描述一組數據的組內差異,那對於兩組數據,是否也有類似的數字呢?

平均絕對誤差、均方誤差、均方根誤差

方差的計算啟發我們,在離差不盡相同且可能存在負值的時候,可以采用「化負為正」和「平均化」的思想計算出當前數據的差異。在機器學習中經常要計算預測值和真實值之間的差異,這樣的差異稱為誤差(Error)。誤差是模型評估和優化的依據。下面簡單列舉回歸問題中常見的幾種誤差:

– 平均絕對誤差(MAE)利用絕對值將誤差「化負為正」,最後求和取平均。

– 均方誤差(MSE)利用平方將誤差「化負為正」,最後求和取平均,相較於 MAE 要平滑。

– 均方根誤差(RMSE)是 MSE 的開方值,實際含義與 MSE 一致。

協方差、相關系數

協方差(Covariance)數值上等於兩組數據的離均差乘積的平均值。與方差不同的是,協方差考慮瞭兩組數據的離均差,因此能夠描述兩組數據間的某種差異——當數值越小時,說明兩組數據所呈現的變化趨勢的差異就越明顯。

同樣為瞭方便衡量,將協方差與標準差乘積的比值構成相關系數(Correlation Coefficient)。

決定系數

決定系數(Coefficient of Determination)能夠描述兩組數據的相似程度,它的值根據公式1-MSE/方差計算而來。兩組數據越接近,MSE就越低,由於方差固定,決定系數就會接近於 1(完全相同)。

如果數據呈現的是一種線性變化時,決定系數恰好等於相關系數的平方值,別名 R 方(R-square)可能就是這樣來的。

如何量化「差異」?

從上面可以看出,離差的計算可能是最核心的 —— 方差、協方差、MAE、MSE都依賴於它;把觀測值固定為最大值和 Q1,參照值設為最小值和 Q3 就可以計算極差和 IQR。下面我們且看如何用 Python 實現所有類型的差值。

溫馨提示:以下內容涉及中文編程的理念,可能引起極度不適。

離差

def 離差(觀測值, 參照值):
return 觀測值 - 參照值

# 下面的X均為向量
def 離均差(X):
平均值 = 平均數(X) # 平均數已在上一篇文章實現
離均差 = [離差(x, 平均值) for x in X]
return 離均差

def 離均差_numpy版本(X):
平均值 = np.mean(X)
離均差 = np.asarray(X) - 平均值
return 離均差

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

返回顶部