70
一般化線形モデル 回帰分析 平成29年度 短期集合研修:数理統計(基礎編),2017年11月7日 農研機構 農業環境変動研究センター 環境情報基 盤研究領域 統計モデル解析ユニット,山村光司 1

回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

一般化線形モデル

回帰分析

平成29年度 短期集合研修:数理統計(基礎編),2017年11月7日

農研機構 農業環境変動研究センター 環境情報基盤研究領域 統計モデル解析ユニット,山村光司

1

Page 2: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

一般化線形モデル 統計学で用いる推論の多く = 「条件付きの推論」 説明したい変数(𝒚𝒚) と,その説明に用いる変数(𝒙𝒙) たとえば,𝒚𝒚をイネの収量,𝒙𝒙を気温と考える。 (従属変数) (説明変数)

2

統計学で用いる「モデル」とは

𝒙𝒙を与えたときに𝒚𝒚はどのような値になるか? その予測モデル

を𝒇𝒇 で表すと 𝒚𝒚 = 𝒇𝒇 𝒙𝒙

因果関係は問わない。𝒚𝒚を気温,𝒙𝒙をイネの収量としてもよい。

• 「雨の音(𝒙𝒙)がした翌日には種の発芽(𝒚𝒚)が起こる」など。

• ただし,𝒙𝒙以外の要因をうまく「層別化」して除去し,タイムラ

グを考慮していれば,因果関係を表している可能性は高い。

• 「制御できる変数」は常に𝒙𝒙になり,これは因果関係を表す。

Page 3: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

一般化線形モデル 変数𝒙𝒙,𝒚𝒚には三つのタイプ。

量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある)

順序変数(大,中,小など)

名義変数(処理1,処理2,生存,死亡 など)

3

変数 𝒙𝒙,𝒚𝒚 のタイプと「モデル」のタイプの関係

説明変数(𝒙𝒙)

従属変数(𝒚𝒚)

主な「統計モデル」

量的変数 量的変数 回帰分析 (regression) 名義変数 量的変数 分散分析 (analysis of variance) 量的変数 名義変数 ロジスティック回帰,プロビット回帰 名義変数 名義変数 ロジスティック回帰,対数線形モデル

これらは一般線形モデル(linear model)と呼ばれる

Page 4: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

一般化線形モデル 「モデル」に含まれる係数(定数)をパラメーターとよぶ。

パラメーターは普通は未知なので,それを推定しなければな

らない。

4

2-1. パラメーターの推定

さまざまな推定法がある。 現在ではベイズ推定法と最尤推定法のいずれかが用いら

れることが多い。ベイズ推定法はBayes(1763)に由来する。

Fisher(1922)は,ベイズ推定法の致命的な問題点を指摘し,

それに代わるのものとして最尤推定法を提案した。

この回帰分析の講義では最尤推定法を用いる。

𝑦𝑦 = 𝑓𝑓 𝑥𝑥

Page 5: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

パラメーター推定の原理

2-2. 最尤推定法とは

最尤推定法とは: 手元の観測データが得られる確率が最大になるようにパラ

メーターを決定する方法。 この確率𝑳𝑳を「尤度」とよぶ。

例:正規分布に従う場合(平均μ,分散σ2) この正規分布から 観測値𝒚𝒚を得たとき, それが起こる確率(尤度)は

𝐿𝐿 =1

2𝜋𝜋𝜎𝜎2exp −

𝑦𝑦 − 𝜇𝜇 2

2𝜎𝜎2

5

いま平均値μの推定を考える(分散σ2は既知)。

Page 6: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

最尤推定の簡単な例

パラメーターμの推定 二つの観測値,3,5を得たとき,尤度は

最大点では傾きがゼロ → 最大とするμは𝐥𝐥𝐥𝐥𝐥𝐥 𝑳𝑳 をμで微分して0とおくことによって求められる。

𝐿𝐿 =1

2𝜋𝜋𝜎𝜎2exp −

3 − 𝜇𝜇 2

2𝜎𝜎21

2𝜋𝜋𝜎𝜎2exp −

5 − 𝜇𝜇 2

2𝜎𝜎2

尤度の対数を考えると

log(𝐿𝐿) = −3 − 𝜇𝜇 2 + 5 − 𝜇𝜇 2

2𝜎𝜎2− log 2𝜋𝜋𝜎𝜎2

𝐿𝐿 =1

2𝜋𝜋𝜎𝜎2exp −

3 − 𝜇𝜇 2 + 5 − 𝜇𝜇 2

2𝜎𝜎2

6

尤度Lを最大化することは対数尤度𝐥𝐥𝐥𝐥𝐥𝐥(𝑳𝑳)を最大化することと同じ

2 3 4 5 6

−6−5

−4−3

m

log e

(L)

Page 7: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

最尤推定の簡単な例

パラメーターμの推定 二つの観測値,3,5を得たとき,尤度は

これを解くと最尤推定値は𝜇𝜇=4 つまり,平均値と等しい。

実際にはこうした計算は統計ソフトが行ってくれる。

7

対数尤度 log(𝐿𝐿) = −

3 − 𝜇𝜇 2 + 5 − 𝜇𝜇 2

2𝜎𝜎2− log 2𝜋𝜋𝜎𝜎2

2 3 − 𝜇𝜇 + 2 5 − 𝜇𝜇2𝜎𝜎2

= 0 𝝁𝝁で微分してゼロとおくと

Page 8: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

3-1. 回帰分析とは

説明したい変数(従属変数)を𝒚𝒚とし,説明に用いる変数(説明変数)を𝒙𝒙とするとき,次のような形で表されるモデルに基づく分析が通常は回帰分析と呼ばれている。

8

𝑦𝑦 = 𝑓𝑓 𝑥𝑥 + 𝑒𝑒 ここに𝒇𝒇は何らかの関数であり,𝒆𝒆は誤差である。

関数𝑓𝑓として,パラメーターに関する線形の式を用いた場合には「線形回帰」と呼ばれ,パラメーターに関する非線形の式を用いた場合には「非線形回帰」と呼ばれる。

線形式の例:𝑓𝑓 𝑥𝑥 = 𝑎𝑎 + 𝑏𝑏𝑥𝑥 𝑓𝑓 𝑥𝑥 = 𝑎𝑎 + 𝑏𝑏𝑥𝑥 + 𝑐𝑐𝑥𝑥2

非線形式の例:𝑓𝑓 𝑥𝑥 = 𝑒𝑒−𝑎𝑎𝑎𝑎

線形回帰と直線回帰は異なる。

パラメーターで2回微分すれば非線形を判別できる 2階微分値は𝑓𝑓𝑓 𝑥𝑥 = 𝑥𝑥2𝑒𝑒−𝑎𝑎𝑎𝑎

Page 9: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

3-1. 回帰分析とは

誤差𝒆𝒆に関する制限 誤差に平均ゼロの等分散正規分布を仮定した場合:「回帰分析」

誤差にポアソン分布を仮定した場合:「ポアソン回帰分析」

誤差に二項分布を仮定した場合:「二項回帰分析」

これらは,来週の応用編の「一般化線型モデル」の講義で扱う。

9

Page 10: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

3-2. 単回帰分析

単一の説明変数𝒙𝒙の一次式を用いる分析。

10

𝑦𝑦𝑖𝑖 = 𝑎𝑎 + 𝑏𝑏𝑥𝑥𝑖𝑖 + 𝑒𝑒𝑖𝑖 𝑖𝑖 = 1,2, … ,𝑛𝑛 , 𝑒𝑒𝑖𝑖 ~ 𝑁𝑁(0,𝜎𝜎2)

二つのパラメーターを使用。 𝒂𝒂 :切片 𝒃𝒃 :傾き(𝒙𝒙の係数とも言える)

ここに𝑵𝑵(𝟎𝟎,𝝈𝝈𝟐𝟐)は平均ゼロ,分散𝝈𝝈𝟐𝟐の正規分布を意味し, 「~」は「分布にしたがって変動している」という意味。

図3-1. 単回帰分析の仮定

誤差

x

y

実際の観測値

Page 11: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

3-2. 単回帰分析

単一の説明変数𝒙𝒙の一次式を用いる分析。

11

𝑦𝑦𝑖𝑖 = 𝑎𝑎 + 𝑏𝑏𝑥𝑥𝑖𝑖 + 𝑒𝑒𝑖𝑖 𝑖𝑖 = 1,2, … ,𝑛𝑛 , 𝑒𝑒𝑖𝑖 ~ 𝑁𝑁(0,𝜎𝜎2) 𝒂𝒂,𝒃𝒃の最尤推定値は,先ほどと同じように対数尤度の式をパラメーターで微分してゼロと置くことにより得ることができる。推定値にはハット「^」を付けて区別すれば推定値は次式となる。

𝑏𝑏� =∑ 𝑦𝑦𝑖𝑖 − 𝑦𝑦� 𝑥𝑥𝑖𝑖 − �̅�𝑥𝑛𝑛𝑖𝑖=1∑ 𝑥𝑥𝑖𝑖 − �̅�𝑥 2𝑛𝑛𝑖𝑖=1

𝑎𝑎� = 𝑦𝑦� − 𝑏𝑏��̅�𝑥 ただし,ここに𝒙𝒙,� 𝒚𝒚�は平均値である。

𝒙𝒙と𝒚𝒚の平均値周りの積和𝑺𝑺𝒙𝒙𝒚𝒚

𝒙𝒙の平均値周りの平方和𝑺𝑺𝒙𝒙𝒙𝒙

つまり 𝑏𝑏� = 𝑆𝑆𝑎𝑎𝑥𝑥 𝑆𝑆𝑎𝑎𝑎𝑎⁄

Page 12: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

3-3. 計算例:ハスモンヨトウのトラップ捕獲数データ

表3-1はハスモンヨトウの誘殺数データの一部である。このデータには二つの要因(トラップと月)が含まれている。それらの要因がハスモンヨトウの誘殺数にどのような影響を与えているかを調べたいとする。

ここでは,まず誘殺数の対数変換値log𝑒𝑒 𝑥𝑥 + 0.5 に関して,月の影響を単回帰によって推定する。計算にはRを用いる。

12

表3-1. ハスモンヨトウのフェロモントラップ誘殺実験結果

トラップ番号 各月の誘殺数

5月 6月 7月 8月 1 8 16 55 341 2 16 48 112 874

Page 13: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

データオブジェクトの作成

まずはデータオブジェクトの作成である。データが少量であるならば,データを別ファイルとして保存しておくのではなく,解析プログラムの一部として保存しておくとよい。

13

cat(file="MothData.txt", "trap month y 1 5 8 1 6 16 1 7 55 1 8 341 2 5 16 2 6 48 2 7 112 2 8 874 ") MothData <- read.table("MothData.txt", header=TRUE)

MothData.txtというファイルをカレントディレクトリーに作成する。

それを読み込んで,MothDataという名前のデータオブジェクトを作成する。

Page 14: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

MothData.lmlog <- lm(log(y+0.5)~month, data= MothData)

まず最初に確認したいこと 単回帰分析

関数lmで回帰分析を計算

Rでは回帰分析はlm関数を用いて実行する。lmはlinear model の略である。その実行結果をMothData.lmlogという名前のlmオブジェクトに格納する。(名前は何でもよい。)lm関数の中では最初に「モデル」を指定する。

14

~の左側に従属変数を指定。右側に説明変数を指定。data=でデータオブジェクトを指定。

その実行結果をsummary関数で表示させる。

summary(MothData.lmlog)

Page 15: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

回帰分析の実行結果

15

Call: lm(formula = log(y + 0.5) ~ month, data = MothData) Residuals: Min 1Q Median 3Q Max -0.7316 -0.2982 -0.0642 0.4294 0.7734 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -4.0178 1.2381 -3.245 0.017572 * month 1.2523 0.1877 6.671 0.000549 *** --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 0.5936 on 6 degrees of freedom Multiple R-squared: 0.8812, Adjusted R-squared: 0.8614 F-statistic: 44.5 on 1 and 6 DF, p-value: 0.0005492

残差の分布情報

係数の推定値 log 𝑦𝑦 + 0.5 = 𝑎𝑎 + 𝑏𝑏 × month

Page 16: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

データ量が多い場合など

大きなサイズのデータを解析する場面では,データをプログラムの中に書き込むことができない。そうした場合には,データファイルをエクセルで作成することが多いであろう。そのような場合には,エクセルファイルを「カンマ区切りファイル(csv)」として「名前をつけて保存」し,read.csv関数で読み込むと便利である。たとえば上のデータを「MothData.csv」という名前でcsv形式でRのカレントディレクトリーに保存した場合には

カレントディレクトリー以外の場所に保存した場合には,file.choose関数を使って,エクスプローラーからファイルを選択する方が便利であろう。

16

MothData <- read.csv("MothData.csv", header=TRUE)

MothData <- read.csv(file.choose(), header=TRUE)

Page 17: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

3-4. 練習問題

17

表3-2. ハスモンヨトウのフェロモントラップ誘殺実験結果

トラップ番号 各月の誘殺数

5月 6月 7月 8月 1 10 26 45 356 2 8 16 55 341 3 16 48 112 874

表3-2のデータは表3-1のデータのトラップ数を一つ増やしたデータである。このデータをエクセルに入力して,それをcsvファイルとして保存し,そのcsvファイルをfile.choose()関数を用いて読み込み,単回帰分析を行ってみよ。

Page 18: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

4.検定と信頼区間 4-1.不確実性の表現法 先ほどのハスモンヨトウの解析では「月」の係数を推定してきた。ただし,推定値には不確実性が必ず伴う。その不確実性を適切な形で報告する必要がある。不確実性を表すための手法としては「検定」と「信頼区間」がある。さきほどの出力を再び見ると…

18

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -4.0178 1.2381 -3.245 0.017572 * month 1.2523 0.1877 6.671 0.000549 *** ---

標準誤差(SE):これは推定値の標準偏差(SD)の推定値

「P値」あるいは「有意確率」:係数がゼロのときに,このような観測値あるいはそれよりも極端な観測値が得られる確率。 一般にP値が0.05より小さければ「有意に異なる」という。この操作を「有意性検定」とよぶ。そして有意でない要因はモデルから外す。

Page 19: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

4.検定と信頼区間 4-1.不確実性の表現法 次に「95%信頼区間」と呼ばれる区間を計算してみよう。Rではconfintという関数をlmオブジェクトに適用すれば計算してくれる。confint(MothData.lmlog)を実行すると

19

2.5 % 97.5 % (Intercept) -7.0473271 -0.9883372 month 0.7929258 1.7115875

monthの係数の95%信頼区間は0.7929258 ~ 1.7115875である。

分析結果を報告する際には「推定値とP値」あるいは「推定値と95%信頼区間」 あるいは「推定値と標準誤差(SE)」を表記することが多い。推定値とSEが計算されていれば, 95%信頼区間は大まかには「推定値± 1.96×SE」で求めることができる。さらに「自由度」という値を記載しておけば,正確に信頼区間を計算することもできる。そのため, P値や95%信頼区間を表記する代わりに標準誤差(SE)を表記することも認められている。

Page 20: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

4-2. 練習問題

20

表3-2. ハスモンヨトウのフェロモントラップ誘殺実験結果

トラップ番号 各月の誘殺数

5月 6月 7月 8月 1 10 26 45 356 2 8 16 55 341 3 16 48 112 874

表3-2のデータからパラメーターの信頼区間を計算せよ。

Page 21: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

4-3. 信頼区間とは何か 先ほど計算した「95%信頼区間」の意味について見てみよう。検定には「Fisher流の検定」と「Neyman-Pearson流の検定」が存在し,前者は「有意性検定」後者は「仮説検定」と呼ばれている。現代では後者の検定が主流である。( 「対立仮説」がキーワードである。)95%信頼区間にもFisher流とNeyman-Pearson流が存在する。しかし,Neyman-Pearson流の検定や95%信頼区間は,末端のユーザーレベルではほとんどの人が誤解して使用している(Mayo and Spanos 2006)。「誤解しているから問題が生じない」と指摘する人もいる。

21

Neyman-Pearson流の95%信頼区間 「100回の実験を行ったときに平均して95回の実験で真の値を含む」ように構成された区間」。たとえば,95%信頼区間が1.4~1.8となったとき「真の値は95%の確率で1.4~1.8の範囲にある」と述べるのは大間違いである。この1.4~1.8という特定の範囲には意味がない。あくまでも,このような推定操作を100回行えば,そのうちの95回は真の値を含むというだけである。

Page 22: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

4-3. 信頼区間とは何か

22

Fisher流の95%信頼区間 「もし真の値がその区間の外に存在したならば,いま得られているようなデータかそれよりも極端なデータが生じる確率は5%以下」となるように構築された区間である。その意味で「真の値はたぶん『この』信頼区間の中にあるだろう」と考えることができる。Neyman-Pearson流の信頼区間においては「特定の信頼区間」があまり意味を持たないのに対して、Fisher流の信頼区間においては「特定の信頼区間」が意味を持っている。たとえば,95%信頼区間が1.4~1.8となったとき「真の値は(95%信頼区間の意味で)たぶん1.4~1.8の範囲にある」と述べることができる。ここでは「たぶん」としか述べることはできないが,特定の区間に関して議論することができるという点ではNeyman-Pearson流よりも妥当である。本講義ではFisher流を推薦する。計算上は両者はほとんど同じであり,解釈の違いだけである。

Page 23: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

5.プロットによる回帰診断 5-1.プロット例

23

plot(log(y+0.5)~month, data=MothData) abline(MothData.lmlog)

5.0 5.5 6.0 6.5 7.0 7.5 8.0

23

45

6

month

log(

y +

0.5)

図5-1. ハスモンヨトウ誘殺数の単回帰プロット

グラフを作成することは回帰分析が妥当であるかどうかを判断する上で非常に重要である。

単回帰では, (1)直線性 (2)等分散正規性 という二つの仮定を置いていた。右図を見ると観測値はおおむね直線の周りに同程度に分散していることが分かる。しかし,いつもうまくゆくとはかぎらない。

Page 24: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

5-2. Anscombe(1973)の仮想データ

24

このデータはRではデフォルトで使用できるようになっており,コンソールでanscombeとタイプすればデータの中身が表示される。

x1 x2 x3 x4 y1 y2 y3 y4 1 10 10 10 8 8.04 9.14 7.46 6.58 2 8 8 8 8 6.95 8.14 6.77 5.76 3 13 13 13 8 7.58 8.74 12.74 7.71 4 9 9 9 8 8.81 8.77 7.11 8.84 5 11 11 11 8 8.33 9.26 7.81 8.47 6 14 14 14 8 9.96 8.10 8.84 7.04 7 6 6 6 8 7.24 6.13 6.08 5.25 8 4 4 4 19 4.26 3.10 5.39 12.50 9 12 12 12 8 10.84 9.13 8.15 5.56 10 7 7 7 8 4.82 7.26 6.42 7.91 11 5 5 5 8 5.68 4.74 5.73 6.89

四つのx-yのペアがある。それぞれのペアについて単回帰を行う。

Page 25: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

5-2. Anscombe(1973)の仮想データ

25

anscombe1.regress <- lm(y1 ~ x1, data = anscombe) anscombe2.regress <- lm(y2 ~ x2, data = anscombe) anscombe3.regress <- lm(y3 ~ x3, data = anscombe) anscombe4.regress <- lm(y4 ~ x4, data = anscombe) summary(anscombe1.regress) summary(anscombe2.regress) summary(anscombe3.regress) summary(anscombe4.regress)

Page 26: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

5-2. Anscombe(1973)の仮想データ

26

Estimate Std. Error t value Pr(>|t|) (Intercept) 3.0001 1.1247 2.667 0.02573 * x1 0.5001 0.1179 4.241 0.00217 ** Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.001 1.125 2.667 0.02576 * x2 0.500 0.118 4.239 0.00218 ** Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.0025 1.1245 2.670 0.02562 * x3 0.4997 0.1179 4.239 0.00218 ** Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 3.0017 1.1239 2.671 0.02559 * x4 0.4999 0.1178 4.243 0.00216 **

推定結果は四つのペア間でほぼ共通している。しかし・・・

Page 27: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

5-2. Anscombe(1973)の仮想データ

27

par(mfrow=c(2,2)) plot(y1 ~ x1, xlim=c(3,20), ylim=c(3,14), data = anscombe) abline(anscombe1.regress) plot(y2 ~ x2, xlim=c(3,20), ylim=c(3,14), data = anscombe) abline(anscombe2.regress) plot(y3 ~ x3, xlim=c(3,20), ylim=c(3,14), data = anscombe) abline(anscombe3.regress) plot(y4 ~ x4, xlim=c(3,20), ylim=c(3,14), data = anscombe) abline(anscombe4.regress) par(mfrow=c(1,1))

四つのグラフを比較する。グラフを2×2で並べるためにpar指定を行う。描画後は標準設定に戻しておくこと。図を比較しやすいように,xlim,ylim指定で軸を同じにしておく。

Page 28: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

5-2. Anscombe(1973)の仮想データ

28

5 10 15 20

46

810

1214

x1

y1

5 10 15 20

46

810

1214

x2

y2

5 10 15 20

46

810

1214

x3

y3

5 10 15 20

46

810

1214

x4

y4

Page 29: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

5-3. 練習問題

29

表3-2. ハスモンヨトウのフェロモントラップ誘殺実験結果

トラップ番号 各月の誘殺数

5月 6月 7月 8月 1 10 26 45 356 2 8 16 55 341 3 16 48 112 874

表3-2のデータをプロットし,単回帰分析の妥当性について,いくつかの点から議論せよ。

Page 30: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

6-1. 多項式回帰

理論曲線が既知ならば,非線形最小二乗法であてはめる。未知ならば,曲線を「多項式近似」する。1次項だけでなく, 2次項も考える。

もう一度,ハスモンヨトウデータのプロットを見てみると,だいたい直線だが,少し下に凸の傾向もある。曲線回帰も検討。

30

5.0 5.5 6.0 6.5 7.0 7.5 8.0

23

45

6

monthlo

g(y

+ 0.

5)

図5-1. ハスモンヨトウ誘殺数の単回帰プロット

𝑦𝑦𝑖𝑖 = 𝑎𝑎 + 𝑏𝑏𝑥𝑥𝑖𝑖 + 𝑐𝑐𝑥𝑥𝑖𝑖2 + 𝑒𝑒𝑖𝑖, 𝑖𝑖 = 1,2, … ,𝑛𝑛 , 𝑒𝑒𝑖𝑖 ~ 𝑁𝑁(0,𝜎𝜎2)

1次項は右上がりか右下がり化を表現し,2次項は上に凸か下に凸かを表現する。

Page 31: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

6-1. 多項式回帰

典型的な多項式回帰のRプログラム

31

MothData.lmlog2 <- lm(log(y+0.5)~month + I(month^2), data= MothData) summary(MothData.lmlog2)

ここでは単回帰の式に「+ I(month^2)」が追加されている。単にmonth^2とするとRは自動的に式を展開してしまう。(今の場合はmonthのまま。)その展開を抑止して,二乗の項をそのまま式に追加するために,ここではI()を用いて展開を抑止(inhibit)している。

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 6.8788 8.1519 0.844 0.437 month -2.2028 2.5645 -0.859 0.430 I(month^2) 0.2658 0.1968 1.350 0.235

正なので下の凸。ただし有意ではない

負なので月とともに減少?? 有意ではない

したがって,二乗の項はモデルから外さなければならない

Page 32: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

6-1. 多項式回帰

多項式においては,そのパラメーターに優劣関係がある。たとえば2次項は1次項で説明できない残りの部分を説明する。そのため,推定値も検定統計量もそのことを踏まえて計算しないといけない。

32

center <- mean(MothData$month) MothData.lmlog3 <- lm(log(y+0.5)~month + I((month-center)^2),data= MothData) summary(MothData.lmlog3)

2次項の推定値が1次項の推定値に悪影響を及ぼさないようにするためには「多項式中心化」という操作が薦められる。

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -4.3500 1.1867 -3.666 0.014510 month 1.2523 0.1760 7.114 0.000851 I((month - center)^2) 0.2658 0.1968 1.350 0.234773

有意ではない 単回帰の係数と同じ。有意

したがって,二乗の項はモデルから外し,一次の項は残す。

Page 33: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

6-1. 多項式回帰

P値の計算だけに関して言えば,多項式中心化を行わなくても,anova関数を用いると,正しいP値を出力してくれる。anova関数では,自動的に上から優劣を付けてP値を計算するからである。これは「Type I 分析」と呼ばれている。

33

anova(MothData.lmlog2)

Response: log(y + 0.5) Df Sum Sq Mean Sq F value Pr(>F) month 1 15.6815 15.6815 50.6107 0.0008509 *** I(month^2) 1 0.5651 0.5651 1.8237 0.2347728 Residuals 5 1.5492 0.3098 ---

計算結果は 有意確率は正しい

したがって,二乗の項はモデルから外し,一次の項は残す。

Page 34: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

6-2. 重回帰

量的な説明変数が一つだけ → 単回帰分析

量的な説明変数が複数 → 重回帰分析 表3-1のハスモンヨトウの誘殺数データにはトラップと月という二つの要因が含まれていた。トラップ1とトラップ2の添字の1と2は単に識別のために付けられた番号であり,1と2という数値自体には意味がない。つまり,トラップは定性的な変数(名義変数)であった。しかし,ここでは,便宜上このトラップの1と2を数値として扱って,トラップと月の二つの量的な説明変数を用いて重回帰を行ってみる。

34

表3-1. ハスモンヨトウのフェロモントラップ誘殺実験結果

トラップ番号 各月の誘殺数

5月 6月 7月 8月 1 8 16 55 341 2 16 48 112 874

Page 35: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

6-2. 重回帰

プログラムは,項が一つ増えるだけ。

35

MothData.lmlog4 <- lm(log(y+0.5)~trap + month, data= MothData) summary(MothData.lmlog4)

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -5.2885 0.8624 -6.132 0.001674 ** trap 0.8471 0.2606 3.250 0.022684 * month 1.2523 0.1165 10.745 0.000121 ***

計算結果は

トラップの係数の推定値はで0.8471あるから,トラップ番号が1単位だけ増加したときに0.8471だけ対数個体数が増加することを意味している。今の場合は,これはトラップ2の方がトラップ1よりも対数平均個体数が0.8471だけ大きいことを意味している。その要因のP値は0.022684であり有意である。

Page 36: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

6-2. 重回帰

36

MothData.lmlog5 <- lm(log(y+0.5)~trap + month + trap:month, data= MothData) summary(MothData.lmlog5)

今のモデルではトラップの効果と月の効果が足し算で作用すると考えてきた。このような足し算の関係が成り立つことを「相加性が成り立つ」と言う。しかし,両者の関係は足し算では表現できない成分を含むかもしれない。たとえば,月の効果がトラップに依存して異なるかもしれない。このような効果を「交互作用」とよび,それに対して,月やトラップの効果の方を「主効果」とよぶ。ここではトラップと月の交互作用も考えてみよう。

ここにtrap:monthはトラップと月の交互作用であり,主効果では説明できない残りの成分を意味している。このモデルは次のように簡略化して書くこともできる。

MothData.lmlog5 <- lm(log(y+0.5)~trap*month, data= MothData)

Page 37: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

6-2. 重回帰

37

Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) -4.84056 2.70712 -1.788 0.1483 trap 0.54848 1.71213 0.320 0.7647 month 1.18335 0.41045 2.883 0.0449 * trap:month 0.04594 0.25959 0.177 0.8681

この結果をみるとトラップの効果は5%水準で有意ではない。したがって,交互作用はモデルから外さなければならない。ただし,先ほどの多項式の1次項と2次項の間の関係と同様に,主効果と交互作用の間にも優劣関係がある。交互作用は主効果では説明できない残りの成分を説明するためのものであった。しかし,上の検定ではこのような優劣関係が考慮されていない。主効果と交互作用が含まれるモデルの検定では,それらの優劣関係を考慮した分析法である「Type II分析」を用いなければならない。この検定はcarライブラリのAnova関数で実行することができる。検定のTypeについては来週の一般化線型モデルの講義の中で詳しく述べる。

Page 38: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

6-2. 重回帰

38

library(car) Anova(MothData.lmlog5)

この結果は以下のとおりである。 Anova Table (Type II tests) Response: log(y + 0.5) Sum Sq Df F value Pr(>F) trap 1.4351 1 8.5185 0.0433016 * month 15.6815 1 93.0808 0.0006456 *** trap:month 0.0053 1 0.0313 0.8681326 Residuals 0.6739 4

トラップのP値は0.0433016,月のP値は0.0006456で,いずれも有意であるが,トラップと月の交互作用のP値は0.8681326であり,有意ではない。

Page 39: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

7. 変数変換 7-1.変数変換の必要性

39

単回帰には二つの仮定があった: (1)直線性,(2)等分散正規性。 いままでlog(y+0.5)に関して分析を行ってきた。これは単回帰の仮定を成立しやすくさせるためである。同じデータで対数変換を行わずにそのまま回帰分析を行い信頼区間を描いてみると。

MothData.lm <- lm(y~month, data= MothData) summary(MothData.lm); confint(MothData.lm)

Estimate Std. Error t value Pr(>|t|) (Intercept) -1011.0 459.1 -2.202 0.0699 . month 183.8 69.6 2.641 0.0385 *

結果は下記のとおり。傾きのP値が大きくなっている。

信頼区間の下限と上限は26倍もの差になっている。 2.5 % 97.5 % (Intercept) -2134.22673 112.3267 month 13.48922 354.1108

Page 40: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析 7-1.変数変換の必要性

40

回帰診断のところで述べたように,グラフを描くと問題はさらに明瞭に理解できる。

plot(y~month,data=MothData) abline (MothData.lm)

図を見ると (1)直線性 (2)等分散性 の両方が非常に乏しくなっていることが分かる。何らかの変換が必要である。

5.0 5.5 6.0 6.5 7.0 7.5 8.00

200

400

600

800

month

y

図7-1. ハスモンヨトウ誘殺数の直線回帰プロット。対数変換を行わなかった場合。

Page 41: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

7-1.変数変換の必要性

41

どのように変数変換法を選べばよいか? → 相加性を満たすように選ぶ

誤差が相加的に足し合わされれば,誤差のもともとの分布がどのような分布であっても,足し合わされた誤差の分布は正規分布に近づいてゆく。これは「中心極限定理」と呼ばれている。また,それぞれの誤差は増幅されることがないので等分散になる。

このことから,変量が何らかの要素の足し算によって生成されているようにスケールを改善すれば,誤差も足し算の形で生成されるために,誤差全体の等分散正規性は改善されると期待できる。また逆に,誤差全体の等分散正規性が改善されるようなスケールを見つけることができれば,そのスケールにおいては変量の相加性が改善されていると期待することができる。

Page 42: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

7-1.変数変換の必要性

42

(例)昆虫の4齢幼虫数(𝑁𝑁4) 1齢幼虫数(𝑁𝑁1)と各段階の生存率(𝑆𝑆1, 𝑆𝑆2, 𝑆𝑆3)の積。

𝑁𝑁4 = 𝑁𝑁1 × 𝑆𝑆1 × 𝑆𝑆2 × 𝑆𝑆3

掛け算の形で決まっている現象の場合 →対数変換を行うと「足し算の関係」。

𝑆𝑆3 の変化量が同じでも, 𝑁𝑁1 の値が二倍になると𝑁𝑁4 の変化量は二倍に増幅される。 𝑆𝑆3の効果が𝑁𝑁1の効果と独立ではない。余計な交互作用がある。対数変換すると

→  log𝑒𝑒(𝑁𝑁4) = log𝑒𝑒(𝑁𝑁1) + log𝑒𝑒(𝑆𝑆1) + log𝑒𝑒(𝑆𝑆2) + log𝑒𝑒(𝑆𝑆3)

log𝑒𝑒(𝑁𝑁1)が二倍になってもlog𝑒𝑒(𝑆𝑆3)の変動量の効果は変わらない。余計な交互作用がない。

Page 43: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

7-2. Box - Cox 変換

43

最適な変換方式を自動的に探索する方式。データが0以上の値をとる場合に使用できる。

𝑓𝑓 𝑥𝑥 =𝑥𝑥𝜆𝜆 − 1𝜆𝜆

𝑓𝑓 𝑥𝑥 = log𝑒𝑒 𝑥𝑥

𝜆𝜆 ≠ 0

𝜆𝜆 = 0

Box-Cox変換では,変換後の値の誤差分散が等分散正規分布になったと仮定して,べき係数𝜆𝜆の最尤推定を行なう。RではMASSライブラリのboxcox関数が使用できる。

library(MASS) boxcox(y+0.5 ~ month, data= MothData)

0.5を足す理由については,後で説明する。

Page 44: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

7-2. Box - Cox 変換

44

図7-1では,対数尤度がべき係数𝜆𝜆に対してプロットされている。この図から,べき係数𝜆𝜆がゼロの付近で対数尤度が最大になることがわかる。Box-Cox変換において𝜆𝜆 = 0は対数変換を意味する。したがって,ハスモンヨトウのデータの場合は対数変換が妥当であったことがBox-Cox変換の結果からも裏付けられる。

-2 -1 0 1 2

-35

-30

-25

-20

-15

-10

-5

log-

Like

lihoo

d

95%

図7-2. 表1のハスモンヨトウの回帰分析においてBox-Cox変換を適用した例。対数尤度がべき係数𝜆𝜆に対してプロットされる。

Page 45: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

7-3. ゼロデータの問題

45

対数変換の場合には,データの中に0が含まれている場合には変換やBox-Cox変換を実行することができない。何か定数を足してから変換するしかない。何を足すべきか?

対数変換などは 𝑥𝑥 > 0の連続変量用の変換法。これを個体数のような0,1,2,…という離散変量に適用したために生じている問題。したがって,離散変量を連続変量に近づけてやるとよい。

0 1 2 3 0.5 1.5 2.5 3.5

図7-3. (0,1,2,..) で定義された離散分布を (0,∞)で定義された連続分布で近似する方法。

そのためには,図7-3に示されるように,離散分布を0.5だけ右にずらせばよい。このため,0.5を足してから変換するとよいことがわかる。

Page 46: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

7-3. ゼロデータの問題

46

図7-3はxの離散幅の半分を定数として足すべきであることを意味していた。したがって,例えばもし測定が0.1単位で行われたならば,xに0.1の半分である0.05を足してから変換を行う必要がある。平均値に関して回帰分析を行う場合にも,この点で注意しなければならない。

0 1 2 3 0.5 1.5 2.5 3.5

図7-3. (0,1,2,..) で定義された離散分布を (0,∞)で定義された連続分布で近似する方法。

Page 47: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析 7-4. 練習問題

47

表3-2のそれぞれのトラップが106x10cm2の誘引範囲を持つと仮定しよう。「10cm2あたりの個体数」は表3-2の各数値を106で割ることによって与えられる。この「10cm2あたりの個体数」に対して0.5を足してから対数変換を行った値に関して単回帰分析を行い,さきほどの練習問題3-4の結果と比較せよ。また,この平均捕獲数に0.5/106を足してから対数変換を行った値に関して単回帰分析を行い,さきほどの結果と比較せよ。

表3-2. ハスモンヨトウのフェロモントラップ誘殺実験結果

トラップ番号 各月の誘殺数

5月 6月 7月 8月 1 10 26 45 356 2 8 16 55 341 3 16 48 112 874

Page 48: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

8. 測定誤差問題 8-1. 「回帰」という言葉

48

「回帰」という言葉は,Galton(1886)が親-子間の身長の分析などから名づけた名称であるが,この言葉は「ある誤解」に基づいて名づけられた名前だとも言える。

いま息子の身長を𝑥𝑥𝑡𝑡,父親の身長を𝑥𝑥𝑡𝑡−1とし,両者の関係を直線回帰で分析する場合には次のモデルとなる。

𝑥𝑥𝑡𝑡 = 𝑎𝑎 + 𝑏𝑏𝑥𝑥𝑡𝑡−1 + 𝑒𝑒𝑡𝑡 𝑒𝑒𝑡𝑡 ~ 𝑁𝑁(0,𝜎𝜎2)

ここに先ほどと同様に𝑎𝑎は切片,𝑏𝑏は傾きを表すパラメーターである。それらの最尤推定値は𝑎𝑎� = 33.3, 𝑏𝑏� = 0.52となり,傾きは有意に1よりも小さい。このことから,息子の身長は平均値に「回帰」するとGaltonは解釈し,これを「law of regression」と名づけた。先祖は平均的な身長を持っているはずなので,当初は「先祖返りをする(reversion)」とGaltonは考えた。

Page 49: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

8-1. 「回帰」という言葉

49

60

65

70

75

息子

の身

長,x t

60 65 70 75父親の身長,xt−1

図8-1.父親-息子の身長(インチ)の解析における二つのモデルの比較。実線は直線回帰モデルによって推定された直線(𝑏𝑏� = 0.52)。破線は測定

誤差モデルによって推定された直線(𝑏𝑏� = 1.02)。

しかし,身長を律する遺伝因子が存在するとしても,その遺伝因子は正確に身長に反映されるわけではない。個人の生育環境の変動などにより,形質の発現の際には何らかの変動が加わるはずである。図8-1は「見かけ上の関係」を表しているだけだという可能性がある。

Page 50: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

8-1. 「回帰」という言葉

50

息子の身長の遺伝因子を𝜇𝜇𝑡𝑡,父親の身長の遺伝因子を𝜇𝜇𝑡𝑡−1とし,その遺伝因子の発現や測定にかかわる誤差をそれぞれ𝑒𝑒𝑡𝑡,𝑒𝑒𝑡𝑡−1とすれば 𝑥𝑥𝑡𝑡−1 = 𝜇𝜇𝑡𝑡−1 + 𝑒𝑒𝑡𝑡−1

𝑥𝑥𝑡𝑡 = 𝜇𝜇𝑡𝑡 + 𝑒𝑒𝑡𝑡

と書ける。遺伝因子の世代間変動に関しては単純のため直線関係を仮定すれば次式で書ける。

𝜇𝜇𝑡𝑡 = 𝑎𝑎 + 𝑏𝑏𝜇𝜇𝑡𝑡−1

回帰分析では従属変数𝑦𝑦だけに誤差変動があったのに対して,上のモデルでは説明変数𝑥𝑥にも誤差がついている形になる。これは回帰分析モデルではなく「測定誤差モデル」と呼ばれるモデルである。父親と息子の身長に係る誤差分散は等しいと仮定して最尤推定を行うと,パラメーターの推定値は𝑎𝑎� = −0.3,𝑏𝑏� = 1.02となり,傾きはほぼ1である。

Page 51: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

8-1. 「回帰」という言葉

51

「変数が決まる仕組み」について興味を持っている場合には「測定誤差の存在」をきちんと考慮する必要がある。その場合には安易に回帰分析を用いてはならない。

しかしながら,父親の身長のもとでの「条件付き」で議論を行う場合には,身長が非常に大きい父親からは平均して父親よりも身長の小さい息子が生じるのは事実である。「親の身長から子供の身長を予測する」といった実用的な問題に関しては,むしろ「条件付き」の関係式を構築する方が重要であるともいえる。

重要なのは,自分の解析の目的をしっかりと見据えて,適切なモデルを構築することだと考えられる。

Page 52: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

9.モデル選択とモデル評価 9-1.モデル選択手順としての有意性検定

52

かつてFisherは,統計処理の目的は「データの縮約」にあるとして,次の三つのプロセスを示唆していた:

(1)P値を用いた有意性検定によるモデル同定の問題 (2)同定されたモデルのパラメーター推定の問題 (3)推定されたパラメーターの推測分布の問題。

しかし,こうしたFisherの意図に反して,検定を統計処理の最終目標だと解釈する人々が現在では非常に多い。

つまり,まず有意性検定を行って,有意になったパラメーターだけを暫定的に残し,その残されたパラメーターについてだけ推定を行う。

Page 53: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

53

検定が「統計処理の最終目標」になりえないことについては,Fisher以降も一部の統計学者によって繰り返し指摘されてきた。

検定で有意差が出なかったときには「差を検出するのにサンプル数が足りなかった」ことを示しているにすぎず,一方,有意差が出たときには「差を検出するのにサンプル数が十分に多かった」ことを示しているにすぎない。つまり,統計的な有意差の有無は,単に私らが用いたサンプル数の大きさによって決まる問題であり,それは私らが探求している真実とは無関係であるとも言える。

最近になって,ようやくアメリカ統計学会が公式にこの問題を認知しはじめたようである(Baker 2016;Wasserstein and Lazar 2016)。

9-1.モデル選択手順としての有意性検定

Page 54: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析

9-1.モデル選択手順としての有意性検定

54

赤池弘次(1976)「情報量基準 AIC とは何か-その意味と将来への展望-」数理科学153:5-11

「有意差なし」という結果は「その効果を検出するには反復数が少なすぎた」という「実験の不備」を示しているにすぎず,検定にはそもそも意味がない。

あるサイコロの正しさを検定するという問題も全く同様で,現実のサイコロで完全に対称なものが存在しえないことは明らかである。このように仮説(帰無仮説)は常に否定される立場にあり,データによる検定結果を待つまでもなく結論は見えている。

ただし,Neyman-Pearsonは検定を結論として用いていたが,Fisherは有意性検定をモデル選択の手法として用いていただけであった。検定が持つ問題をFisherは十分に理解していたようだ。

Page 55: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

55

9-2. AICによるモデル選択

Fisherの手法「有意性検定によるモデル選択法」は実用的な

方法だったが,その意味は不明確であった。モデル選択の手段

として,現在では別の手法を用いるべきであろう。

では,どのような基準で選択するべきか?

一般に,モデルは手持ちのデータだけを記述することを目的と

するのではなく、何らかの別のデータにも適用できることを暗黙

の前提としている。

こうしたモデルの性質から考えれば、予測力でモデルの妥当

性を評価するのが唯一の妥当な評価法だと言える。そうした

評価法の一つがAIC(赤池情報量基準)である。

Page 56: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

56

9-2. AICによるモデル選択

尤度を𝐿𝐿とし,モデルに含まれるパラメーター数(切片を含む)を𝑘𝑘とするとき,AICは次式で定義される。

AIC = −2log 𝐿𝐿 + 2𝑘𝑘

RではAICはAIC関数を用いて出力できる。最初に計算したハスモンヨトウのデータの直線回帰の場合にはAIC(MothData.lmlog)によりAIC= 18.05726である。

ただし,このAICの値自体には実用的には意味がなく,他のモデルをあてはめたときのAICと比較したときにだけ意味がある。多項式回帰の場合にAIC(MothData.lmlog2)として計算すると,この値は17.56951である。多項式回帰のモデルの方がAICが小さいことから,多項式回帰モデルの方がAIC基準において優れていることがわかる。

Page 57: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

57

9-2. AICによるモデル選択

AICを計算する別の関数としてMASSライブラリにextractAICがある。この関数で計算すれば,単回帰ではextractAIC(MothData.lmlog)によりパラメーター数2でAIC =

-6.645757となる。これはAIC関数で計算した値AIC= 18.05726とまったく異なる。

extractAIC関数では(1)対数尤度の定数部分を省略しており,かつ(2)分散パラメーターをパラメーター数として数えていない,という二つの特徴があるために計算値が異なっている。元の定義どおりのAICはAIC関数の方である。

しかし,extractAIC関数を用いた関数としてstepAIC関数があり,これを用いると自動的に最適なモデルを選択することができるので便利である。

Page 58: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

58

9-2. AICによるモデル選択

先ほどの交互作用付きの重回帰の場面でstepAICを使ってみよう。この重回帰では5個のパラメーターが使われている。つまり,切片,トラップ,月,トラップと月の交互作用,分散パラメーターである。

library(MASS) stepAIC(MothData.lmlog5)

その出力を以下と次のスライドに示す。

Start: AIC=-11.79 log(y + 0.5) ~ trap + month + trap:month Df Sum of Sq RSS AIC - trap:month 1 0.0052762 0.67916 -13.731 <none> 0.67389 -11.793

第1ステップでは最小AICは AIC=-13.731

Page 59: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

59

9-2. AICによるモデル選択

Step: AIC=-13.73 log(y + 0.5) ~ trap + month Df Sum of Sq RSS AIC <none> 0.6792 -13.7307 - trap 1 1.4351 2.1143 -6.6458 - month 1 15.6815 16.3606 9.7235 Call: lm(formula = log(y + 0.5) ~ trap + month, data = MothData) Coefficients: (Intercept) trap month -5.2885 0.8471 1.2523

第2ステップでは最小AICは 変わらない→計算終了

Page 60: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

60

9-2. AICによるモデル選択

AIC(lm(log(y+0.5)~trap+month, data= MothData))

探索の結果として,交互作用項を除いてトラップと月の主効果の項だけを含むモデルが選択された。先ほど議論したように,交互作用は主効果で説明できない残りの成分を説明するためのものであった。このような場合には「階層型モデル群」に絞って比較を行わなければならない。すなわち,交互作用項を含める場合には,それに対応する低次の主効果をすべて含めておかなければならない。有意性検定を用いてモデル選択を行う場合には,検定のタイプ(Type I, II, III)を指定することにより階層型モデル群を考慮することができた。

上の試行錯誤の経過をよく見れば,stepAIC関数は,こうした階層型モデル群に絞って探索を行ってくれることが分かる。いわばstepAIC関数は自動的にTypeの判別を行ってくれると言える。

定義どおりのAICはAIC関数を使って求める。

Page 61: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析 9-3. 練習問題

61

表3-2に関して先ほどと同様に月に関して多項式回帰を行い,AICを計算せよ。また,stepAIC 関数を用いて最適なモデルを同定し,そのモデルの正確なAICをAIC関数で計算せよ。ただし,計算の際には階層型モデル群に注意せよ。(先ほどの有意性検定では,この場合にはType I検定を用いた。)stepAIC関数は,多項式回帰に関しては,このような優劣関係を考慮してくれないので,手動でモデルを選択する必要がある。

表3-2. ハスモンヨトウのフェロモントラップ誘殺実験結果

トラップ番号 各月の誘殺数

5月 6月 7月 8月 1 10 26 45 356 2 8 16 55 341 3 16 48 112 874

Page 62: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析 9-3. 練習問題(つづき)

62

表3-2に関して,先ほどと同様に月とトラップとその交互作用を組み込んで重回帰分析を行え。(後で car library をインストールして Type II 検定を用いよ。 ) stepAIC関数を用いて最適なモデルを同定せよ。そのモデルの正確なAICをAIC関数で計算せよ。

表3-2. ハスモンヨトウのフェロモントラップ誘殺実験結果

トラップ番号 各月の誘殺数

5月 6月 7月 8月 1 10 26 45 356 2 8 16 55 341 3 16 48 112 874

Page 63: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

63

9-4. AICの問題点

AICが根拠としている「予測におけるKullback-Leibler情報量の尺度で測った近さ」の現実的意義が明確ではない。そのため,たとえばAIC=15.2という値が出たときに,この値(15.2)自体には意味はない。AICの使用においては,同じデータのもとで二つ以上のモデルのAICを比較した場合にのみ相対的に意味があった。つまり,AICは量的変数ではなく順序変数でしかない。

現在のデータの量や質が十分であるかどうかを判断するためには,「モデル選択」だけでなく「モデル評価」を行うことが極めて重要である。しかし,AICを用いた場合には,これは「相対的な尺度」であるから,「モデル選択」はできても絶対的な「モデル評価」を行うことができない。

検定と同様に,データ量が多ければ「もっとも複雑なモデル」が採用されて議論が終了するだけであり,そのモデルの有用性を評価することはできない。

Page 64: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

64

9-5. 「実際に当たる確率」によるモデル評価

Kullback-Leibler 情報量の尺度ではなく,「実際に当たる確率」で正しくモデルを評価するべきではないか? そうすれば,選択されたモデルが「有用なモデル」かどうかを判断できる。また,単に「予測力最大」ではなく,コストが少なく「適度の予測力」を持つモデルも選択可能になる。

尤度ではなく発生確率で比較するために,ラプラス哲学にしたがって「真のモデル」を飽和モデルなどもっとも複雑なモデルに固定する。(固定しなければ発生確率の比較にはならない。)

その上で,予測力の改善割合𝑅𝑅predを考える。将来のデータをすべて知っている「神」が予測した場合に𝑅𝑅predは100%となり,説明変数をまったく持たない「凡人」が予測した場合に𝑅𝑅predが0%となるように改善割合𝑅𝑅predを定義する。この𝑅𝑅predの推定値

として𝑅𝑅𝐷𝐷指数が導出されている。

Page 65: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

65

9-7. RD 指数の計算プログラム

𝑅𝑅𝐷𝐷を計算するための1変量用のR関数(RDcompare)が以下のサイトにおいてある。論文の著者版原稿もここに置いてある。 http://cse.naro.affrc.go.jp/yamamura/RD_criterion_program.html

この関数を使えば,重回帰分析だけでなく,来週の講義にある一般化線型モデルにおいても𝑅𝑅𝐷𝐷の計算を自動的に行うことができる。stepAIC関数と同じく,交互作用に関しては,パラメーターの優劣関係を自動的に判定してくれる。

RDcompare関数を使うためには,関数が書かれたテキストファイルRDcompare.txtをsource関数を用いて実行する必要がある。もしファイルがカレントディレクトリーにあれば source("RDcompare.txt")

source(file.choose())

あるいはfile.choose関数を用いてエクスプローラーから場所を指定する。

Page 66: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

66

9-7. RD 指数の計算プログラム

先ほどの交互作用つきの重回帰で𝑅𝑅𝐷𝐷を計算する場合には次

のような指定になる。

RDcompare(log(y+0.5)~trap*month, data= MothData)

モデル式としては「飽和モデル」あるいは「最も複雑なモデル」を

指定する。飽和モデルというのは「すべての要因効果を含むモデ

ル(手持ちの情報をすべて組み込んだモデル)」のことであり,今

の場合は,trap*month が飽和モデルである。これは trap +

month + trap:month としても同じである。ShowModelオプションを

使えば上位モデルのパラメーター推定値とその標準誤差を表示

できる。デフォルト設定はShowModel=5であり,上位5モデルのパ

ラメーターが表示される。

Page 67: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

67

9-7. RD 指数の計算プログラム

出力の例

# RD ranking for the hierarchical family of models # RD RSD Model 1 0.90679867 0.94179985 log(y+0.5) ~ 1 + trap + month 2 0.88850757 0.92280275 log(y+0.5) ~ 1 + trap + month + trap:month 3 0.84623461 0.87889810 log(y+0.5) ~ 1 + month 4 0.06056406 0.06290175 log(y+0.5) ~ 1 + trap 5 0.00000000 0.00000000 log(y+0.5) ~ 1

もっとも予測力が高いモデルは交互作用を無視したモデルで

ある。その予測力の改善割合の推定値は𝑅𝑅𝐷𝐷 = 0.90679867であ

り,予測力は十分に高いことが分かる。

Page 68: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

検定に代わるものとしてのAICの使用

68

9-7. RD 指数の計算プログラム

𝑅𝑅𝐷𝐷でのモデルの選び方について 予測力を問題にする場合であっても,必ずしも𝑅𝑅𝐷𝐷が最大となるモデルを採択する必要はない。順位が2位以下のモデルであっても,最良モデルと比較してあまり𝑅𝑅𝐷𝐷が低下しておらず,かつ,利用しやすい性質を持っているモデル(たとえば,容易に測定できる説明変数からなるモデルや,容易に解釈できるモデル)であれば,そちらのモデルを採択するべきである。

予測が目的ではなく「変数が生じる主な理由を把握する」のが目的の場合には, 𝑅𝑅𝐷𝐷が大きいモデルよりも,あえて𝑅𝑅𝐷𝐷が0.8程度のモデルを採用するのが好ましい場合もあるであろう。今の場合は,月だけを用いたモデルで𝑅𝑅𝐷𝐷 = 0.85であり0.8に近いことから,このモデルを「要約モデル」として採用し,「ハスモンヨトウの個体数は主として月によって決まっている」と解釈するのも妥当であろう。

RDでのモデル選択は柔軟性が高い

Page 69: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

まず最初に確認したいこと 単回帰分析 9-8. 練習問題

69

練習問題9-3の結果を用いて,表3-2に関する多項式回帰について,RDcompare関数を用いて𝑅𝑅𝐷𝐷を計算し,その結果について議論せよ。ただし,stepAIC関数と同じく,この場合には階層型モデル群以外のモデルについても計算してしまうので,手動でモデルを絞る必要があることに注意せよ。次に,練習問題9-3-2の結果を用いて,重回帰について𝑅𝑅𝐷𝐷を計算し,その結果について議論せよ。

表3-2. ハスモンヨトウのフェロモントラップ誘殺実験結果

トラップ番号 各月の誘殺数

5月 6月 7月 8月 1 10 26 45 356 2 8 16 55 341 3 16 48 112 874

Page 70: 回帰分析 - cse.naro.affrc.go.jpcse.naro.affrc.go.jp/yamamura/Images/kenshuu_slide... · 量的変数(1.2, 2,4, 120 など 連続変数と離散変数がある) ... 1 6 16

以上です

私の講義は以上です

70