[R]散布度を求める

サイト移転のお知らせ

移転先はこちらです。
[R]散布度を求める
新たな記事は移転先に掲載しておりますので、そちらをご確認ください。

スポンサードリンク

散布度とは

散布度はデータの特徴を示す数値の中で、データがどの程度バラけた値をとっているかを示す指標です。

 

イメージとしてはヒストグラムを描いたときにどの範囲にどの程度データがあるかを見ることと捉えると分かりやすです。

 

散布度を表すにはいろいろな表し方がありますが、基本的には代表値を基準にしてどれくらい離れたところまでデータが有るかを考えることだと思って下さい。

 

次の表は散布度の説明とRで代表値を求めるための関数です。

散布度

説明

Rの関数

分散 数式

不偏分散 数式

データの各成分 数式と平均値 数式の差を2乗して全て足した値をデータの個数 数式で割ると求められる。

数式
不偏分散は分散を求める式の 数式数式にすることで求められる。
数式

var()(不偏分散)
標準偏差 数式

不偏標準偏差 数式

分散の平方根を求めることが標準偏差を求めることと同じ意味になる。

数式
不偏標準偏差については不偏分散の平方根を求めることで知ることができる。
数式

sd()(不偏標準偏差)
最大値・最小値 最大値はデータの一番大きな値。最小値はデータの一番小さな値。 最大値 → max()

最小値 → min()

範囲:レンジ データの最大値と最小値の差のこと。 range()
四分位数(しぶんいすう・しぶいすう):クォンタイル データを小さい順に並べたとき、小さい方から1/4、2/4、3/4の位置にある値のこと。

小さい方から順に第1四分位数(1Q)、第2四分位数(2Q)、第3四分位数(3Q)と言う。
第2四分位数は中央値のことで、第1四分位数と第3四分位数がきりよく1つのデータを指さない場合は中央値と同じように2つの値の平均値を求めればいい。

quantile()

 

ここから先で使えるように、はじめにデータを作成しておきます。

x <- rnorm(300, mean=20, sd=5)
y <- sample(1:9, 12, rep=T)

分散と標準偏差を求める

分散と標準編差を求めるには次の式を使います。

 

数式

 

数式の意味は「平均値からのズレ」の平均値でした。

 

まず、単純に分散を求めるには、力技ですが

Vx <- (1/length(x))*sum((x-mean(x))^2)

とします。

 

length関数はデータの個数、ここでは 数式を求める関数です。

 

分散を求めるには表の式に当てはめて計算を行なって求めることもできますが、不偏分散を求める var関数が用意されているのでこれを使って求めたほうが楽です。

 

分散と不偏分散の式の差は 数式で割るか 数式で割るかの差なので、不偏分散を分散に直すには 数式を掛けることで行えます。

 

これと同じことを行うには(length(x)-1)/length(x)を掛ける必要があります。

Vx <- var(x) * (length(x)-1) / length(x)

 

次に標準偏差ですが、求めた分散を元に求めてもいいのですが、標準偏差にも sd関数が用意されているのでまずはこれを使います。

sx <- sd(x) * sqrt( (length(x)-1) / length(x) )

 

分散のときと同様に標準偏差を求める sd関数は不偏標準偏差を求める関数なので、単に標準偏差を求めるためには sqrt((length(x)-1)/length(x))を掛ける必要があります。

 

原理的には不偏分散を分散に変換するときと同じですが、標準偏差は分散の平方根なので 数式 の平方根である数式 を使うことだけが違います。

 

Rで平方根を求める関数は sqrt(スクエア・ルート)関数なので、 (length(x)-1)/length(x)部分を sqrt()に入れ子にして掛ければいいことになります。

最大値・最小値と範囲を求める

最大値はデータのうち一番大きな値、最小値はデータのうち一番小さな値、範囲は最大値と最小値の差です。

 

最大値・最小値はデータが少なければ目視で確認できますが、データ数が多くなってくるとそれは難しいです。

 

そこで、最大値を知りたいときは max関数を使い、最小値を知りたいときは min関数を使います。

 

先ほどのデータxにこれらを使うと

max(x)
min(x)

となります。

 

最大値・最小値がわかったので、この値から範囲を求めることができます。

 

範囲は最大値と最小値の差で、最もお手軽な散布度と言えます。

 

Rではただ単に引き算すれば求められます。

max(x) - min(x)

 

これがデータxの範囲で、一番簡単に散布度を表している値となります。

 

Rの range関数で範囲を求めると、これとは違った結果が返ってきます。

range(x)

 

よく見ると最大値と最小値になっています。

 

range関数は統計学的な範囲を示すのではなく、データ自体の幅を2つの数値で表現する関数ですので注意して下さい。

四分位数を求める

四分位数を求めるにはquantile関数を使います。

 

四分位数を用いるのは離散型のデータが多いように思うので、準備したデータyを使います。

 

Rではこの作業を quantile関数を使うことで求められます。

quantile(y)

 

0%は最小値を示していて、100%は最大値を示しています。

 

25%が第1四分位数で、50%・75%がそれぞれ第2四分位数・第3四分位数になります。

 

それぞれて計算で求めた場合と数値は変わりません。

スポンサードリンク

「[R]散布度を求める」と同じカテゴリーのページ

[R]無作為抽出をする
無作為抽出とはなにか? Rで無作為抽出をするにはsample関数を使う
[R]統計学的なデータの種類の扱い
Rで統計的(数学的)なデータの種類をどのように扱うかという話。
[R]度数分布表を作る方法
Rでは度数分布表を作る関数が用意されていない。 ここではRで度数分布表を作成するための方法と、度数分布表を自動で作成する関数を紹介している。
[R]ヒストグラムを描くhist関数
Rでは標準でヒストグラムを描くためのhist関数が用意されている。 ヒストグラムの書き方とヒストグラムを描くときの注意点について。
[R]代表値を求める
Rで代表値を求めるための方法。 平均値はmean、中央値はmedian、最頻値はtableを使って求めることができます。 基本的な使い方と補足説明を入れてあります。
[R]箱ひげ図を描く
Rではboxplot関数を使って、箱ひげ図を直接綺麗に描くことができる。 Rで箱ひげ図を描くための方法を説明する。
[R]正規分布に従う2次元データの作り方
Rで擬似データとして、正規分布に従う2次元データを作成する方法