大熊猫相关性与统计显着性回归:(nan,1.0)

时间:2017-06-20 19:05:38

标签: python pandas scipy pearson-correlation

我想检查一下pandas数据帧中多列之间的相关性和相关性。

使用以下数据帧,我构建了以下相关表:

      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

当我使用以下代码运行Kincaid与其他变量时,一切正常:

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

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

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

我得到以下输出:

(nan, 1.0)

据我所知,如果ARI的变化可以理解,那么情况并非如此 - ARI与Kincaid非常相似......

奖金问题:无论如何,一次性在整个关联表中运行显着性检验?提前谢谢。

1 个答案:

答案 0 :(得分:0)

Pandas有一个内置的相关函数来对整个数据框运行

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。