[R]平均、偏差平方和、分散、標準偏差
1から10までの10個の数値における、平均、偏差平方和、分散、標準偏差を求める。それぞれ、組み込み関数をなるべく使わない方法と、組み込み関数を使う方法を示す。
計算対象の数値ベクトルをd、その数値の数をn、平均からの偏差平方和をdss、分散をs2、標準偏差をsとする。
> d <- 1:10
> d
[1] 1 2 3 4 5 6 7 8 9 10
> n <- length(d)
> n
[1] 10
平均を求めるときはmean関数を使う。
> sum(d) / n
[1] 5.5
> m <- mean(d)
> m
[1] 5.5
分散を求めるときはvar関数、標準偏差を求めるときはsd関数を使う。
> dss / (n - 1)
[1] 9.166667
> s2 <- var(d)
> s2
[1] 9.166667
> sqrt(dss / (n - 1))
[1] 3.02765
> s <- sd(d)
> s
[1] 3.02765
ただし、var関数で得られる値は上記のとおりに不偏分散(偏差平方和を「標本数-1」で割った値)、sd関数で得られる値は不偏分散の平方根であることに注意。
偏差平方和を標本数で割った分散と標準偏差を求めるための自作関数vari、stdをそれぞれ作って試してみる。
> dss / n
[1] 8.25
> vari <- function(d) sum((d - mean(d)) ^ 2 / length(d))
> vari(d)
[1] 8.25
> sqrt(dss / n)
[1] 2.872281
> std <- function(d) sqrt(sum((d - mean(d)) ^ 2 / length(d)))
> std(d)
[1] 2.872281
« [R]データフレームを行列に変換する | トップページ | [Python]行列の掛け算を行う(積を求める) »
「R(数値計算)」カテゴリの記事
- [R]複数のパラメーターと定数を持つ関数の値が最大・最小となるパラメーターを求める(2026.03.30)
- [R]重み付き線形最小二乗法を行う(2026.03.20)
- [R]重み付き非線形最小二乗法を行う(2026.03.06)
- [R]計算機イプシロンを求める(2025.10.29)
- [R]複数の引数を持つ関数の値の最小値(最大値)を求める(2024.12.07)

コメント