このページについて
タイトルの通りです。
統計を少しいじりたかったので、
R言語とRStudioを少し触ってみました。
RとRStudioのインストール
↓この記事を参考にさせて頂きました。
https://qiita.com/hujuu/items/ddd66ae8e6f3f989f2c0
Hello World!
1). RStudioを起動する
2). R Scriptを新規で作成する
3). 作成されたエディタに入力する
print('Hello World')
4). command + returnで実行できる
> print('Hello World')
[1] "Hello World"
変数への代入
R言語では"<-"の記号を利用して変数に値を代入する。
この変数に代入する値のことをオブジェクトと呼ぶ。
下の例では、100というオブジェクトをxという変数に代入、
5というオブジェクトをという変数に代入している。
x <- 100
y <- 5
x * y
# [1] 500
ベクトル
R言語の中で同じ種類のデータをまとめて取り扱うためのデータの型。
cという関数で取り扱う。
例1
x <- c(2,3,5,7,11)
sqrt(x)
# それぞれの平方根を計算する
# [1] 1.414214 1.732051 2.236068 2.645751 3.316625
mean(x)
# 平均値を取得する
# [1] 5.6
例2
# 国語の点数
kokugo <- c(50,60,70,80,90)
# 数学のの点数
suugaku <- c(10,20,30,40,50)
# 個々の平均点の取得
heikin <- (kokugo + suugaku) / 2
heikin
# 全体の平均点を取得
mean(heikin)
データの読み込み
CSVデータを読み込むことができる。
読み込まれたデータはデータフレーム(data.frame)という形式で読み込まれる。
ここでは例として以下のようなCSVファイルを読み込んでみる
id,kokugo,suugaku,rika,syakai,english,total
1,97,66,65,9,23,260
2,31,73,33,7,10,154
3,72,47,28,27,97,271
4,48,60,54,70,12,244
5,54,69,30,77,2,232
6,96,52,25,92,58,323
7,28,67,4,74,46,219
8,9,24,85,51,66,235
9,11,60,57,63,66,257
10,14,23,78,33,71,219
11,10,71,56,26,63,226
12,29,31,12,5,96,173
13,36,32,57,24,11,160
14,17,86,58,67,38,266
15,44,90,54,61,49,298
16,70,34,99,11,7,221
17,39,52,59,70,78,298
18,62,62,39,43,50,256
19,2,49,72,40,50,213
20,24,27,6,77,88,222
2). 読み込みの設定
ここで、
データの名前や行/列の見出し設定などができる。
Headingの設定をYesにすると最初の行が見出しとして認識される。
Row namesをUse first columnに設定すると最初の列が見出しとして認識される。
読み込んだデータを使用してみる
読み込みデータの概要をみる
summary(test) #ここでtestとは読み込んだdata名のこと
kokugo suugaku rika
Min. : 2.00 Min. :23.00 Min. : 4.00
1st Qu.:16.25 1st Qu.:33.50 1st Qu.:29.50
Median :33.50 Median :56.00 Median :55.00
Mean :39.65 Mean :53.75 Mean :48.55
3rd Qu.:56.00 3rd Qu.:67.50 3rd Qu.:60.50
Max. :97.00 Max. :90.00 Max. :99.00
syakai english total
Min. : 5.00 Min. : 2.00 Min. :154.0
1st Qu.:25.50 1st Qu.:20.25 1st Qu.:219.0
Median :47.00 Median :50.00 Median :233.5
Mean :46.35 Mean :49.05 Mean :237.3
3rd Qu.:70.00 3rd Qu.:67.25 3rd Qu.:261.5
Max. :92.00 Max. :97.00 Max. :323.0
読み込んだデータの最小値 / 第1四分位 / 中央値 / 第3四分位 / 最大値 とか出してくれる。
すげぇ、面白い。
個々に出力することも可能
summary(test$kokugo)
Min. 1st Qu. Median Mean 3rd Qu. Max.
2.00 16.25 33.50 39.65 56.00 97.00
色々なグラフを作成してみる
ヒストグラム
hist(test$kokugo)
プロット
plot(test)
各変数間のプロットを一覧で表示可能。
もちろん個々に出すことも可能
plot(test$rika, test$syakai)
相関係数の出力
相関係数も簡単に出力できます。
cor(test)
kokugo suugaku rika syakai
kokugo 1.00000000 0.1185810 -0.12174162 -0.03417909
suugaku 0.11858102 1.0000000 -0.14901840 0.22006013
rika -0.12174162 -0.1490184 1.00000000 -0.29257771
syakai -0.03417909 0.2200601 -0.29257771 1.00000000
english -0.25161833 -0.3534143 -0.28899252 0.08971483
total 0.42703578 0.3397150 0.06350883 0.58819087
english total
kokugo -0.25161833 0.42703578
suugaku -0.35341429 0.33971503
rika -0.28899252 0.06350883
syakai 0.08971483 0.58819087
english 1.00000000 0.24823716
total 0.24823716 1.00000000
いや〜、便利ですね。
ただ改行が微妙な感じですが。
どっかで設定できるのかはわかりません...
回帰分析
単回帰分析
lm(total~kokugo, test)
Call:
lm(formula = total ~ kokugo, data = test)
Coefficients:
(Intercept) kokugo
210.8110 0.6693
この結果をそのまま飲み込むと、
total = 210.8110 + 0.6693 * kokugo となります。
ちなみに、今回のデータは適当な数字なので、相関はないと思います。
詳細の出力は以下のようにすることで出力可能です。
result <- lm(total~kokugo, test)
summary(result)
Call:
lm(formula = total ~ kokugo, data = test)
Residuals:
Min 1Q Median 3Q Max
-77.560 -15.150 0.956 23.330 61.085
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 210.8110 16.1041 13.091 1.23e-10 ***
kokugo 0.6693 0.3341 2.004 0.0604 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 40.96 on 18 degrees of freedom
Multiple R-squared: 0.1824, Adjusted R-squared: 0.1369
F-statistic: 4.015 on 1 and 18 DF, p-value: 0.0604
重回帰分析
重回帰分析も単回帰分析と同じようにできるみたいです。
result <- lm(total~kokugo+suugaku, test)
summary(result)
Call:
lm(formula = total ~ kokugo + suugaku, data = test)
Residuals:
Min 1Q Median 3Q Max
-90.372 -20.935 0.732 24.741 62.171
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 178.5155 27.8683 6.406 6.52e-06 ***
kokugo 0.6148 0.3278 1.876 0.0779 .
suugaku 0.6410 0.4572 1.402 0.1789
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 39.91 on 17 degrees of freedom
Multiple R-squared: 0.2671, Adjusted R-squared: 0.1809
F-statistic: 3.098 on 2 and 17 DF, p-value: 0.07125
感想
これは本当に便利ですね。
色々できるのでデータ見ているだけで面白いです。
私は統計自体素人に毛が生えた程度なので、
改めて統計を勉強していきたいと思います。
勉強に使わせて頂いたサイト