根据这个post的答案,
名义和间隔(“数字”)变量之间最经典的“相关”度量是Eta,也称为相关比率,等于单因子方差分析的根R平方(p值=方差分析) . Eta可以看作对称关联度量,如相关性,因为ANOVA的Eta(标称为独立,数字为依赖)等于Pillai的多元回归轨迹(数值为独立的虚拟变量集对应于名义上的依赖) .
如果你能让我知道如何在python中计算Eta,我将不胜感激 .
事实上,我有一个带有一些数字和一些名义变量的数据框 .
此外,如何为情节绘制热图?
答案是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
1 回答
答案是here: