tak0kadaの何でもノート

発声練習、生存確認用。

医学関連は 医学ノート

正規確率プロットやその他の確率プロット - 「Think Stats」第4章

正規確率プロットを試してみる。ややこしめの関数が出てきたら使いたい。縦軸は与えられたリスト、横軸はそのrankit(順序統計量)に対応する正規乱数である。

def norm_probplot(L, m=1):
    rand = np.random.normal(size=(m*(len(L)+1)-1, 1000))[m-1::m]
    rand.sort(axis=0)
    pylab.xlabel('standard normal values')
    pylab.ylabel('survival days')
    pylab.scatter(np.mean(rand, axis=1), np.sort(L))

正規確率プロットで第2章の大腸癌のサンプルをプロットしてみた。

f:id:kuyata:20140502140224p:plain

これを直線と言っていいかは場合によりそう。

自分も実験していまいち納得していないが、与えられたリストの長さが小さい場合はmの値を大きくすればいいそうな。

追記

norm_probplot(np.hstack((np.random.normal(1,size=100),np.random.normal(8,size=100))))

とすれば、

f:id:kuyata:20140502144657p:plain

となるので、二つの正規分布に従う集団の合成されたものとして近似できるかも。