从相关系数中找出p值

时间:2013-04-12 08:28:41

标签: python python-2.7

我有一个包含相关值的字典,

{u'1306': -0.20028268502286309, u'678': nan, u'575': -0.41858161444186959,   u'889': nan, u'984': -1.0, u'258': nan, u'1203': -0.34074604870778746, u'1000': -0.39718585102729265}

如何找到上述结果的p值,我使用下面的代码来获取值

def calculate_pvalue(self,data,size):
    self.data=data
    self.size=size
    self.pvalue=self.data*math.sqrt((self.size-2)/(1-pow(self.data,2)))
    return(self.pvalue)

我得到的结果如下,

{u'1306': -109.51766328031098, u'678': nan, u'1203': -194.16993218970686, u'889': nan, u'984': -inf, u'258': nan, u'575': -246.9217742472556, u'1000': -231.85995387407439}

但我的问题是p值必须是概率吗?如何获得上述相关性的p值,我的步骤是否正确以找到相关性?

1 个答案:

答案 0 :(得分:0)

您正在计算 t 的值,如下所述:http://en.wikipedia.org/wiki/Pearson_product-moment_correlation_coefficient#Testing_using_Student.27s_t-distribution

然后,您应该从学生的 t -distribution中查找 p 值。

请参阅How to calculate the statistics “t-test” with numpy