Chapter1

R Markdown

この講義で使用する教科書は、東大出版会の統計学入門です。万人にオススメできる標準的な教科書になってます。 統計では理論もデータ解析能力もどちらも重要です。 講義中では、R言語によるコードも紹介しようと思います。 このスライドは、RStudioというR言語の統合開発環境を利用して作る予定です。 RStudioではPythonも使えます。英語に限定すれば、LaTeXも利用できます。 一度は触れてみることをおすすめします。 RStudioもR言語も、どちらも個人で利用する限りは無料です。

例えば、同じ作業ディレクトリにある.csvファイルにはこのようにアクセスできます。 参考: Rで学ぶ確率統計学 一変量統計編のwebページ

library(readxl) # R特有。便利なライブラリを読み込む。ここでは.xlsxの読み込み関数を含むパッケージをインストール
## Warning: package 'readxl' was built under R version 3.5.2
sampledata <- read_excel("sampledata.xlsx") # データ読み込み
math = sampledata$math  # データ読み込み
head(math, 3) # データ最初の3行表示
## [1] 90 65 60
summary(math) # データの代表的な統計量を表示
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   10.00   45.00   65.00   61.61   80.00  100.00
length(math) # データ長
## [1] 146
math # データ表示
##   [1]  90  65  60  75  50  60  25  35  85 100  45  95  80  80  95  55  55  65
##  [19]  50  65  40  85  70  65  65  15  65  75  60  75  25  65  55  40  70  60
##  [37]  60  35  75  45  60  55  75  75  90  35  20  90 100  65  15  80  80  85
##  [55]  25  10  95  45  55  80  80  40  90  95  90  70  80  25  65  30  60  25
##  [73]  35  20  70 100  50  60  50  90  65  45  35  50  85  30  50  70  85  85
##  [91]  75  80  40  60  70  80  95  50  40  25  60  35  30  45  35  70  75  55
## [109]  40 100  50  55  90  95  60  70  80  70  45  55  75  45  65  30  25  85
## [127]  90  90  60  85  20  75  70  75  50  90  60  15  90  75  70  35  95  60
## [145]  45  55
math[14] # 14番目のデータ
## [1] 80

データの可視化

データの羅列を見ても、その特徴はほとんど何もわからない(気がする)。 → データを見よう。 まず見るべきは、可能であればヒストグラム。

hist(math) # 度数

hist(math, prob=TRUE) # 相対度数

また、Rは統計解析に加えて、グラフィクスにも定評がある。 特に、ggplotを利用した図表は可視性が高いという評判。

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.5.2
qplot(math, geom="bar", xlab="score", ylab="count number")

データの要約

データを見た後には、データの特徴を捉える指標を計算しましょう。平均値\(\bar{x}\)は、

\(\bar{x} = \frac{1}{N}\sum_{i=1}^N x_i\)

により与えられます(\(N\)はデータ長)。Rでは平均の計算など簡単です。

xbar = mean(math) # 平均値
xbar
## [1] 61.60959
# 平均値の計算の仕方その2
xbar = sum(math)/length(math)
xbar
## [1] 61.60959
## 愚直に平均を計算する ##
xbar = 0
N = length(math)
for(i in 1:N){
  xbar = xbar + math[i]
}
xbar = xbar/N
xbar
## [1] 61.60959

データの要約

平均値のみでは、例えば全員が61.60959点のときと、前のスライドで解析したような場合の区別がつきません。 全員が50点のテストか、0点から100点の人がいて平均が50点のテストとでは違うものでしょう。 そこで、データのばらつきも特徴の一つになりえそうです。 データのばらつきを表現する際には、分散\(\mathrm{Var}(x)\)、または標準偏差\(\mathrm{SD}(x)\)を利用することが多いです。これらは、

\(\mathrm{Var}(x) = \frac{1}{N}\sum_{i=1}^N(x_i - \bar{x})^2\)

\(\mathrm{SD}(x) = \sqrt{\mathrm{Var}(x)}\)

により与えられます。平均と単位が揃う指標は、分散ではなく標準偏差であることに注目してください。つまり、平均と足し算引き算できるのは、標準偏差です。

Var =var(math) # 分散
Var
## [1] 506.5293
# 分散の計算の仕方その2
Var = sum((math-xbar)**2)/(length(math)-1)
Var
## [1] 506.5293