« [R]データフレームを行列に変換する | トップページ | [Python]行列の掛け算を行う(積を求める) »

2020年9月12日 (土)

[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]データフレームを行列に変換する | トップページ | [Python]行列の掛け算を行う(積を求める) »

無料ブログはココログ

■■

■■■