有 3 列说product_id,product_type和price_drop。product_id是唯一的,而产品可以属于 100 个类别,信息由 product_type 给出。当产品价格下降时,price_drop 列的值为 1,否则为 0。我所做的是,我对该product_type列进行了一次热编码,为它们创建了虚拟变量。使用每个虚拟变量,我计算了它们与price_drop列的相关性。我想看看每种产品类型与价格下降之间的相关性。这种方法是否正确?
关于计算相关方法的问题?
数据挖掘
相关性
数据分析
描述性统计
2022-02-18 23:44:51
1个回答
最有可能的是,您正在使用 Pearson 的相关方法。此方法用于两个连续特征。
在这里,price_drop 和 OHE 特征都是二元分类特征。
因此,您可以使用这些方法 -
Phi - Phi 是衡量两个二元变量(两个分类变量,每个变量只能具有两个值之一)之间关联程度的量度
Cramer's
V - Cramer's V 是 phi 的扩展大于 2×2 的表。
两者都是独立卡方检验的扩展。
由于两个特征都有 2 个值,因此上述两种方法都将输出相同的结果。
# dataset is your DataFrame
s1 = dataset['Status']
s2 = dataset[product_type_OHE_01]
import pandas as pd
from scipy.stats import chi2_contingency
n = len(s1)
r,c = s1.nunique(), s2.nunique()
matrix = pd.crosstab(s1,s2).values
chi_sq = chi2_contingency(matrix)
phi = np.sqrt(chi_sq[0]/n)
cramm_V = np.sqrt(chi_sq[0]/(n*min(r-1,c-1)))
print(phi, cramm_V)