四分位数
~Rプログラミング~【Statistics with “R”】

四分位数
~Rプログラミング~【Statistics with “R”】

トップページに戻る

定義(四分位数)
大きさ\(n\)の標本\(x_1,…,x_n\)に対し,これらを小さい順に並べたものを,\(x_\left(1\right),…,x_\left(n\right)\)と表す。さらに
\[q(r)=\left\{ \begin{array}{l} x_{(r)} ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~rが自然数のとき\\ (\lceil r \rceil-r )x_{(\lfloor r \rfloor )}+(r-\lfloor r \rfloor )x_{(\lceil r \rceil )}~~~rが自然数でないとき \end{array} \right. \] このとき
\[q((n+3)/4)\] を第一四分位数, \[q((3n+1)/4)\] を第三四分位数という。

Rでは、summary関数を実行することで、これらの四分位数を計算することが出来る。いっぽうで、定義に従って計算しても同様の計算結果を得ることが出来る。

q <- function(x,r){
	order_stat 	<- sort(x)  #xを小さい順に並べる
	if(r%%1==0){			#1で割った余りが0か否かで自然数か否かを判別
		qr <- order_stat[r]	#rが自然数の場合
		}else{
		ceil_r <- ceiling(r)	#rが自然数でない場合
		floor_r <- floor(r)
		qr <- (ceil_r-r)*order_stat[floor_r]+(r-floor_r)*order_stat[ceil_r]
		}
	qr
	}

Q3 <- function(x){
	n <- length(x)
	q(x,(3*n+1)/4)
	}

Q1 <- function(x){
	n <- length(x)
	q(x,(n+3)/4)
	}	

X <- rnorm(100)	#検証用データ
Q3(X)			#第三四分位数
Q1(X)			#第一四分位数
summary(X)		#Rの組み込みsummary関数との比較


計算結果はこちら。

計算結果が一致している。

関連するトピック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です