2017-06-20 46 views
0

我想检查熊猫数据框中多个列之间相关性和相关性的显着性。熊猫与统计显着性回归的相关性:(nan,1.0)

用下面的数据帧,我已经构建了以下相关表:

 ARI  Flesch Kincaid  time VIX_close FEDFUNDS 
-2.090000  NaN -3.400000 2016-02-04 20.239333 0.345333  
16.060272 38.489788 14.355616 2016-02-04 20.239333 0.345333 

Correlation Table

当我运行金凯与使用下面的代码一切其他变量优秀作品出来:

stats.pearsonr(master.Kincaid,master.VIX_close) 

但是,当我运行其他变量的类似代码:

stats.pearsonr(master.ARI,master.VIX_close) 

我得到以下输出:

(nan, 1.0) 

我明白,如果ARI的变化这个输出是可以理解的,但这种情况并非如此 - ARI很相似金凯...

红利问题:无论如何要在整个关联表中一次性运行重要性测试吗?提前致谢。

+0

咦?只有ARI和Kincaid在这里有任何变化,所以没有其他变化。我的意思是,你只显示2行数据,而且大多数数据具有相同的值,所以不确定你的期望。如果你有更多的数据,你应该显示它。如果您有1,000行,请不要显示1,000行,但可能需要5到10行数据。 – JohnE

+0

数据确实有所不同,我只放了两行来显示我的数据帧的格式... –

回答

0

大熊猫有一个内置的相关函数对整个数据帧

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.corr.html

也许只是运行master.corr()

计算所有组合运行:

import itertools 
from scipy.stats import ttest_ind, pearsonr 
columns_combinations = [c for c in itertools.combinations(master.columns,2)] 
pearson_calc_df = pd.DataFrame([pearsonr(master[c[0]], master[c[1]]) for c in columns_combinations], 
           index=columns_combinations) 
ttest_calc_df = pd.DataFrame([ttest_ind(master[c[0]], master[c[1]]) for c in columns_combinations], 
           index=columns_combinations) 

虽然方差为零,但您仍然可以获得相关的NaN。

+0

谢谢,那是我用来制作关联表的方法,但是有没有办法测试重要性呢? –

+0

@GrahamStreich请参阅https://stackoverflow.com/questions/2557188​​2/pandas-columns-correlation-with-statistical-significance – oztalha