卡方和假设检验的正确使用?

机器算法验证 假设检验 统计学意义 Python 卡方检验 实验设计
2022-04-02 05:42:52

我有一个数据集,其中包含有关客户及其在我们的业务旅程中的行为的大量数据,其中一个行为是他们参加了多少我们的活动,另一个行为是他们是否从我们这里购买。我正在测试这样一个假设,即参加活动会使某人更有可能进行购买。

对于这个问题,我使用了以下假设: H_0:两组之间进行购买的人的百分比没有差异。H_1:参加过活动的人的购买百分比高于没有参加过活动的人。

为了检验这些假设,我制作了一个列联表,如下所示:

进行了购买 没有购买
参加了一个活动 190 1350
没有参加活动 983 15588

然后使用 scipy.stats 函数 'chi2_contingency()' 进行独立性测试。我认为使用卡方检验或费舍尔精确检验是正确的,但由于样本量很大,所以卡方更合适:

chistat, pvalue, dof, ex = chi2_contingency(cont_df)
print(chistat, pvalue)

然后给出了输出:

(94.39478042474279, 2.5847291047881143e-22)

我认为这表明,当使用 0.05 的显着性水平时,参加活动的组和未参加活动的组之间进行交易的概率之间存在统计学上的显着差异,因此拒绝了原假设。

这是我第一次将假设检验应用于现实世界的问题,因此如果有人能指出我的过程/理解中的任何缺陷,我将不胜感激。我的主要问题在于,参加活动的人可能已经更有可能进行购买,因此这并不一定证明这两个变量之间存在任何因果关系。除此之外,如果有一个控制组,它甚至没有参加活动的选择权,即收到我们发送的宣传活动的电子邮件,岂不是更好。然后使用一组作为知道事件的组和一组不知道事件的组进行测试,看看这两组之间的购买转化率是否存在统计学上的显着差异?

3个回答

您的所有担忧都是有效的,并且表达得很好。卡方检验只是提供了出席和购买之间存在关联的证据的权重。任何因果关系都是额外的解释层,在许多情况下是无法验证的。人们可以接受许多因果假设。

随机分配人们参加或不参加活动可以让您就出席对购买的影响做出更强有力的因果推理论证。这是因为通过随机化,研究中的每个受试者参加活动的可能性相同(从长远来看,两组之间受试者特征的分布是相同的)。购买行为的任何差异都可以单独归因于出勤率。

这并不意味着所有的观察性研究都是无用的。这只是意味着你必须在每一个陈述前加上“假设没有不可测量的混杂因素……[在此处插入因果陈述]”,或者声明调查结果显示了一种关联,而无需推测因果性质。我通常两者都做,从后者开始,以前者结束。

附录:如果您在参加和未参加的人之间的预后因素不平衡,那么对于因果推断,您至少有两个选择:1)调整结果模型并解释参加在各个子组中的影响(主要影响,相互作用)。对于因果推断,您可以考虑绘制因果图以了解协变量应如何进入模型。2) 使用 IPTW 重新加权观察结果。这平衡了治疗组之间测量的预后协变量,使样本看起来好像是随机试验的结果。结果模型可以仅使用出勤率的主效应进行分析。出勤效果的因果推断适用于整个人群。无论采用哪种方法,结果的因果解释都需要以“

卡方检验的另一种版本是prop.testR 中的程序。在参加活动的人中,购买者的比例,在参加活动的人中,购买者的比例\没有参加活动。问题是在 5% 的水平上是否存在显着差异。p^a=190/1540=0.1234p^n=893/16571=0.0593p^ap^n

测试如下所示。(由于样本量相对较大,我拒绝了连续性校正。)

有时,输出prop.test比(等效)卡方检验的输出更容易解释。

prop.test(c(190,983), c(1540, 16571), cor=F)

        2-sample test for equality 
        of proportions without continuity correction

data:  c(190, 983) out of c(1540, 16571)
X-squared = 95.449, df = 1, p-value < 2.2e-16
alternative hypothesis: two.sided
95 percent confidence interval:
 0.04724175 0.08087049
sample estimates:
   prop 1    prop 2 
0.1233766 0.0593205 

我同意@GeoffreyJohnson 的回答 (+1) 关于制作更强大案例的设计。但是,卡方检验也可以看作是两个分类变量是否独立的检验。正如您所做的那样,正确地说,您从当前数据得出的结论是有效的。您已经显示了统计关联,而不是因果关系。

为了比较,我在 R 中显示了chisq.test程序的输出(没有 Yates 的更正):

TAB = rbind(c(190, 983), c(1350, 15588))
TAB
     [,1]  [,2]
[1,]  190   983
[2,] 1350 15588

chisq.test(TAB, cor=F)

        Pearson's Chi-squared test

data:  TAB
X-squared = 95.449, df = 1, p-value < 2.2e-16

在浅层次上,您所做的分析足以向业务展示。这很重要。

现在,“我们的营销好不好,人们会因为这些事件而购买产品吗?” 与“我们是否应该继续举办这些活动,如果是,有多少?”完全不同。也许事件让人们对公司感觉更好,而不是产品。也许再举办 10 场活动,您会卖出 3 倍的东西。也许您会以少 5 倍的活动来销售尽可能多的东西。您的分析确实显示了事件和购买之间的相关性,但并没有回答企业可能暗示的所有问题,而是提出了一个完全不同的并且可能更复杂的问题。

这使得您将重点放在沟通上,并确保“是的,事件可能对销售有利”不会转化为一些无法控制和无法衡量的行为。

关于问题本身的主题 - 接下来要做的一件事是对您的客户进行分类。有些是回头客,有些是先购买产品然后参加活动以获得对他们的支持,有些确实是被营销所吸引......更好地理解这种结构应该为您提供处理“我们应该做什么”类问题的工具. 更广泛地说,考虑一些常见的客户参与度指标:您已经在帖子中提到了其中一些指标,但这是一个发达的领域——首先进行研究(几乎)总是一个好主意;)