それでは,ここでは回帰分析について説明します.
応答変数(非説明変数):量的変数
説明変数:量的変数
実際に,どのように分析していくのかをまとめます.
授業の際にお話したとおり,仮説検証は以下の流れで行っていきます.
帰無仮説の設定
検定統計量の値を求める
帰無仮説のもとでの,結果を出力する
帰無仮説が棄却されるかどうかを判断する.
ここからは,上記の流れに沿って説明をしていきます.
帰無仮説:自分が言いたくないことを設定する.
対立仮説:自分が言いたいことを設定する.
++ 仮説の立案は用いる統計手法(もっというと,分析するデータ)によってテクニカルに決められる.
回帰分析の場合は,以下のように仮説を設定してあげることが必要です.
++ ex.身長と体重の間に相関関係がない.
++ ex.身長と体重の間に相関関係がある.
これ以外の質問項目については,一番下に掲載します.
q2_1 本文中に,“_ _ _ _ _ n “(7文字の単語で6番目がnのもの)という単語はいくつあるだろうか? q2_2 本文中に,” _ _ _ i n g”(7文字の単語で末尾がingであるもの)という単語はいくつあるだろうか?
この2つの数字の間に相関があるかどうかを検討する
帰無仮説H0:q2_1とq2_2の間に相関がない
対立仮説H1:q2_1とq2_2の間に相関がある
回帰分析の場合は複数の検定統計量を多角的に評価する.
決定係数R2:0-1の値をとり,1に近ければ近いほど回帰直線に一致している.
自由度調整済み決定係数R2:R2は説明変数が多くなるほど,当てはまりが良くなる.そのためにこちらを用いることがある.
t値:説明変数の係数の確からしさの度合いを判断する際に用いる.t≧|2|が基準だが,p値に変換することが多い
F値: F値>0.05⇒仮説は正しい⇒回帰モデルは有効ではない F値<0.05⇒仮説は間違い⇒回帰モデルは有効
最初にデータを読み込みます.
ついでに,記述統計量も算出しておきます.
data_heuristicq2 <- read.table("https://dl.dropboxusercontent.com/u/10749822/R_edu_public/data/data_heuristicq2.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
summary(data_heuristicq2)
## f1. q1 q2_1 q2_2 q3 q4 q5_1
## men : 9 a:15 Min. : 7.0 Min. : 3.0 a:22 a: 2 a: 3
## women:16 b: 5 1st Qu.: 15.0 1st Qu.: 20.0 b: 1 b:14 b: 1
## c: 5 Median : 30.0 Median : 30.0 c: 2 c: 9 c:21
## Mean : 102.5 Mean : 117.2
## 3rd Qu.: 70.0 3rd Qu.: 100.0
## Max. :1200.0 Max. :1200.0
## q5_2 q6_1 q6_2 q7_1 q7_2 q8
## b: 3 Min. : 1000 Min. : 100 a:22 a: 8 a: 1
## c:22 1st Qu.: 5000 1st Qu.: 2000 b: 3 b:17 b:15
## Median : 10000 Median : 7000 c: 9
## Mean : 22000 Mean : 21484
## 3rd Qu.: 40000 3rd Qu.: 40000
## Max. :100000 Max. :100000
## q9_1 q9_2 bango
## Min. : 1.00 Min. : 0.00 Gusu:11
## 1st Qu.:10.00 1st Qu.:20.00 Kisu:14
## Median :20.00 Median :30.00
## Mean :25.08 Mean :29.56
## 3rd Qu.:30.00 3rd Qu.:30.00
## Max. :70.00 Max. :95.00
散布図を使って,大体のデータの傾向を確認しておきましょう.場合に応じて,外れ値を取ることもあります.
「グラフ」→「散布図」
「データ」タブ x変数:q2_1 y変数:q2_2
「オプション」タブ 点を特定:自動的に特定
library(car)
scatterplot(q2_2~q2_1, reg.line=FALSE, smooth=FALSE, spread=FALSE,
id.method='mahal', id.n = 2, boxplots=FALSE, span=0.5, ellipse=FALSE,
levels=c(.5, .9), data=data_heuristicq2)
## 8 24
## 8 24
これを見ると,“8”の数字が明らかに大きく外れているので,削除してから再度散布図を作ってみる.
library(car)
data_heuristicq2_2 <- read.table("https://dl.dropboxusercontent.com/u/10749822/R_edu_public/data/data_heuristicq2_2.csv", header=TRUE, sep=",", na.strings="NA", dec=".", strip.white=TRUE)
summary(data_heuristicq2_2)
## f1. q1 q2_1 q2_2 q3 q4 q5_1
## men : 9 a:15 Min. : 7.00 Min. : 3.00 a:22 a: 2 a: 3
## women:16 b: 5 1st Qu.: 14.75 1st Qu.: 19.25 b: 1 b:14 b: 1
## c: 5 Median : 30.00 Median : 27.50 c: 2 c: 9 c:21
## Mean : 56.75 Mean : 72.04
## 3rd Qu.: 55.00 3rd Qu.: 70.00
## Max. :200.00 Max. :500.00
## NA's :1 NA's :1
## q5_2 q6_1 q6_2 q7_1 q7_2 q8
## b: 3 Min. : 1000 Min. : 100 a:22 a: 8 a: 1
## c:22 1st Qu.: 5000 1st Qu.: 2000 b: 3 b:17 b:15
## Median : 10000 Median : 7000 c: 9
## Mean : 22000 Mean : 21484
## 3rd Qu.: 40000 3rd Qu.: 40000
## Max. :100000 Max. :100000
##
## q9_1 q9_2 bango
## Min. : 1.00 Min. : 0.00 Gusu:11
## 1st Qu.:10.00 1st Qu.:20.00 Kisu:14
## Median :20.00 Median :30.00
## Mean :25.08 Mean :29.56
## 3rd Qu.:30.00 3rd Qu.:30.00
## Max. :70.00 Max. :95.00
##
scatterplot(q2_2~q2_1, reg.line=FALSE, smooth=FALSE, spread=FALSE,
id.method='mahal', id.n = 2, boxplots=FALSE, span=0.5, ellipse=FALSE,
levels=c(.5, .9), data=data_heuristicq2_2)
## 4 24
## 4 23
まあ,これくらいならよいでしょう!ということへ次へ.
Rコマンダーで「統計量」→「モデルへの適合」→「線形回帰」とクリックする.
目的変数:q2_2 説明変数:q2_1
以上を選んだらOKをクリックする.
以下には,Rコマンダーを使って以上のように選んだ時のコードを貼り付けて,その結果を出力する.
RegModel.1 <- lm(q2_2~q2_1, data=data_heuristicq2_2)
summary(RegModel.1)
##
## Call:
## lm(formula = q2_2 ~ q2_1, data = data_heuristicq2_2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -154.830 -23.039 -2.354 3.172 245.170
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.3717 19.4187 -0.019 0.985
## q2_1 1.2760 0.2291 5.569 1.34e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 70.66 on 22 degrees of freedom
## (1 observation deleted due to missingness)
## Multiple R-squared: 0.585, Adjusted R-squared: 0.5662
## F-statistic: 31.01 on 1 and 22 DF, p-value: 1.344e-05
Intercept(切片):q2_1が0だった時に,q2_2の値はいくつになるかを示す.
q2_1:q2_1の値が1増えると,q2_2の値がどれだけ増えるかを示している.
Coefficients: Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.3717 19.4187 -0.019 0.985
q2_1 1.2760 0.2291 5.569 1.34e-05 ***
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ’*‘0.05’.‘0.1’ ’ 1
この結果では,切片のp値が5%の有意水準以下になっているが,切片については気にしなくてよい.
** Multiple R-squared: 0.585, Adjusted R-squared: 0.5662 **
F-statistic: 31.01 on 1 and 22 DF, p-value: 1.344e-05
「KMggplot2」→「散布図」
X軸の変数:q2_1,Y軸の変数:q2_2
スムージングの種類:回帰分析(信頼区間あり)
・・・信頼区間ありにすると,データの散らばりの程度を簡単に確認できる.
require("ggplot2")
## Loading required package: ggplot2
.df <- data.frame(x = data_heuristicq2_2$q2_1, y = data_heuristicq2_2$q2_2)
.plot <- ggplot(data = .df, aes(x = x, y = y)) + geom_point() +
stat_smooth(method = "lm") + scale_y_continuous(expand = c(0.01, 0)) +
xlab("q2_1") + ylab("q2_2") + theme_bw(base_size = 14, base_family =
"serif")
print(.plot)
## Warning: Removed 1 rows containing non-finite values (stat_smooth).
## Warning: Removed 1 rows containing missing values (geom_point).
rm(.df, .plot)
回帰分析の結果,F値,決定係数などを組み込んで,結果を記述します.
なお,p値は指数で表記されているので,気をつけてください.指数が出てくるときは相当に桁数が大きい時です.
もし,指数がわかりにくければ,Excelなどで変換してから表示するとわかりやすいと思います.
F(1, 22)=31.01(p<0.001)であることにより,5%有意水準の元で帰無仮説を棄却することができる.したがって,対立仮説が採択される.この回帰モデルではq2_1での回答文字数が1字多くなると,q_2がの回答文字数が1.276字多くなることを示している(t = 5.569, p<0.001).また,調整済み決定係数R^2が0.5662であった.
回帰分析については,以上です.
a:男性→men
b:女性→women
以下,注意書きが無い限りはアルファベットで表記する.数字で回答を求められているものについては,数字で入力.
a:消化器疾患
b:交通事故
c:自殺
d:他殺
q2_1 本文中に,“_ _ _ _ _ n _“(7文字の単語で6番目がnのもの)という単語はいくつあるだろうか?
q2_2 本文中に,“_ _ _ _ i n g”(7文字の単語で末尾がingであるもの)という単語はいくつあるだろうか?
a:リンダはフェミニズム運動に参加している
b:リンダは銀行の窓口係である
c:リンダはフェミニズム運動に参加している銀行員である
a:大きな病院
b:小さな病院
c:同じくらい
a:裏-表-裏-表-表-裏
b:表-表-表-裏-裏-裏
c:どちらも同じ
a:表
b:裏
c:どちらも同じ
a:0
b:100
c:500
d:1000
e:2000
f:5000
g:7000
h:10000
i:20000
j:30000
k:40000
l:50000
m:60000
n:70000
o:80000
p:90000
q:100000
a:0
b:100
c:500
d:1000
e:2000
f:5000
g:7000
h:10000
i:20000
j:30000
k:40000
l:50000
m:60000
n:70000
o:80000
p:90000
q:100000
q7_1:彼女の年収は650万円以上だろうか?それとも650万円未満だろうか?
a:650万円以上
b:650万円以下
q7_2:彼女の年収は1350万円以上だろうか?それとも1350万円未満だろうか?
a:1350万円以上
b:1350万円以下
a:大きな病院
b:小さな病院
c:同じくらい
q9_1:ソフトバンクは2015年度に90勝してクライマックスシリーズに1位で進みました.さて,世界の国連加盟国195か国の内アフリカが占める割合は どの程度でしょうか?
q9_2:ソフトバンクは2016年5月1日現在,読売ソフトバンクは15勝しています.さて,世界の国連加盟国195か国の内アフリカの国はどの程度あるでしょうか?
Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.