如何计算离散变量和二进制(0,1)变量之间的相关系数

时间:2018-06-25 02:44:27

标签: python pandas

我现在正在处理如下所示的熊猫数据框(mxn):

     X1 X2 X3 X4 X5  Xn-1 Y
0    a b c d e f ... a    0
1    e c a a b b ... c    1
2    d e f a c c ... f    1
.    ...   ....  ... .    .
.    ...   ....  ... .    .
.    ...   ....  ... .    .
m-1  f b c d a a ... c    0

第X1到第(n-1)列由字母'a','b','c','d'或'f'组成,列['Y']由二进制0或1组成。

现在,我想计算每个Xi和Y之间的相关系数,我应该使用哪个对数?我应该使用Kendall tu吗?但是,似乎kendall tu适用于具有一定等级顺序的varialbes,例如X = [1,2,3,4,5],Y = [3,5,7,9,11],但是我的数据没有没有任何等级顺序。 “ a”,“ b”,“ c”,“ d”,“ e”,“ f”和“ 0”,“ 1”彼此完全独立。肯德尔方法可以应用于这种情况吗?有没有更好的方法可以应用?

我可以应用超大型kendall tu,并使用以下代码计算相关性:

les = []
  x = data[:,:n-1]
  for i in range(x.shape[1]):
    le = preprocessing.LabelEncoder()
    le.fit(x.iloc[:,i])
    les.append(le)
    x.iloc[:,i] = le.transform(x.iloc[:, i])

for i in range(x.shape[1]):
    print "site = ", cols[i]
    df['X'] = x.iloc[:,i]
    corr = df.corr(method='kendall')
    corr_value.append(corr.iloc[0,1])

我发现某些Xi的相关系数是'nan',为什么?

您能帮我解决这个问题吗?预先谢谢你!

0 个答案:

没有答案