中央値
The R tips【Statistics with “R”- median】

中央値
The R tips【Statistics with “R”- median】

トップページに戻る

中央値は、統計学においてデータの中央に位置する値を表す。データの中央値は、平均とは異なる統計的な指標である。

コード意味
median(x)xの中央値を求める。

データの位置を表す代表値として最もポピュラーなのが平均だが、データの中の極端に大きい(小さい)値に影響されやすいという問題点がある。

この観点から、平均値と中央値を合わせてレポートするよう指示されるケースがほとんどである。

その中央値であるが、数式を用いると以下のように定義される。

定義(中央値)
大きさ\(n\)の標本\(x_1,…,x_n\)に対し,これらを小さい順に並べたものを,\(x_\left(1\right),…,x_\left(n\right)\)と表す。このとき中央値は
\[M=\left\{ \begin{array}{l} x_{\left(\left(n+1 \right)/2\right)} ~~~~~~~~~nが奇数のとき\\ \frac{x_{\left(n/2\right)}+x_{\left(\left(n/2 \right)+1\right)}}{2}~~~nが偶数のとき \end{array} \right.\] で与えられる。

Rではmedian( )という関数を用いれば中央値を計算できる。

また、中央値の定義は多少複雑ではあるが、数式で書けるので自分でプログラムすることもできる。

以下のコードでは、定義に従って中央値を計算する関数median_func( )を作成し、median( )関数と計算結果を比較できる。

X <- rbinom(20,size=100,prob=0.5) #2項分布に従う乱数の発生(N=20)
Y <- c(X,99)
X
Y
sort(X)
sort(Y)
median_func <- function(x){
	N 		<- length(x)
	odd 		<- N%%2	#2で割ったあまり(%%)で偶数と帰趨を判別
	order_stat 	<- sort(x)  #xを小さい順に並べる
	if(odd==0){
		M <-	(order_stat[N/2]+order_stat[N/2+1])/2
		}else{
		M <- order_stat[(N+1)/2]
		}
	M
	}
#N=20で偶数のときの自作関数と組み込み関数median( )の比較
median_func(X)
median(X)
#N=21で偶数のときの自作関数と組み込み関数median( )の比較
median_func(Y)
median(Y)

計算結果はこちら。

Nが偶数の場合も奇数の場合も計算結果が一致している。

中央値の利点を列挙しておく。

外れ値の影響を軽減する:
中央値はデータの中央に位置するため、外れ値の影響を受けにくい特徴がある。一方、平均は外れ値の影響を強く受ける可能性がある。そのため、データに外れ値が含まれる場合やデータが歪んでいる場合に、中央値が適切な指標となる場合がある。

順序データに適している:
中央値はデータの大小関係だけを考慮するため、ランキングデータなどの順序データに適している。平均は数値データの合計を使うため、順序データに適用すると意味が不明確になる場合がある。

集計結果がロバスト:
ロバスト性は、データに影響を与える外れ値や異常値が存在しても統計的な解析結果が安定している性質を指す。中央値はロバストな指標で、異常値が結果に大きな影響を与えにくいためデータの変動が大きい場合にも信頼できる結果を返す。

データの性質や解析の目的に合わせて、中央値や他の統計的な指標を選択することが重要!

関連するトピック

コメントは受け付けていません。