Rと統計 -その1 (平均、分散、標準偏差)-
本投稿は、統計に関連したRのコードをまとめたものになります。
(自分自身の備忘録の意味も込めて。。。)
なお、統計の詳しい概念や知識、Rの基本的なコードやその他のコードはあまり載せていませんので、他の投稿等でご覧いただけたらと思います。
今回は、平均、分散、標準偏差の3つをまとめていきます。
0. はじめに
使用する関数
今回使用する関数は以下の通りです。
・sum():総和を求める
・length():データの個数を求める
・mean():平均を求める
・var():分散を求める
・sd():標準偏差を求める
・sqrt():平方根をとる
使用するデータ
今回取り組むにあたって、以下のような架空の統計のテストの結果を使用します。
受験番号 | 点数(10点満点) |
---|---|
1 | 5 |
2 | 9 |
3 | 10 |
4 | 2 |
5 | 7 |
6 | 8 |
7 | 1 |
8 | 5 |
9 | 4 |
10 | 3 |
上記の統計テスト(statistics test)の結果をstat_test
というオブジェクトに格納します。
stat_test <- c(5,9,10,2,7,8,1,5,4,3)
stat_test
[1] 5 9 10 2 7 8 1 5 4 3
1. 平均
では、「0. はじめに」にある統計テストの結果の平均をRで求めてみましょう。
2通りのやり方を載せます。
方法① 関数sum()と関数length()を使う
まず初めは、平均 = 総和 / データの個数
という平均の基本的な概念をそのままコードにします。
総和は関数sum()
を、データの個数は関数length()
を使用します。
それぞれの関数の括弧内にオブジェクト名を記入して、実行すればOKです。
今回は、stat_test
オブジェクトの名前を記入します。
計算したものをaverage1
というオブジェクトに格納してみます。
average1 <- sum(stat_test) / length(stat_test)
average1
[1] 5.4
5.4
という結果が得られました。
方法② 関数mean()を使う
もう1つの方法として、関数mean()
を使うことができます。
関数mean()
を使って計算したものをaverage2
というオブジェクトに格納してみます。
average2 <- mean(stat_test)
average2
[1] 5.4
average1
とaverage2
どちらも同じ出力になりました。
2.分散
続いて、分散(variance)を見ていきます。
分散は、ばらつきを表す指標です。
求め方としては、(各データの値 - 平均)
を2乗し、それらを全て足したものを、(データの個数 - 1)
で割ります。
データの個数
で割ったものは分散、(データの個数 - 1)
で割ったものは不偏分散といいます(統計学においては不偏分散が使われることが多く,不偏分散を単に分散と呼ぶことが多いようです)。
variance1 <- sum((stat_test - average1)^2) / (length(stat_test) - 1)
variance1
[1] 9.155556
Rでは、関数var()
を使えば簡単に計算することができます。
計算結果をvariance
というオブジェクトに格納します。
variance2 <- var(stat_test)
variance2
[1] 9.155556
3.標準偏差
最後に標準偏差(standard deviation; SD)を見ていきます。
標準偏差も分散同様、ばらつきを表す指標です。
分散は、「2乗したもの」の総和でした。
標準偏差は分散の平方根をとったものになります。
Rでは、関数sd()
を使用します。
この関数を使って計算したものをsd1
というオブジェクトに格納します。
sd1 <- sd(stat_test)
sd1
[1] 3.025815
別の方法としては、平方根をとる関数sqrt()
を使うことができます。
関数sqrt()
に分散の値を入れたら、OKです。
この関数を使って計算したものをsd2
というオブジェクトに格納します。
sd2 <- sqrt(variance2)
sd2
[1] 3.025815
同じ結果になりました。
参考
次のURLや書籍を参考にさせていただきました。
ありがとうございます。
より学びが深まると思いますので、良かったらご覧ください。