Engineering Skills

製品開発エンジニアがデータ解析のノウハウを垂れ流します

ロバストZスコア(2)

データ集合が与えらえた時、平均0と標準偏差1になるようデータを標準化することを正規化と呼び、変換された数値をZスコアと呼びます。Zスコアを10倍し50足した数値は、お馴染みの偏差値になります。

通常は平均と標準偏差を用いた変換が行われますが、平均や標準偏差は外れ値/異常値の影響を受けます。このため外れ値/異常値に対してロバストなZスコアが提案されています。

(通常の)Zスコア

平均[math] \mu [/math]と標準偏差[math] \sigma [/math]から正規化を行う下記がZスコアです。

得られているデータ[math] X_i [/math]に対して

[math] X_i = \displaystyle\frac{(X_i - \bar{X})}{\sigma} [/math]

ロバストZスコア

平均のかわりに中央値(median)やトリム平均を、標準偏差の代わりに正規四分位範囲(Nomralized Interquartile Range, IQR)を用いた正規化です。

得られているデータ[math] X_i [/math]に対して

[math] X_i = \displaystyle\frac{(X_i - median)}{NIQR} [/math]

中央値(median)を用いる利点は、外れ値/異常値の影響を受けない点に加え、分布の形にも影響を受けない点です。NIQRに関しては外れ値/異常値の影響を受けない点は同様ですが、正規分布を仮定した調整を行っており前提は正規分布になります

ここからいくつかノンパラメトリックベースでZスコアの代替を提案します。

ロバストZスコア-a

平均のかわりに中央値(median)を、標準偏差の代わりに少数サンプル影響などを補正したunbiasedな正規四分位範囲(Unbiased Nomralized Interquartile Range, UNIQR)を用いたケース。

得られているデータ[math] X_i [/math]に対して

[math] X_i = \displaystyle\frac{(X_i - median)}{UNIQR} [/math]

ロバストZスコア-b

平均のかわりに中央値(median)を、標準偏差の代わりに少数サンプル影響などを補正したUnbiased Median Absolute Deviation(中央絶対偏差, UMAD)を用いたケース。

得られているデータ[math] X_i [/math]に対して

[math] X_i = \displaystyle\frac{(X_i - median)}{UMAD} [/math]

ロバストZスコア-c

平均のかわりに中央値(median)を、標準偏差の代わりに少数サンプル影響などを補正したRousseeuw and Croux's [math] \displaystyle S_n [/math]を用いたケース。

得られているデータ[math] X_i [/math]に対して

[math] X_i = \displaystyle\frac{(X_i - median)}{S_n} [/math]

ロバストZスコア-d

平均のかわりに中央値(median)を、標準偏差の代わりに少数サンプル影響などを補正したRousseeuw and Croux's [math] \displaystyle Q_n [/math]を用いたケース。

得られているデータ[math] X_i [/math]に対して

[math] X_i = \displaystyle\frac{(X_i - median)}{Q_n} [/math]

ロバストZスコアの中心位置

中心位置については、平均の他下記のようなものが考えられます。

No. 中心位置
1 average
2 median
3 trimmed mean(50%)
4 hodges-lehmann

データの中心位置を上記4種、バラツキも標準偏差含めてロバストZスコアa~dで5種、計4x5=20種について比較してみます。まずは平均=0、標準偏差=1の正規分布に従う乱数について、値=4の外れ値を1つ含めてZスコアを計算してみます。Zスコアの正解=4で1000試行になります。サンプルサイズ=10、30、100の結果が下記です。

標準偏差を用いたものは外れ値影響でバラツキが大きくZスコアが小さめに出ている一方で、Zスコア推定のバラツキは小さいです。ロバストZスコアa~dの中ではIQR=MADでZスコアの正解=4に近い結果です。データの中心位置に関しては平均以外はどれも同等だけど、今回の正規分布に従う乱数ではMedianが良さそう。結局MedianとIQRベースが最強のようです。

まとめ

ロバストZスコアに関して、色々なデータ中心位置推定値とバラツキ推定値を試してみました。結局MedianとIQRからの計算が、少なくとも正規分布に従う乱数では最強のようです。

バラツキのロバスト統計量(7)- 指数分布で比較

バラツキに関するロバスト(ノンパラメトリック)統計量で、IQRMAD、RousseeuwとCrouxら[1]によって提案された[math] \displaystyle S_n [/math][math] \displaystyle Q_n [/math]について正規分布に従う乱数の挙動をここ で、一様分布に従う乱数の挙動をここ で、確認しました。念押しで、今回は指数分布でサンプルサイズを変化させて応答を見てみます。自習です、業務上で使う上で対象分布の違いによる応答を押さえておきたい。

 

IQR, MAD, [math] \displaystyle S_n [/math], [math] \displaystyle Q_n [/math]の比較

範囲[0,1]に分布する一様分布に従う乱数から生成したデータについて、標準偏差、IQR(unbiased)、MAD(unbiased)、[math] \displaystyle S_n [/math][math] \displaystyle Q_n [/math]、及び標準偏差以外の4手法の平均値を比較してみます。横軸は手法で1000回試行の結果です。

指数分布は下記です。

[math] \displaystyle f(x) = \lambda e^{-\lambda x } [/math]

指数分布の分散は[math] \displaystyle \lambda [/math]なので[math] \displaystyle \lambda = 1 [/math]標準偏差=1 が期待値です。

まずN=4、5、6の結果です。標準偏差以外のノンパラメトリックな手法は低めに出るようです。ノンパラ系のなかでもIQR以外は、やや外れ値が少ないか。

次いでN=10、20の結果です。N数が多くなるのと顕著ですが、標準偏差以外のノンパラメトリックな手法は標準偏差が低めに出るようです。N数が小さい場合は影響小さいですが、N数が増えるとさらに低下していくようです。

まとめ

IQR, MAD, [math] \displaystyle S_n [/math], [math] \displaystyle Q_n [/math]を指数分布に従う乱数で比較してみました。指数分布の場合、標準偏差に対してノンパラメトリックな手法から推定した標準偏差は値が低めに出るようです。ただし特殊なケースなので、実務上は標準偏差以外の手法は外れ値にロバストになり、どれを使っても大差ないと思われます。

[1] Rousseeuw, P. J. and Croux, C. (1993), “Alternatives to the Median Absolute Deviation,” Journal of the American Statistical Association, 88, 1273–1283.

バラツキのロバスト統計量(6)- 一様分布で比較

バラツキに関するロバスト(ノンパラメトリック)統計量で、IQRMAD、RousseeuwとCrouxら[1]によって提案された[math] \displaystyle S_n [/math][math] \displaystyle Q_n [/math]について正規分布に従う乱数の挙動をここ で確認しました。今回は一様分布でサンプルサイズを変化させて応答を見てみます。自習です。

 

IQR, MAD, [math] \displaystyle S_n [/math], [math] \displaystyle Q_n [/math]の比較

範囲[0,1]に分布する一様分布に従う乱数から生成したデータについて、標準偏差、IQR(unbiased)、MAD(unbiased)、[math] \displaystyle S_n [/math][math] \displaystyle Q_n [/math]、及び標準偏差以外の4手法の平均値を比較してみます。横軸は手法で1000回試行の結果です。一様分布の分散は[math] \displaystyle \frac{1}{12} [/math]なので標準偏差=0.288675135 が期待値です。

まずN=4、5、6の結果です。やはり外れ値がないの場合なので、最尤推定となる標準偏差が推定精度が高いです。それ以外では、IQRが暴れていますね。

次いでN=10、20の結果です。N数が多くなるのと顕著ですが、標準偏差の推定結果からは[math] \displaystyle Q_n [/math]以外はズレが大きく、かつ[math] \displaystyle Q_n [/math]のバラツキが小さいです。[math] \displaystyle Q_n [/math]標準偏差の代替として有効そうです。

まとめ

IQR, MAD, [math] \displaystyle S_n [/math], [math] \displaystyle Q_n [/math]を一様分布に従う乱数で比較してみました。一様分布の場合、[math] \displaystyle Q_n [/math]標準偏差の上位互換に見えます。ただし前回も言った通り、実務上は標準偏差以外の手法は外れ値にロバストになりますが、どれを使っても大差ないと思われます。

[1] Rousseeuw, P. J. and Croux, C. (1993), “Alternatives to the Median Absolute Deviation,” Journal of the American Statistical Association, 88, 1273–1283.

バラツキのロバスト統計量(5)- 正規分布で比較

データの平均値、中央値ではデータ中心位置の外れ値にロバストな統計量を記載しました。今回もバラツキに関するロバスト(ノンパラメトリック)統計量です。IQRMADが有名で、RousseeuwとCrouxら[1]によって提案された[math] \displaystyle S_n [/math][math] \displaystyle Q_n [/math]も紹介してきました。今回はサンプルサイズを変化させて応答を見てみます。

 

IQR, MAD, [math] \displaystyle S_n [/math], [math] \displaystyle Q_n [/math]の比較

平均=0、標準偏差=1の正規分布に従う乱数から生成したデータについて、標準偏差、IQR(unbiased)、MAD(unbiased)、[math] \displaystyle S_n [/math][math] \displaystyle Q_n [/math]、及び標準偏差以外の4手法の平均値を比較してみます。横軸は手法で1000回試行の結果です。標準偏差=1なので、縦軸は1が正解です。

まずN=4、5、6の結果です。やはり外れ値がないの場合なので、最尤推定となる標準偏差が推定精度が高いです。それ以外では、N=4ではIQR以外の推定精度が高く、改良されている感があります。でも、そこまで変わりません?

次いでN=10、20の結果です。N数が多くなると標準偏差以外では、ノンパラメトリック手法間の平均を取るとバラツキが小さめになっているようには見えます。N=4~20の全般的に[math] \displaystyle Q_n [/math]がバラツキ小さく見えます。

まとめ

IQR, MAD, [math] \displaystyle S_n [/math], [math] \displaystyle Q_n [/math]正規分布に従う乱数で比較してみました。僅かな差ですが、新たに開発された手法の方が推定精度は高そうです。ただし、実務上は標準偏差以外の手法は外れ値にロバストになりますが、どれを使っても大差ないと思われます。

[1] Rousseeuw, P. J. and Croux, C. (1993), “Alternatives to the Median Absolute Deviation,” Journal of the American Statistical Association, 88, 1273–1283.

バラツキのロバスト統計量(4)- [math] \displaystyle Q_n [/math]

データの平均値、中央値ではデータ中心位置の外れ値にロバストな統計量を記載しました。ここではデータ中心位置の外れ値にロバストな統計量を記載しました。今回もバラツキに関するロバスト(ノンパラメトリック)統計量です。IQRMADが有名で、RousseeuwとCrouxら[1]によって提案された[math] \displaystyle S_n [/math]も紹介しました。今回も同じくRousseeuwとCrouxら[1]によって提案された[math] \displaystyle Q_n [/math]を紹介します。

 

RousseeuwとCrouxの[math] \displaystyle Q_n [/math]

MADは正規分布では効率性が低く、対称分布には必ずしも適しているとは限りません。そこでRousseeuwとCrouxは、MADの代替として2つの統計量を提唱しています。1つ目の統計量[math] \displaystyle S_n [/math]は次のとおりです。

[math] \displaystyle Q_n = 2.2191 \times \lbrace | x_i - x_j |; i \lt j \rbrace _{(k)} [/math]
[math] \displaystyle k = \left( \begin{array}{c} [\frac{n}{2}]+1 \\ 2 \end{array} \right) [/math]

2.2191の数値は原著論文では2.2219となっていますが、これはタイポのようです

本来であれば下記計算で、[math] \displaystyle \phi^{-1} [/math]正規分布の累積密度関数の逆関数です。

[math] \displaystyle d = \frac{1}{\sqrt{2}\phi^{-1}{(5/8)}} = 2.219144465985075864722 [/math]


[math] \displaystyle Q_n [/math]についても、やはり少数サンプルで見積もり精度に偏りが生じます。

対象データを正規分布と仮定した場合Christophe CrouxとPeter J. Rousseeuwより補正値が提案されています[1]。下記形式で補正値を[math] \displaystyle c\_{qn} [/math]と置いて、下記のような数値となります。

[math] \displaystyle \hat{\sigma} = {c_{qn}} \times S_n [/math]

[math] \displaystyle n \gt 9 [/math]では

奇数の場合、

[math] \displaystyle b_n= \frac{n}{n+1.4} [/math]

偶数の場合、

[math] \displaystyle b_n= \frac{n}{n+3.8} [/math]

です。

例えば平均=0、標準偏差=1の正規分布に従う乱数から生成したデータについて、Snを計算したのが下記です。横軸はサンプルサイズで1000回試行の結果です。標準偏差=1なので、縦軸は1が正解ですがサンプルサイズによってバラついているのが分かります。

補正結果は下記のようになり、元々の標準偏差=1に綺麗に漸近しています。自作コードなのですが、合ってそうです。

まとめ

RousseeuwとCrouxの[math] \displaystyle Q_n [/math]について標準偏差の推定ついて述べました。今回も、こちらのツールに実装しています、Menu > Open File (Normality Test)などで読み込むと他の統計値と一緒に計算します。

[1] Rousseeuw, P. J. and Croux, C. (1993), “Alternatives to the Median Absolute Deviation,” Journal of the American Statistical Association, 88, 1273–1283.

バラツキのロバスト統計量(3)- [math] \displaystyle S_n [/math]

”データの平均値、中央値”ではデータ中心位置の外れ値にロバストな統計量を記載します。今回もバラツキに関するロバスト(ノンパラメトリック)統計量です。IQRMADが有名ですが、今回はRousseeuwとCrouxら[1]によって提案された[math] \displaystyle S_n [/math]を紹介します。

 

RousseeuwとCrouxの[math] \displaystyle S_n [/math]

MADは正規分布では効率性が低く、対称分布には必ずしも適しているとは限りません。そこでRousseeuwとCrouxは、MADの代替として2つの統計量を提唱しています。1つ目の統計量[math] \displaystyle S_n [/math]は次のとおりです。

[math] \displaystyle S_n = 1.1926 \times med_i ( med_j(| x_i - x_j |)) [/math]

[math] \displaystyle S_n [/math]も少数サンプルで見積もり精度に偏りが生じます。

対象データを正規分布と仮定した場合Christophe CrouxとPeter J. Rousseeuwより補正値が提案されています[1]。下記形式で補正値を[math] \displaystyle c\_{sn} [/math]と置いて、下記のような数値となります。

[math] \displaystyle \hat{\sigma} = {c_{sn}} \times S_n [/math]

[math] \displaystyle n \gt 9 [/math]の場合は、

[math] \displaystyle b_n= \frac{n}{n-0.9} [/math]

です。

例えば平均=0、標準偏差=1の正規分布に従う乱数から生成したデータについて、Snを計算したのが下記です。横軸はサンプルサイズで1000回試行の結果です。標準偏差=1なので、縦軸は1が正解ですがサンプルサイズによってバラついているのが分かります。

補正結果は下記のようになり、元々の標準偏差=1に綺麗に近づいています。

まとめ

RousseeuwとCrouxの[math] \displaystyle S_n [/math]について標準偏差の推定ついて述べました。今回も、こちらのツールに実装しています、Menu > Open File (Normality Test)などで読み込むと他の統計値と一緒に計算します。

[1] Rousseeuw, P. J. and Croux, C. (1993), “Alternatives to the Median Absolute Deviation,” Journal of the American Statistical Association, 88, 1273–1283.

バラツキのロバスト統計量(2)- MAD

”データの平均値、中央値”ではデータ中心位置の外れ値にロバストな統計量を記載します。バラツキに関してもロバスト(ノンパラメトリック)な統計量があります。IQRとMADと言ったものですが、今回はMADと標準偏差推定時の補正値について書きます。

 

範囲(Range)と偏差(deviation)

本題に入る前に統計学における範囲(Range)と偏差(deviation)について説明します。

まず、範囲は得られた(標本)データの最大値と最小値の差分です。観測値からのバラツキの最大範囲を与えます。もちろん、標本数が少ない場合、実データは範囲より大きい(小さい)値をとることもありえますし、外れ値を含む場合は信用できません。通常はある程度クリーニングされたデータに対して、レンジでこれくらいだなと感覚的にデータバラツキを把握できます。何よりの利点は、明確に”どこから~どこまで変動する”か教えてくれる点です。エクセルでは=RANGE()です。

[math] \displaystyle Range = Max_i - Min_i [/math]

次に、偏差はある基準点からの差、そして差の絶対値を絶対偏差と呼びます。通常基準点は、正規分布を仮定して母集団の平均値とするので、平均値からの差分が代表的なものになります。

[math] \displaystyle Deviation = x_i - \mu [/math]

偏差はデータ群の一つ一つに対して定まるので、データ群に対しては絶対偏差の平均をとった平均絶対偏差(Mean Absolute Deviation)などが定義されます。エクセルで平均偏差は=AVEDEV()です。

[math] \displaystyle MeanAD = \frac{1}{n}\sum_{i=1}^{n}{ | x_i - \mu | } [/math]

やや紛らわしいですが"平均値からの絶対偏差の平均値(平均絶対偏差、Mean Absolute Deviation)"と"中央値からの絶対偏差の中央値(中央絶対偏差、Median Absolute Deviation)=MAD"があります。ロバストな推定量という文脈では後者が当てはまります。

[math] \displaystyle MedianAD = Median{ | x_i - Median(X) | } [/math]

MADから標準偏差の推定

MADは標準偏差=1の正規分布において1/1.4826となります。このためMADに1.4826をかけたNormalized MAD(NMAD)が定義され、外れ値に影響を受けにくい標準偏差の推定値となります。

[math] \displaystyle NMAD = 1.4826 \times MAD [/math]

MADから標準偏差の推定補正

MADからの標準偏差推定ですが、IQRと同様に少数のサンプルサイズによって見積もり精度に偏りが生じます。

例えば平均=0、標準偏差=1の正規分布に従う乱数から生成したデータについて、NMADを計算したのが下記です。横軸はサンプルサイズで1000回試行の結果です。標準偏差=1なので、縦軸は1が正解ですがサンプルサイズによってバラついているのが分かります。

対象データを正規分布と仮定した場合Christophe CrouxとPeter J. Rousseeuwより補正値が提案されています[1]。下記形式で補正値を[math] \displaystyle b_n [/math]と置いて、下記のような数値となります。

[math] \displaystyle \hat{\sigma} = {b_n} \times {\overline{NMAD}} [/math]

[math] \displaystyle n \gt 9 [/math]の場合は、

[math] \displaystyle b_n= \frac{n}{n-0.8} [/math]

補正結果は下記のようになり、元々の標準偏差=1に綺麗に近づいています。

まとめ

MADから標準偏差を推定する場合の補正値について述べました。今回も、こちらのツールに実装しています、Menu > Open File (Normality Test)などで読み込むと他の統計値と一緒に計算します。

[1] Croux, Christophe, and Peter J. Rousseeuw. “Time-efficient algorithms for two highly robust estimators of scale.“In Computational statistics, pp. 411-428. Physica, Heidelberg, 1992.