統計勉強しなおし
『多変量解析の理論と実践』より、t検定をちゃんと数式からやり直そう、と思い勉強。
ついでにpythonでガリガリ計算してみました。
もっとよい方法(関数)があるのだろうけど取り合えず見つけた関数をトライ&エラー。つかれた・・
まず標本相関係数rを計算。rの計算式を置いときます。Texで記載チャレンジ!
import math import numpy as np #広告費 adv = [8.5,6.6,7.0,6.3,6.0,5.5,13.0,12.3,9.3,5.9,8.3,6.1] #売り上げ uri = [450,350,300,320,310,330,550,560,450,330,360,320] #データ数 Dn = len(adv) #平均値 ave_adv = np.mean(adv) ave_uri = np.mean(uri) #偏差積和 Hensa_adv = [d- ave_adv for d in adv] Hensa_uri = [d- ave_uri for d in uri] Sxy = sum([x * y for (x,y) in zip(Hensa_adv, Hensa_uri)]) Sxx = sum(np.power(Hensa_adv,2)) Syy = sum(np.power(Hensa_uri,2)) #標本相関係数 r = Sxy / (math.sqrt(Sxx)*math.sqrt(Syy)) print (r) # 散布図かくよ import matplotlib.pyplot as plt plt.scatter(adv, uri)
r = 0.9543790784669018
相関係数0.95、相関バリバリですね。
さらにここからt検定の式にあてはめます。
#t値を計算 t = r*(np.sqrt((Dn-2)/(1-r**2))) print(t)
t = 10.107284282176632
を得ました(教科書ではrの小数点を3位までしか使っていなかったので、数値が少し違います)。
t分布表の(自由度Φ, 優位水準α)=(10, 0.05)を調べると、t = 2.228
出力結果と比べて、10.107 > 2.228 なので、「広告費と売上額に相関は無いよ」という帰無仮説を棄却して
「広告費と売上額に相関があります、もっと広告すれば売り上げ増えるっぽいです」という結論になりました。めでたし。
・・・授業を受けていた時から思っていたのですが、この帰無仮説を棄却して~対立仮説を採択して~というのが分かりづらいんですよね。現役の頃はさっぱりわからず、試験の結果もギリギリだった気がします。
「理論は知ってる」のですが、再勉強するならこの辺も腑に落ちるようにしたいですね。あと数式の幾何学的な意味とかもわかれば面白い。
相関係数がプロットの「楕円み」を表すのはさっき知りました!(今更)
ではでは