首页 文章

如何在Python中计算相关比率或Eta?

提问于
浏览
-1

根据这个post的答案,

名义和间隔(“数字”)变量之间最经典的“相关”度量是Eta,也称为相关比率,等于单因子方差分析的根R平方(p值=方差分析) . Eta可以看作对称关联度量,如相关性,因为ANOVA的Eta(标称为独立,数字为依赖)等于Pillai的多元回归轨迹(数值为独立的虚拟变量集对应于名义上的依赖) .

如果你能让我知道如何在python中计算Eta,我将不胜感激 .

事实上,我有一个带有一些数字和一些名义变量的数据框 .

此外,如何为情节绘制热图?

1 回答

  • 1

    答案是here

    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
    

相关问题