Skip to main content
自然科学の統計学
2.2節 最小二乗法
輪講 2016.05.14
担当 和田
2.2.1 最小二乗法の原理
線形モデル
𝒚 = 𝑿𝜽 + 𝜺 (2.9)
𝒚 : y1, … , 𝑦𝑛
⊤
観測地のベクトル
𝜽 : 𝜃1, … , 𝜃 𝑝
⊤
未知母数のベクトル
𝑿 : 既知係数行列/ 計画行列 design
matrix
2/16
線形推定量
未知母数 𝜽 の任意の係数 𝒍 = (𝑙1, … , 𝑙 𝑝) によ
る線形結合
𝒍⊤
𝜽 = 𝑙1 𝜃1 + 𝑙2 𝜃2 + ⋯ + 𝑙 𝑝 𝜃 𝑝
の線形推定量
例1) 多項式モデル(2.8)の母数𝛽0, 𝛽1, 𝛽2
例2) 説明変数𝑥の値についての予測値
𝛽0 + 𝛽1 𝑥 + 𝛽2 𝑥2
3/16
𝒍 の選び方により様々なモデルになる
最小二乗法の原理
データ 𝒚 とその期待値の二乗和
𝑆 𝜽 = 𝒚 − 𝑿𝜽 𝟐 = 𝒚 − 𝑿𝜽 ⊤ 𝒚 − 𝑿𝜽 (2.15)
を最小にする解 𝜽 = 𝜽 を求め、単に 𝒍⊤ 𝜽 とする
例1) 繰り返し測定モデル
yi = 𝜇 + 𝜀𝑖 : 𝑆 𝜽 = ∑ 𝑦𝑖 − 𝜇 2
例2) 一元配置モデル
yij = 𝜇 + 𝛼𝑖 + 𝜀𝑖𝑗 : 𝑆 𝜽 = ∑∑ 𝑦𝑖𝑗 − 𝜇 − 𝑎𝑖
2
例3) 多項式モデル
yi = 𝛽0 + 𝛽1 𝑥𝑖 + 𝛽2 𝑥𝑖
2
+ 𝜀𝑖 𝑆 𝜽 = ∑ 𝑦𝑖 − 𝛽0 − 𝛽1 𝑥𝑖 − 𝛽2 𝑥𝑖
2 2
4/16
ガウス・マルコフの定理
2.1.4節で紹介したものよりも簡単なBLUEの求め方
2.2.2 正規方程式
線形モデル 𝒚 = 𝑿𝜽 + 𝜺 についての正規方程式
𝑿⊤ 𝑿𝜽 = 𝑿⊤ 𝒚
これを満たす 𝜽 = 𝜽 は、偏差二乗和 𝑆 𝜽 を最小にする。
𝑆 𝜽 = 𝒚 − 𝑿 𝜽 + 𝑿 𝜽 − 𝜽
⊤
𝒚 − 𝑿 𝜽 + 𝑿 𝜽 − 𝜽
= 𝒚 − 𝑿 𝜽
⊤
𝒚 − 𝑿 𝜽 + 𝑿 𝜽 − 𝑿𝜽
⊤
𝑿 𝜽 − 𝑿𝜽 ≥ 𝑆 𝜽
例2.3 多項式モデル: 曇り点データ
5/16
Sθ
𝑆 𝜽
例2.3 多項式モデル: 曇り点データ
x <- c(0,1,2,3,4,5,6,7,8,0,2,4,6,8,10,0,3,6,9)
y <- c(22.1, 24.5, 26, 26.8, 28.2, 28.9, 30, 30.4, 31.4, 21.9, 26.1, 28.5,
30.3, 31.5, 33.1, 22.8, 27.3, 29.8, 31.8)
X <- cbind(rep(1, length(x)), x, diag(x %*% t(x)))
solve(t(X) %*% X)
# x
# 0.253355906 -0.097147349 0.0079029365
#x -0.097147349 0.063003809 -0.0062664006
# 0.007902936 -0.006266401 0.0006840397
solve(t(X) %*% X) %*% t(X) %*% y
# [,1]
# 22.56123063
#x 1.66802044
# -0.06795836
6/16
推定可能関数
𝑿𝜽 の各要素とその線形結合全体
※ ただし、一元配置モデルの 𝜇 + 𝛼𝑖 や
𝛼𝑖 − 𝛼𝑗 は推定可能であるが、𝜇 と 𝛼𝑖 は単
独で推定可能ではない。
7/16
2.2.3 ガウス-マルコフの定理
線形モデル 𝒚 = 𝑿𝜽 + 𝜺 の任意の推定関数
𝒍⊤
𝜽 について、𝒍⊤
𝜽 が一意にBLUE。
ここで、𝜽 = 𝜽 は、正規方程式 𝑿⊤
𝑿 𝜽 =
𝑿⊤
𝒚 を満たす任意の最小二乗解。
Xがフルランクの場合、任意の線形関数
も 𝜽 自体も推定可能で、正規方程式も一意
な最小二乗解 𝜽 = 𝑿⊤
𝑿 −𝟏
𝑿⊤
𝒚 を持つ。
8/16
証明(1)
任意の線形式 𝒍⊤
𝜽 に対し、
𝒍⊤
𝜽 = 𝒍⊤
𝑿⊤
𝑿 −𝟏
𝑿⊤
𝒚
𝐸 𝒍⊤ 𝜽 = 𝒍⊤ 𝑿⊤ 𝑿 −𝟏 𝑿⊤ 𝐸 𝒚 = 𝒍⊤ 𝑿⊤ 𝑿 −𝟏 𝑿⊤ 𝑿𝜽 = 𝒍⊤ 𝜽
次に、 𝒍⊤ 𝜽 とは別の線形不偏推定量 𝑡 𝒚 = 𝑳⊤ 𝒚 との差
を次のように定義する。
𝒍⊤
𝜽 − 𝑳⊤
𝒚 = 𝒍⊤
𝑿⊤
𝑿 −𝟏
𝑿⊤
− 𝑳⊤
𝒚 ≡ 𝒃⊤
𝒚
このとき、不偏性から、全ての 𝜽 について 𝐸 𝑳⊤
𝒚 =
𝒍⊤ 𝜽 となるべきで、
𝐸 𝒃⊤
𝒚 = 𝒃⊤
𝑿𝜽 = 0
が任意の 𝜽 で成り立つので、
𝒃⊤ 𝑿 = 0.
9/16
<= 不偏
証明(2)
10/16
二つの確率変数X, Yに対して
𝑉 𝑋 + 𝑌 = 𝑉 𝑋 + 2Cov 𝑋, 𝑌 + 𝑉 𝑌 (2.26)
であるから、 𝑳⊤ 𝒚 の分散は、
V 𝑳⊤ 𝒚 = V 𝒍⊤ 𝜽 − 𝒃⊤ 𝒚
= V 𝒍⊤
𝜽 − 2Cov 𝒍⊤
𝑿⊤
𝑿 −𝟏
𝑿⊤
𝒚, 𝒃⊤
𝒚 + V 𝒃⊤
𝒚 .
一方、誤差 ε が無相関で等分散の仮定(2.14)を満たせば、2つの確
率変数
𝒂⊤
𝒚 = ∑𝑎𝑖 𝑦𝑖, 𝒃⊤
𝒚 = ∑𝑏𝑖 𝑦𝑖
の共分散は、
Cov 𝒂⊤ 𝒚, 𝒃⊤ 𝒚 = Cov 𝒂⊤ 𝜺, 𝒃⊤ 𝜺 = ∑𝑎𝑖 𝑏𝑖 𝜎2 = (𝒂⊤ 𝒃)𝜎2
Cov 𝒍⊤
𝑿⊤
𝑿 −𝟏
𝑿⊤
𝒚, 𝒃⊤
𝒚 = 𝒍⊤
𝑿⊤
𝑿 −𝟏
𝑿⊤
𝒃𝜎2
= 0
よって、
V 𝑳⊤
𝒚 = V 𝒍⊤
𝜽 + 𝑽(𝒃⊤
𝒚)
ゆえに、
V 𝑳⊤ 𝒚 ≥ V 𝒍⊤ 𝜽
𝑳⊤ 𝒚は任意の線形不偏推定量なので、 𝒍⊤ 𝜽 はBLUE
0
Xがランク落ちするときの計算方法
① 正規方程式 𝑿⊤
𝑿 𝜽 = 𝑿⊤
𝒚 の不定解を 𝜽 =
𝑿⊤
𝑿 −
𝑿⊤
𝒚 のように表し、 𝑿⊤
𝑿 −
の代
数的な性質を使って証明する
② データを直交変換により扱いやすい標準
形に変換して証明する
11/16
例2.5 繰り返し測定のモデル:
飲料製品中のエキス含有量[表2.1] p.33
y <- c(37.55, 37.74, 37.69, 37.71, 37.73,
37.81, 37.53, 37.58, 37.74)
j <- rep(1, length(y))
solve(t(j) %*% j) %*% t(j) %*% y
# 37.67556 <- 𝜇
1/length(y) * sum(y)
# 37.67556
12/16
例2.6’ 単回帰データ: コンクリートの養生の温
度条件と圧縮強度の関係[表2.4]p.45
x <- c(2.62, 2.75, 2.85, 2.92, 2.92, 3.05, 3.14,
3.15, 3.23, 3.26, 3.36, 3.44, 3.66, 3.74, 4.04)
y <- c(209, 237, 273, 316, 283, 317, 321, 356,
404, 368, 405, 429, 413, 440, 439)
X <- cbind(rep(1, length(x)), x)
(t1 <- as.vector(solve(t(X) %*% X) %*% t(X)
%*% y))
# [1] -217.9524 176.1747
plot(x, y); abline(as.vector(t1), col="red")
13/16
例2.7 一元配置モデル: 脂肪の種類に対す
る吸収量[表2.2]p.34
theta <- c(64, 72, 68, 77, 56, 95, 78, 91, 97, 82, 85, 77, 75,
93, 78, 71, 63, 76, 55, 66, 49, 64, 70, 68)
(X <- matrix(c(rep(1, length(theta)), rep(1, 6), rep(0, 24),
rep(1, 6), rep(0, 24), rep(1, 6), rep(0, 24), rep(1, 6)),
nc=5))
(t1 <- as.vector(solve(t(X) %*% X) %*% t(X) %*% theta))
# 以下にエラー solve.default(t(X) %*% X) :
# Lapack routine dgesv: システムは正確に特異です: U[5,5] = 0
require(MASS) # for ginv()
(t1 <- as.vector(ginv(t(X) %*% X) %*% t(X) %*% theta))
# [1] 59 13 26 17 3
# mu=59, α1=13, α2=26, α3=17, α4=3.
14/16
2.2.4最小二乗法と制約式
★ 例2.7に、mu=0という制約をつけて解いてみる
(X2 <- matrix(c(rep(1, 6), rep(0, 24), rep(1, 6), rep(0, 24),
rep(1, 6), rep(0, 24), rep(1, 6)), nc=4))
(t2 <- as.vector(solve(t(X2) %*% X2) %*% t(X2) %*%
theta))
#[1] 72 85 76 62
★ 例2.7に、𝜶 𝟏 = 𝟎 という制約をつけてみる
require(MASS) # for ginv()
(X3 <- matrix(c(rep(1, length(theta)), rep(0, 6), rep(0, 24),
rep(1, 6), rep(0, 24), rep(1, 6), rep(0, 24), rep(1, 6)), nc=5))
(t3 <- as.vector(ginv(t(X3) %*% X3) %*% t(X3) %*%
theta))
# [1] 7.200000e+01 -3.478067e-15 1.300000e+01
4.000000e+00 -1.000000e+01
15/16
★ 例2.7に、∑𝜶𝒊 = 𝟎 という制約をつける
theta <- c(64, 72, 68, 77, 56, 95, 78, 91, 97, 82,
85, 77, 75, 93, 78, 71, 63, 76, 55, 66, 49, 64, 70,
68)
(X4 <- matrix(c(rep(1, length(theta)), rep(1, 6),
rep(0, 24), rep(1, 6), rep(0, 24), rep(1, 6), rep(0,
24), rep(1, 6)), nc=5)) # 通常の計画行列
X4[19:24,] <- c(rep(1, 6), rep(-1, 18), rep(0, 6))
X4
(t4 <- as.vector(ginv(t(X4) %*% X4) %*% t(X4)
%*% theta))
# [1] 73.75 -1.75 11.25 2.25 0.00
# mu= 73.75, α1= -1.75, α2=11.25, α3= 2.25,
# α4=-(α1 + α2+ α3 )=-11.75 # -sum(t4[2:4])
16/16
おまけ
MS Officeの数式エディタは、TeXのよう
な入力が可能
例) y_i = beta_0 + beta_1 x_i +
beta_2 x_i^2 + varepsilon_i
𝑦𝑖 = 𝛽0 + 𝛽1 𝑥1 + 𝛽2 𝑥𝑖
2
+ 𝜀𝑖
※ ただし、完全に入力が互換というわ
けではない。
おわり
@足利フラワーパーク