[R]歪度の計算
標準で組み込まれている関数に歪度を計算できるものはない。そのため、自作をする必要がある。
以下は歪度を計算する関数。引数に数値ベクトルを与える。
skewness <- function(val) {
n <- length(val)
var1 <- var(val) * (n - 1) / n # 不偏分散から標本分散を求める
sd1 <- sqrt(var1) # 標本分散の平方根
r <- sum((val - mean(val)) ^ 3) / (n * sd1 ^ 3)
return(r)
}
「統計解析のはなし」(石村貞夫著、東京図書)の39~40ページに載っている計算例を試してみる。上記の関数を定義した上で、以下のスクリプトを実行する。
スクリプト
d <- c(rep(125, 7), rep(175, 22), rep(225, 15), rep(275, 14), rep(375, 8), rep(425, 2), rep(475, 1), rep(575, 2))
cat(sprintf("標本数 %d\n", length(d)))
cat(sprintf("平均 %f\n", mean(d)))
val <- var(d) * (length(d) - 1) / length(d)
cat(sprintf("標本分散 %f\n", val))
cat(sprintf("標本分散の標準偏差 %f\n", sqrt(val)))
cat(sprintf("歪度 %f\n", skewness(d)))
出力
71
平均 245.422535
標本分散 9829.398929
標本分散の標準偏差 99.143325
歪度 1.344286
歪度a3とは、分布の形が左右対称になっているかどうかを示す量であり、その数値が指す内容は以下のとおりである。
a3>0 - 右にすそが長い
a3≒0 - 左右対称
a3<0 - 左にすそが長い
« [R].xlsxファイル(Excelのファイル)の中身を読み込む | トップページ | [gfortran]Windows 8.1でFortran »
「R(数値計算)」カテゴリの記事
- [R]複数のパラメーターと定数を持つ関数の値が最大・最小となるパラメーターを求める(2026.03.30)
- [R]重み付き線形最小二乗法を行う(2026.03.20)
- [R]重み付き非線形最小二乗法を行う(2026.03.06)
- [R]計算機イプシロンを求める(2025.10.29)
- [R]複数の引数を持つ関数の値の最小値(最大値)を求める(2024.12.07)
« [R].xlsxファイル(Excelのファイル)の中身を読み込む | トップページ | [gfortran]Windows 8.1でFortran »

コメント