中央値が外れ値に対して耐性があることは既知の事実です。その場合、最初に平均を使用するのはいつ、なぜですか?
おそらく考えられることの1つは、外れ値の存在を理解することです。つまり、中央値が平均から離れている場合、分布は歪んでおり、おそらく外れ値で何をするかを決定するためにデータを調べる必要があります。他の用途はありますか?
中央値が外れ値に対して耐性があることは既知の事実です。その場合、最初に平均を使用するのはいつ、なぜですか?
おそらく考えられることの1つは、外れ値の存在を理解することです。つまり、中央値が平均から離れている場合、分布は歪んでおり、おそらく外れ値で何をするかを決定するためにデータを調べる必要があります。他の用途はありますか?
回答:
ある意味では、平均はデータに敏感であるために使用されます。分布が対称的であり、裾がほぼ正規分布に近い場合、平均は中心傾向の非常に効率的な要約です。中央値は、連続分布に対してロバストで明確に定義されていますが、わずかは、データがたまたま正規分布から得られた場合の平均と同じくらい効率的です。中央値がこのように比較的非効率であるため、私たちが使用する以上に使用することができません。相対的な非効率性は、サンプルサイズが大きくなるにつれて、わずかな絶対的な非効率性に変換されるため、nが大きい場合は、中央値の使用について無罪になります。
変動の尺度(拡散、分散)には、標準偏差(Giniの平均差)と同じくらい効率的な0.98の非常に堅牢な推定量があることに注意してください。これは、2つの観測値の平均絶対差です。[サンプルの標準偏差に定数を掛けて、Giniの平均差によって推定される量と同じ量を推定する必要があります。]中心傾向の効率的な尺度は、Hodges-Lehmann推定量、つまりすべてのペアワイズ平均の中央値です。解釈がより単純であれば、より多く使用します。
w <- outer(x, x, '+'); median(w[row(w) >= col(w)])/2
。簡単なC、Fortran、またはRatforプログラムをRから呼び出して、高速化することができます。RのICSNPパッケージには、そのhl.loc
機能を備えたかなり効率的な実装があります。N = 5000の場合、上記のコードよりも2.66倍高速でした(合計時間1.5秒)。信頼区間を効率的に取得するのもいいでしょう。
すでに多くの素晴らしい答えがありますが、一歩後退してもう少し基本的なことをするのは、あなたが得る答えはあなたが尋ねる質問に依存するからだと思います。平均と中央値は異なる質問に答えます-時には一方が適切であり、時には他方が適切です。
外れ値がある場合や、分布が歪んでいる場合など、中央値を使用する必要があると言うのは簡単です。しかし、常にそうとは限りません。収入を取る-ほぼ常に中央値で報告され、通常はそうです。しかし、コミュニティ全体の消費力を見ている場合、それは正しくないかもしれません。また、場合によっては、モードでさえ最適かもしれません(特にデータがグループ化されている場合)。
値がガベージの場合、「outliar」と呼ばれ、分析がそれに堅牢であることを求めます(そして中央値を優先します)。同じ値が魅力的である場合、それを「極端な」と呼び、分析がそれに敏感であることを望みます(そして平均を好む)。弁証法...
平均は、分布のどこでシフトが発生するかに関係なく、値のシフトに等しく反応します。たとえば、任意の値を2 1 2 3 4 5
増やすことができます-平均の増加は同じになります。中央値の反応は「一貫性がありません」:データポイント4または5に2を追加すると、中央値は増加しません。ただし、ポイント2に2を加えると、シフトが中央値を超え、中央値が劇的に変化します(平均値よりも大幅に変化します)。
平均は常に正確に配置されます。中央値はそうではありません。たとえば、セットでは2〜3の1 2 3 4
任意の値を中央値と呼ぶことができます。したがって、中央値に基づいた分析は、常に一意のソリューションではありません。
平均は、最小二乗偏差の軌跡です。線形代数に基づく多くの最適化タスク(有名なOLS回帰を含む)は、この2乗誤差を最小化するため、平均の概念を暗示します。絶対偏差の最小合計の軌跡の中央値。このようなエラーを最小化する最適化手法は非線形であり、より複雑で/あまり知られていません。
この質問には多くの答えがあります。おそらく他の場所では見られないものがありますので、このトピックに関係があると思うので、ここに含めます。人々はしばしば、中央値が外れ値に関して堅牢な尺度であると考えられているため、ほとんどすべてに対して堅牢であると信じています。実際、歪んだ分布にバイアスをかけることも堅牢であると考えられています。中央値のこれら2つの堅牢な特性は、しばしば一緒に教えられます。基礎となる歪んだ分布は、外れ値があるように見える小さなサンプルを生成する傾向があり、そのような状況では中央値を使用するという従来の知識があることに気付くかもしれません。
#function to generate random values from a skewed distribution
rexg <- function (n, m, sig, tau) {
rexp(n, rate = 1/tau) + rnorm(n, mean = m, sd = sig)
}
(これが歪んでいることと基本的な形状のデモンストレーションのみ)
hist(rexg(1e4, 0, 1, 1))
次に、この分布からさまざまなサンプルサイズをサンプリングし、中央値と平均値を計算して、それらの違いが何であるかを確認するとどうなるかを見てみましょう。
#generate values with various n's
N <- 1e4
ns <- 2:30
y <- sapply(ns, function(x) mean(apply(matrix(rexg(x*N, 0, 1, 1), ncol = N), 2, median)))
plot(ns,y, type = 'l', ylim = c(0.85, 1.03), col = 'red')
y <- sapply(ns, function(x) mean(colMeans(matrix(rexg(x*N, 0, 1, 1), ncol = N))))
lines(ns,y)
上記のプロットからわかるように、中央値(赤)は、平均よりもnに対してはるかに敏感です。これは、特に分布が歪んでいる可能性がある場合に、nsの低い中央値を使用することに関する従来の常識に反します。また、平均値は既知の値であるのに対し、中央値は他のプロパティ(nである場合)に敏感であるという点を補強します。
この分析は、Miller、J.(1988)に似ています。反応時間の中央値に関する警告。Journal of Experimental Psychology:Human Perception and Performance、14(3):539–543。
リビジョン
スキューの問題について考えると、中央値への影響は、小さなサンプルでは中央値が分布の裾にある可能性が高いためであると考えましたが、平均はほぼ常により近い値で重み付けされますモード。したがって、おそらく、外れ値の確率でサンプリングするだけの場合、同じ結果が発生する可能性があります。
そこで、異常値が発生し、実験者が異常値を排除しようとする状況について考えました。
データのサンプリングごとに1つなど、外れ値が一貫して発生した場合、中央値はこの外れ値の影響と中央値の使用に関する従来のストーリーに対して堅牢です。
しかし、それは通常物事がどのように進むかではありません。
実験のごく少数のセルで異常値を見つけ、この場合は平均の代わりに中央値を使用することを決定するかもしれません。繰り返しますが、中央値はより堅牢ですが、外れ値が非常に少ないため、実際の影響は比較的小さくなります。これは間違いなく上記の場合よりも一般的なケースですが、中央値を使用した場合の影響はおそらく非常に小さいため、それほど重要ではありません。
おそらく、より一般的な外れ値はデータのランダムなコンポーネントである可能性があります。たとえば、母集団の真の平均と標準偏差は約0かもしれませんが、平均が3である外れ値の母集団からサンプリングする時間の割合があります。サイズ。
#generate n samples N times with an outp probability of an outlier.
rout <- function (n, N, outp) {
outPos <- sample(0:1,n*N, replace = TRUE, prob = c(1-outp,outp))
numOutliers <- sum(outPos)
y <- matrix( rnorm(N*n), ncol = N )
y[which(outPos==1)] <- rnorm(numOutliers, 4)
return(y)
}
outp <- 0.1
N <- 1e4
ns <- 3:30
yMed <- sapply(ns, function(x) mean(apply(rout(x,N,outp), 2, median)))
var(yMed)
yM <- sapply(ns, function(x) mean(colMeans(rout(x,N,outp))))
var(yM)
plot(ns,yMed, type = 'l', ylim = range(c(yMed,yM)), ylab = 'Y', xlab = 'n', col = 'red')
lines(ns,yM)
中央値は赤で、平均は黒です。これは、歪んだ分布の発見と同様の発見です。
外れ値の影響を回避するために中央値を使用する比較的実用的な例では、中央値を使用した場合よりも中央値を使用した場合の方が推定値に大きく影響する状況が考えられます。
平均から、すべてのアイテムの合計を計算するのは簡単です。たとえば、母集団の平均収入と母集団のサイズがわかっている場合、母集団全体の総収入をすぐに計算できます。
平均はO(n)
時間の複雑さで計算するのが簡単です。線形時間で中央値を計算することは可能ですが、さらに注意が必要です。並べ替えを必要とする明らかな解決策は、O(n log n)
時間の複雑さ()が複雑です。
そして、平均が中央値よりも人気がある別の理由があると推測します。
外れ値の存在を懸念する場合は、データを確認する簡単な方法がいくつかあります。
データを生成するプロセスまたはデータを収集するプロセスのいずれかで何かが変化すると、ほとんどの場合、外れ値はデータに含まれます。すなわち、データは同質ではなくなります。データが均一でない場合、2つの別々のデータセットが混在している中心的な傾向を推定しようとしているので、平均も中央値もあまり意味がありません。
均質性を確保するための最良の方法は、データ生成および収集プロセスを調べて、すべてのデータが単一のプロセスセットからのものであることを確認することです。ここでは、少しの頭脳力に勝るものはありません。
二次チェックとして、いくつかの統計的テストの1つに切り替えることができます:カイ2乗、DixonのQ検定、Grubbの検定、または管理図/プロセス動作図(通常はXバーRまたはXmR)。私の経験では、データが収集されたとおりに注文できる場合、プロセスの動作チャートは外れ値テストよりも外れ値の検出に優れています。チャートのこの使用法は多少議論の余地があるかもしれませんが、シューハートの元の意図と完全に一致しており、ドナルド・ウィーラーによって明示的に提唱されている使用法だと思います。外れ値のテストを使用する場合でも、プロセスの動作チャートを使用する場合でも、検出された「外れ値」は単に潜在的なシグナルであることを忘れないでくださいさらに検討する必要がある不均一性。データポイントが外れ値である理由について説明がない場合、データポイントを除外することはほとんど意味がありません。
Rを使用している場合、外れ値パッケージは外れ値テストを提供し、プロセス動作チャートにはqcc、IQCCおよびqAnalystがあります。私はqccパッケージの使用と出力を個人的に好みます。
いつ平均が必要ですか?
多様化したポートフォリオを形成する際、投資対象と投資額を決定する際に、リターンの平均と共分散が最適化問題に大きく影響する可能性があります。