常用的變量變換方法有對數變換、平方根變換、倒數變換、平方根反正弦變換等,應根據資料性質選擇適當的變量變換方法。
1. 對數變換
即將原始數據X的對數值作為新的分布數據:
X’=lgX
當原始數據中有小值及零時,亦可取X’=lg(X+1)
還可根據需要選用X’=lg(X+k)或X’=lg(k-X)
對數變換常用於(1)使服從對數正態分布的數據正態化。如環境中某些污染物的分布,人體中某些微量元素的分布等,可用對數正態分布改善其正態性。
(2)使數據達到方差齊性,特別是各樣本的標准差與均數成比例或變異系數CV接近於一個常數時。
在numpy 中使用:
轉換成符合正態分布的數據,log(price+1), 反轉使用:np.expm1()
2.平方根變換
即將原始數據X的平方根作為新的分布數據。
X’=sqrt(X)
平方根變換常用於:1)使服從Poission分布的計數資料或輕度偏態資料正態化,可用平方根變換使其正態化。
2)當各樣本的方差與均數呈正相關時,可使資料達到方差齊性。
3.倒數變換
即將原始數據X的倒數作為新的分析數據。
X’=1/X
常用於資料兩端波動較大的資料,可使極端值的影響減小。
4.平方根反正弦變換
即將原始數據X的平方根反正弦值做為新的分析數據。
X’=sin-1sqrt(X)
常用於服從二項分布的率或百分比的資料。一般認為等總體率較小如<30%時或較大(如>70%時),偏離正態較為明顯,通過樣本率的平方根反正弦變換,可使資料接近正態分布,達到方差齊性的要求。
發現沒有,除了倒數轉換,其他數據值都要求 y 值必須為正值,如果要使用負值呢?可以使用Box-Cox變換:
5.Box-Cox變換:
逆變換為:
2.當y 可以小於 0 時:
Box-Cox變換:
g 默認為 1
逆變換為: