2017-05-26 31 views
2

我希望能找到P值。我來自更多的統計背景,對於Python來說是相當新穎的。有沒有任何軟件包可以讓我做到這一點?我正在關注「從頭開始的數據科學」一書,並且有些被卡在了假設檢驗和推理上。如何在Python中進行假設測試?

+0

也許[SciPy包](http://docs.scipy.org/doc/)可以做到,[chi-square]上有一個頁面(http://docs.scipy.org/doc/scipy /reference/generated/scipy.stats.chisquare.html#scipy-stats-chisquare) – davedwards

+0

[如何計算兩個浮點列表的p值?](https://stackoverflow.com/questions/29561360/how-to -calculate-p-value-for-two-lists-of-floats),[來自t-statistic的Python p值](https://stackoverflow.com/questions/17559897/python-p-value-from-t -statistic)也可能有幫助/相關 – davedwards

回答

0

SciPy的包有很多的統計材料整體模塊,包括假設檢驗和內部的分佈函數:scipy.stats

例如,這是你如何測試一個隨機樣本使用柯爾莫哥洛夫正態分佈-Smirnov測試:

import numpy as np 
from scipy.stats import norm, pareto, kstest 

n = 1000 
sample_norm = norm.rvs(size=1000) # generate normally distributed random sample 
sample_pareto = pareto.rvs(1.0, size=1000) # sample from some other distribution for comparison 

d_norm, p_norm = kstest(sample_norm, norm.cdf) # test if the sample_norm is distributed normally (correct hypothesis) 
d_pareto, p_pareto = kstest(sample_pareto, norm.cdf) # test if the sample_pareto is distributed normally (false hypothesis) 

print('Statistic values: %.4f, %.4f' % (d_norm, d_pareto)) 
print('P-values: %.4f, %.4f' % (p_norm, p_pareto)) 

正如你可以看到kstest返回統計值和p值。 norm.cdf表示正態隨機變量的累積分佈函數。

+0

這更多的是我一直在尋找的感謝!只是一對夫婦跟進問題。首先,在你提供的代碼中,你在哪裏描述無效和替代假設?你是否爲這些價值賦予了價值? 「sample_norm」和「sample_pareto」的值是否只是隨機值? – rmahesh

+0

'sample_norm'和'sample_pareto'基本上只是從正態分佈和帕累託分佈中抽取的數字數組。在這個例子中,我只是通過調用具有給定2個參數的'kstest'函數來測試零假設「sample_norm是否正常分發」,而不是「替代sample_norm不正常分發」,而不是我爲'sample_pareto'做同樣的事情。所以你可以看到它不像是假設本身是在代碼的某個地方定義的,但它們被代碼隱含起來:) – Slippy

+0

完美的非常感謝你!我一直在尋找一種方法來做到這一點,並獲得P值,這似乎是它! – rmahesh

相關問題