プログラミング論 I 2009年7月16日 相関 http://www.ns.kogakuin.ac.jp/~ct13140/Prog.2009/ I-1 概要 • 相関 – データ群とデータ群の関連性の強さを考える – 話は理論的.難易度は低め. – 理系として「相関係数」くらいは知っていて欲し い… I-2 相関 I-3 相関 • "相関"とは,二つのデータ列の, 関連性,連動性(一緒に動くか)のこと. – 例:人間の身長と体重は関係がある. 身長が大きいと,体重が大きい(傾向にある). • 相関係数とは,二つのデータ列の相関の 強さを表す統計値. 相関係数は-1~1の間をとる. -1に近いと強い負の相関. 0に近いと相関が弱い. 1に近いと強い正の相関. I-4 各人の身長と体重の分布 900 800 700 体重 600 500 400 300 200 100 0 500 1000 1500 2000 身長 身長の値が大きい人ほど, 体重の値も大きい傾向にある. (身長と体重は連動して動く) 相関がある I-5 相関の強さ 350 900 800 300 700 足の長さ 体重 600 500 400 300 200 250 200 150 100 100 0 500 1000 1500 2000 身長 「身長」の値が大きいと, 「足の長さ」の値が大きい傾向にある. 「身長」と「足の長さ」には相関がある. しかも,右の方が「相関が強い」 500 1000 1500 2000 身長 相関の強さを 数値化した統計値が, 相関係数 I-6 「平均との偏差」同士の比較 身長偏差>0 体重偏差>0 の人たち 体重-平均体重 600 身長偏差<0 体重偏差>0 の人たち 400 200 0 -600 -400 -200 0 200 400 身長偏差×体重偏差 =正の数×正の数 =正の数 600 -200 身長偏差>0 -400 体重偏差<0 身長偏差<0 身長-平均身長 の人たち この分布の例では, 体重偏差<0 「偏差の積」は の人たち 正の数の例が多い. 全員の「偏差の積」を 身長偏差×体重偏差 合計したら,正となる. =負の数×負の数 =正の数 正の相関 I-7 共分散 • 「偏差の積」の平均が「共分散」 身長偏差>0 体重偏差>0 の人たち 体重-平均体重 600 身長偏差<0 体重偏差>0 の人たち 400 200 0 -600 -400 -200 0 200 400 600 -200 身長偏差<0 体重偏差<0 の人たち 身長偏差>0 -400 体重偏差<0 身長-平均身長 の人たち I-8 共分散が正:正の相関 • xが増えると, yは増える傾向がある. 100 80 60 40 20 y 0 -100 -50 -20 0 50 100 -40 「偏差の積」は, 正であるものが多い. -60 -80 -100 「偏差の積」の平均は,正である. (偏差の積の平均=共分散) x I-9 共分散が負:負の相関 • xが増えると, yは減る傾向がある. 100 80 60 40 20 y 0 -100 -50 -20 0 50 100 -40 「偏差の積」は, 負であるものが多い. -60 -80 -100 「偏差の積」の平均は,負である. (偏差の積の平均=共分散) x I-10 共分散がゼロ:無相関 • xとyは, 連動して動かない. 100 80 60 40 20 y 0 -100 -50 -20 0 50 100 -40 「偏差の積」は, 正と負が同程度. -60 -80 -100 「偏差の積」の平均は,ゼロである. (偏差の積の平均=共分散) x I-11 共分散の大きさ と 相関の強さ 100 100 100 80 80 80 60 60 60 40 40 40 20 20 20 -50 -20 0 50 100-100 -50 0 y 0 y y 0 -100 -20 0 50 100-100 -50 -20 0 -40 -40 -40 -60 -60 -60 -80 -80 -80 -100 -100 -100 x x 50 100 x 共分散が正. 大きな正の値. 共分散は正だが, 大きな値ではない. 共分散は ゼロ. 強い正の相関 弱い正の相関 無相関 I-12 共分散 • 共分散の大小は,相関の強さを表す. – 共分散が大きいほど,正の相関が強い. – 共分散がゼロに近いと,相関が弱い. – 共分散が小さいほど,負の相関が強い. • xが増えたら,yは減る傾向にある. • ただし,元の値が大きいと,共分散の値は 大きくなる.(共分散の絶対値を理解しづらい) – 同じデータでも, 身長[cm]と体重[g]の共分散の値は大きく, 身長[m]と体重[Kg]の共分散の値は小さい. I-13 相関係数 • 共分散の値を標準偏差(データの散らばりの大き さ)の積で割った値が,相関係数. xと yの共分散 xと yの相関係数 xの標準偏差 yの標準偏差 • 相関係数は,-1から+1の値となる. -1.0 -0.7 -0.3 +0.3 +0.7 ~ ~ ~ ~ ~ -0.7 -0.3 +0.3 +0.7 +1.0 : : : : : 強い負の相関 ある程度(?)負の相関がある 相関は弱い. ある程度(?)正の相関がある 強い正の相関がある. I-14 標準偏差 • ただし,標準偏差とは以下のもの nは,データの個数 n 1 1 x xk n k 0 n 1 1 ( xk x) 2 n k 0 2 2 xの平均 xの分散 xの標準偏差 I-15 標準偏差とは • 「平均50点の数学の試験で60点を取った」と 「平均50点の英語の試験で60点を取った」は 同程度にすごいことなのか? 数学 (標準偏差 5) 8 8 7 7 6 6 5 5 人数 [人] 人数 [人] 英語 (標準偏差10) 4 3 4 3 2 2 1 1 0 0 0 10 20 30 40 50 60 70 点数 [点] 80 90 100 110 0 10 20 30 40 50 60 70 点数 [点] 80 90 100 110 I-16 正規分布 と 標準偏差 • 正規分布なら, 「平均±標準偏差」 の範囲に約68%, 「平均±2×標準偏差」 の範囲に約95%の 人がいる. • この例では,40点~ 60点の範囲に68%の 人がいる. 英語 (標準偏差10) 4.5 4 3.5 人数 [人] 3 2.5 2 1.5 1 0.5 0 0 10 20 30 40 50 60 70 点数 [点] 80 90 100 110 I-17 相関係数 • 相関係数は,一次の相関の強さを 1.2 表現する. 1 0.8 右図のxとyは, 密接な関係があるように 見えるが, 相関係数は,ほぼゼロとなる. (相関係数=-0.016) 0.6 0.4 0.2 0 -1.2 -1 -0.8 -0.6 -0.4 -0.2 0 -0.2 0.2 0.4 0.6 0.8 1 1.2 -0.4 -0.6 -0.8 -1 -1.2 I-18 相関係数のプログラミング double x[100], y[100]; x[0] = 1.2; y[0] = 3.4; x[1] = 5.6; y[1] = 7.8; : と,x[0]~x[99] と y[0]~y[99]がある. x[i] と y[i] の相関係数を求めるには? I-19 x[0]~x[99]の平均 I-20 x[0]~x[99]の平均 double sum, x_avr; int i; x_sum = 0.0; for(i=0; i<100; i++){ x_sum += x[i]; } x_avr = x_sum/100; I-21 共分散 (1/2) • x[i] の「平均に対する偏差」 ??? • x[i]とy[i]の「偏差の積」 ??? I-22 共分散 (1/2) • x[i] の「平均に対する偏差」 x[i]-x_avr • x[i]とy[i]の「偏差の積」 (x[i]-x_avr)*(y[i]-y_avr) I-23 共分散 (2/2) • x[] と y[] の共分散. I-24 共分散 (2/2) • x[] と y[] の共分散. d_sum = 0.0; for(i=0; i<100; i++){ d_sum += (x[i]-x_avr)*(y[i]-y_avr); } cov = d_sum/100; /* d_sum が偏差の積の合計, cov が共分散 */ I-25 標準偏差 • x[]の標準偏差 /* x_dis がxの分散, x_st_devがxの標準偏差 */ I-26 標準偏差 • x[]の標準偏差 x_ds_sum = 0.0; for(i=0; i<100; i++){ x_ds_sum += (x[i]-x_avr)*(x[i]-x_avr); } x_dis = x_ds_sum/100; x_st_dev = sqrt(x_dis); /* x_dis がxの分散, x_st_devがxの標準偏差 */ I-27 x[]とy[]の相関係数 • 相関係数=共分散/(x標準偏差×y標準偏差) I-28 x[]とy[]の相関係数 • 相関係数=共分散/(x標準偏差×y標準偏差) cov / x_st_dev / y_st_dev I-29 実は xと yの共分散 相関係数 xの標準偏差 yの標準偏差 • 分子と分母の, 1/n は消せる. 1 n 1 ( xk x)( yk y ) n k 0 n 1 1 n 1 1 2 2 ( x x ) ( y y ) k k n k 0 n k 0 n 1 ( xk x)( yk y) k 0 n 1 n 1 k 0 k 0 2 ( x x ) k 2 ( y y ) k I-30
© Copyright 2024 ExpyDoc