112 日目(晴れ)なぜ代走が三倍満をアガる
フリーリはワンパンで倒せることが判明。暑いのでこのまま消灯して寝る。床で。
朝に目が覚める。洗濯物を洗濯機に押し込んで運転開始してまた床に倒れる。 50 分して起きてテレビの電源を入れる。洗濯物を干す。朝飯は納豆とレーズンロール。 西部警察のティアードロップ型グラサンは継承者がなかなか現れない。
10:10 昨晩の数学ノートの後半を書き終わる。外出までまだ間がある。 ワイドショーなどを観て時間をつぶす。11:00 前に外出。バス停に向かう。 バスで四ツ木橋南詰に移動。そこから歩いて八広図書館へ。
朝刊を読む。豊島名人陥落。相手も強いから仕方がない。 産経の学習コーナーの女子生徒が黒ノースリーブ。毎回このコーナーの衣装をチェックするのが密かな趣味。
窓際のキャレルで PC 作業。今日は特に利用者が多いので、長時間席にいないようにと放送が流れてしまう。 スタコラサッサと逃げる。
13:45 ビッグエー墨田八広店。218 円。
- ふっくらおむすびとろサーモン
- キャベツメンチカツドッグ
- パンケーキメープル&マー
おむすびとキャベメンを完食したところでバス到着のタイミング。横川へ。
横川コミュニティー会館図書室。週刊文春と教科書を読む。計算用紙が尽きた。
オリナスへ移動。タイトー F ステーションオリナス錦糸町店で避暑兼うさ晴らし。 MJ 幻球乱舞東風で最後のワンクレまで着順がほぼ一様で球の終始もほぼトントンだったのに、 最後のゲームでひどい一人沈みを食らって、そのゲームだけでマイナ 6 個。
今日は東一局通信障害が二回あった。CPU 雀士が一巡目でメンチンリーチをかける。 まさかの三倍満振り込みで呆れた。
20:30 カスミオリナス錦糸町店。334 円。オリジンのチキンカツ弁当。
20:55 ビッグエー墨田業平店。277 円。
- 絹豆腐 (3)
- 小粒納豆 (3)
- ふっくらおむすび辛子明太子
- 大きなおむすび梅おかか
向島の部屋に戻る。シャワーを浴びるが、もちろん涼しくなるわけではない。 半沢直樹を横目に晩飯を食う。弁当と豆腐で腹いっぱいになって、パンケーキがまた手つかずになる。
蒐集ファイルの整理などをする。
23:30 数学ノートを見直す。今日は相関係数の定義まで。検定は明日に回す。 暑くて自習どころではない。
地獄のレベル上げを進める。まだゲージの半分。
Math Notes
フィッティング。
相関図 a.k.a. 散布図
回帰直線。由来:子の身長・両親の身長の中央値を関係付ける直線。
最小二乗法。大きさ $n$ の標本の組 $(x_1, y_1), \dotsc, (x_n, y_n)$ がある。 $x$ と $y$ の間に近似的に $y = a + bx$ という関係が成り立つと仮定する。
誤差 $e_i \coloneqq y_i - (a + b x_i).$ 線形回帰モデル。
以下、各 $e_i$ は互いに独立で、平均 $0$ の確率分布に従うとする。
誤差をできるだけ小さくするように $a, b$ を決定する。特に
\[Q \coloneqq \sum_{i = 1}^n e_i^2\]を最小にする $a, b$ を最小二乗法という。
回帰モデルより $Q = \sum(y_i - (a + b_i))^2$ は $a, b$ の二変数関数 $Q(a, b)$ とみなせる。すると極値を求めることができる。
\[\begin{aligned} \frac{\partial Q}{\partial a} = \frac{\partial Q}{\partial b} = 0 \end{aligned}\]が必要であるので、
\[\begin{aligned} & \frac{\partial Q}{\partial a} = -2\left(\sum y_i - na - b\sum x_i\right) = 0.\\ \therefore \quad & \bar y - a - b\bar x = 0.\\ % & \frac{\partial Q}{\partial b} = -2\left(\sum x_iy_i - a\sum x_i - b\sum x_i^2\right) = 0.\\ \therefore \quad & s_{xy} + \bar x \bar y - \bar x a - (s_x^2 + \bar x^2)b = 0. \end{aligned}\]ただし $s_{xy}$ とは次で定義される量とする。標本共分散:
\[\begin{aligned} s_{xy} \coloneqq \frac{1}{n}\sum(x_i - \bar x)(y_i - \bar y) = \frac{1}{n}\sum x_i y_i - \bar x \bar y. \end{aligned}\]$a, b$ について解くと:
\[a = \bar y - \frac{s_{xy} \bar x}{s_x^2},\quad b = \frac{s_{xy}}{s_x^2}.\]この $a, b$ を標本回帰係数という。
標本相関係数。$C_{xy} \coloneqq \dfrac{s_{xy} }{s_x s_y}$ とおくと
\[a = \bar y - C_{xy}\bar x\frac{s_y}{s_x},\quad b = C_{xy}\frac{s_y}{s_x}.\]直線を表す式が求まった:
\[y - \bar y = C_{xy}\frac{s_y}{s_x}(x - \bar x).\]例題:生徒 $10$ 人の物理と数学の試験の点数は次のようだった。標本回帰係数と相関係数を計算しろ。
| 物理 | 数学 |
|---|---|
| 74 | 85 |
| 63 | 70 |
| 78 | 82 |
| 86 | 83 |
| 65 | 75 |
| 58 | 70 |
| 93 | 90 |
| 83 | 77 |
| 75 | 76 |
| 70 | 78 |
解:標本平均や標本分散は出来合いのもので計算する。
>>> import numpy as np
>>> x = np.array([79, 63, 78, 86, 65, 58, 93, 83, 75, 70])
>>> y = np.array([85, 70, 82, 83, 75, 70, 90, 77, 76, 78])
>>> xbar = x.mean(); ybar = y.mean(); xbar, ybar
(75.0, 78.6)
>>> sx2 = x.var(); sy2 = y.var(); sx2, sy2
(109.2, 37.24000000000001)
標本共分散:
>>> sxy = sum(x * y) / x.size - xbar * ybar
>>> sxy
56.5
標本回帰係数:
>>> a = ybar - sxy * xbar / sx2; a
39.79505494505494
>>> b = sxy / sx2; b
0.5173992673992673
標本相関係数:
>>> from math import sqrt
>>> Cxy = sxy/sqrt(sx2*sy2); Cxy
0.8859970838860786
この値が $1$ にかなり近いので、相関があると言える。 $\blacksquare$
なお、SciPy にある scipy.linalg.lstsq を用いれば回帰係数は一発で出る。
ただし標本データを定義してからこの関数を呼び出すまでの手順が少し面倒だ。
>>> A = np.c_[x[:, np.newaxis], np.ones(x.shape[0])]
>>> B = y
>>> from scipy.linalg import lstsq
>>> c, residues, rank, sigma = lstsq(A, B)
>>> c
array([ 0.51739927, 39.79505495])
誤差の分散。$C_{xy}$ が $0$ に近いほどばらつきが大きく、$\pm 1$ に近いほど直線に近づくことがわかる。
$e_i$ の平均が $0$ であるので、$Q$ の定義式を少し変形すると誤差の分散を表せる。
\[s_e^2 \coloneqq \frac{Q}{n} = \sum\frac{e_i^2}{n}.\]変形その一:
\[\begin{aligned} s_e^2 &= \frac{1}{n}\sum (y_i - (a + b_i))^2\\ &= \frac{1}{n}\sum((y_i - \bar y) - b(x_i - \bar x))^2\\ &= \frac{1}{n}\sum(y_i - \bar y)^2 - \frac{2b}{n}\sum(y_i - \bar y)(x_i - \bar x) + \frac{b^2}{n}\sum(x_i - \bar x)^2.\\ \end{aligned}\]変形その二:
\[\begin{aligned} s_e^2 &= s_y^2 - 2bs_{xy} + b^2 s_x^2\\ &= s_y^2 - 2\frac{s_{xy}^2}{s_x^2} + \frac{s_{xy}^2}{s_x^4}s_x^2\\ &= s_y^2 - \frac{s_{xy}^2}{s_x^2}\\ &= s_y^2 - \frac{s_x^2 s_y^2 C_{xy}^2}{s_x^2}\\ &= s_y^2(1 - C_{xy}^2). \end{aligned}\]例:さっきの試験。
>>> sy2
37.24
>>> Cxy
0.8859970838860786
>>> Cxy**2
0.784990832654635
>>> se2 = sy2 * (1 - _); se2
8.006941391941394
相関係数の意味。もうやっていたと思うがやっていなかった。
- 値は $-1$ から $+1$ をとる。
- 意味は二つの変数の直線関係の度合いである。
- 符号に応じて正の相関、負の相関があるという。
以上