Как рассчитать коэффициент корреляции или Eta в Python? - PullRequest
0 голосов
/ 29 августа 2018

Согласно ответу на этот пост ,

Наиболее классической «корреляционной» мерой между номинальной и интервальной («числовой») переменной является Eta, также называемая коэффициентом корреляции, и равная корневому квадрату R одностороннего ANOVA (с p-значением = что из ANOVA). Эту можно рассматривать как меру симметричной ассоциации, например, корреляцию, потому что Эта ANOVA (с номиналом в качестве независимого, с числовым в качестве зависимого) равна трассе многомерной регрессии Пиллая (с числовым в качестве независимого набора фиктивных переменных, соответствующих номинальный как зависимый).

Буду признателен, если вы дадите мне знать, как вычислять Eta в python.

На самом деле у меня есть фрейм данных с некоторыми числовыми и некоторыми номинальными переменными.

Кроме того, как построить тепловую карту, как график для нее?

1 Ответ

0 голосов
/ 29 августа 2018

Ответ предоставляется здесь :

def correlation_ratio(categories, measurements):
        fcat, _ = pd.factorize(categories)
        cat_num = np.max(fcat)+1
        y_avg_array = np.zeros(cat_num)
        n_array = np.zeros(cat_num)
        for i in range(0,cat_num):
            cat_measures = measurements[np.argwhere(fcat == i).flatten()]
            n_array[i] = len(cat_measures)
            y_avg_array[i] = np.average(cat_measures)
        y_total_avg = np.sum(np.multiply(y_avg_array,n_array))/np.sum(n_array)
        numerator = np.sum(np.multiply(n_array,np.power(np.subtract(y_avg_array,y_total_avg),2)))
        denominator = np.sum(np.power(np.subtract(measurements,y_total_avg),2))
        if numerator == 0:
            eta = 0.0
        else:
            eta = numerator/denominator
        return eta
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...