量的データのヒストグラム作成
今回の実習で利用するデータはbigclass.xlsというExcelファイルです。開くと以下のような内容が表示されるはずです。1行目が各変数の説明、2行目以降が生徒のデータになっています。
CSV形式で保存する
RはCSV形式のファイルを読むことができるので、このExcelファイルをCSV形式で保存しなおします。Excelのメニューから「ファイル(F)」−「名前をつけて保存(A)」を選びます。ダイアログ・ボックスが開くので、「ファイルの種類(T)」を「CSV(カンマ区切り)(*.csv)」を選んで「保存(S)」をクリックします。
これで、bigclass.csvという名前でデータがCSV形式で保存されます。
Rを起動する
Rが起動すると、次のような画面が表示されます。あとは、この画面に直接キーボードから命令を入力していきます。
bigclass.csvを読み込む
class <- read.csv("bigclass.csv")
と入力し、Enterキーを押すと、bigclass.csvの内容がclass という変数に代入されます。class の内容を表示するには
class
と入力します。以下のようにその内容が表示されます。
名前年齢 性別 身長 体重
1 KATIE 12 F 59 95
2 LOUISE 12 F 61 123
3 JANE 12 F 55 74
4 JACLYN 12 F 66 145
...
各変数の基本統計量の計算
変数classの基本統計量を計算するには
summary(class)
と入力します。
名前 年齢 性別 身長 体重
ROBERT : 2 Min. :12.00 F:18 Min. :51.00 Min. : 64.00
ALFRED : 1 1st Qu.:13.00 M:22 1st Qu.:60.75 1st Qu.: 91.75
ALICE : 1 Median :14.00 Median :63.00 Median :105.00
AMY : 1 Mean :13.98 Mean :62.55 Mean :105.00
BARBARA: 1 3rd Qu.:15.00 3rd Qu.:65.00 3rd Qu.:115.25
CAROL : 1 Max. :17.00 Max. :70.00 Max. :172.00
(Other):33
ここでは、量的変数である年齢、身長、体重だけに注目しましょう。Min.,Max. はそれぞれ最大値と最小値を、MedianとMeanは中央値と平均値を1st Qu.と3rd Qu.は第1四分位点と第3四分位点を表しています。
次に、身長の平均と標準偏差を求めてみましょう。
mean(class$身長)
と入力すると、以下の計算結果が表示されます。
> mean(class$身長)
[1] 62.55
これは、変数classの身長の列について平均(mean)を計算するという意味です。標準偏差についても同様に
sd(class$身長)
で計算できます。
> sd(class$身長)
[1] 4.242338
ヒストグラムの作成
身長のヒストグラムを作成してみましょう。histというコマンドを利用します。
hist(class$身長)
main,xlab,ylabにそれぞれグラフ上部、x軸、y軸のタイトルを指定できます。
hist(class$身長,main="身長のヒストグラム",xlab="身長",ylab="度数")
freqというオプションにFを指定すると(falseの意味)、y軸が相対度数になります。
hist(class$身長,freq=F,main="身長のヒストグラム",xlab="身長",ylab="相対度数")
箱ひげ図とヒストグラムを並べて表示する
par(mfcol=c(2,1))
と入力すると、グラフの領域が2行1列に分割されます。このコマンドを入力した時点では、何も画面には変化がありません。
身長の箱ひげ図を表示するには、boxplotというコマンドを利用します。
boxplot(class$身長,horizontal=T)
horizontal=T は水平方向に箱ひげ図を表示するという意味です。
次にヒストグラムを表示しましょう。
hist(class$身長,main="身長のヒストグラム",xlab="身長",ylab="度数")
分布の当てはめ
正規分布の当てはめ
身長のヒストグラムに、身長の平均と標準偏差と同じ正規分布の密度関数を重ねて表示してみます。まず、グラフの分割を取りやめます。
par(mfcol=c(1,1))
そして、身長のヒストグラムを表示します。
hist(class$身長,freq=F,main="身長のヒストグラム",xlab="身長",ylab="相対度数")
身長の平均と標準偏差を計算し、変数mとsに代入します。
m <- mean(class$身長)
s <- sd(class$身長)
次に正規分布の密度関数を重ねて表示します。
curve(dnorm(x,mean=m,sd=s),add=T)
dnorm(x,mean=m,sd=s) は平均m、標準偏差sの正規分布の密度関数を表します。それをcurveコマンドで表示するという意味です。
滑らかな曲線の当てはめ
以下の2行を入力すると、分布によく当てはまる滑らかな曲線ヒストグラム上に表示されます。2行目は難しいので説明は省略します。
hist(class$身長,freq=F,main="身長のヒストグラム",xlab="身長",ylab="相対度数")
lines(density(class$身長))