想對兩個或兩個以上因子彼此之間是否相互獨立作檢驗時,就要用到卡方檢驗,原覺得在Python中實現會像R的chisq.test同樣簡便,但scipy的stats模塊功能實在分得太細,以前查到的是stats中的chisquare方法,但嘗試事後發現chisquare其實是作適合性檢驗的。 html
e.g. 三種農藥的殺蟲數據python
殺蟲效果 | 甲 | 乙 | 丙 |
---|---|---|---|
死亡數 | 37 | 49 | 23 |
未死亡數 | 150 | 100 | 57 |
分析殺蟲效果與農藥類型是否有關數組
import numpy as np from scipy.stats import chi2_contingency d = np.array([[37, 49, 23], [150, 100, 57]]) chi2_contingency(d)
輸出爲:
(7.6919413561281065,
0.021365652322337315,
2,
array([[ 48.99759615, 39.04086538, 20.96153846],
[ 138.00240385, 109.95913462, 59.03846154]]))markdown
第一個值爲卡方值,第二個值爲P值,第三個值爲自由度,第四個爲與原數據數組同維度的對應理論值post
具體參考文檔:scipy.stats.chi2_contingencyspa