在 Power BI (DAX) 中实施二项式假设检验显着性检验

Posted

技术标签:

【中文标题】在 Power BI (DAX) 中实施二项式假设检验显着性检验【英文标题】:Implementing Binomial Hypothesis Testing significance tests in Power BI (DAX) 【发布时间】:2021-06-23 16:31:04 【问题描述】:

这部分是理论问题,部分是实施问题。我的统计数据有点生疏......

我正在编写一份报告,试图确定参考组和选定组之间的发生率差异是否具有统计学意义。

因此,例如,如果某件事发生在一组的 X 次测试中,它是否比“正常”发生在不同(对照组)组的 Y 次测试中具有统计学意义。

所以,我的 H0 是每个对照组的比率是 m 的 Y h1 是与对照组不一样。 (理想情况下,我想使用 1 尾测试,具体取决于观察到的发生率是大于还是小于对照,但我当前的实现是 2 尾)

我对 80% 的 CI 感到满意。

我有(这里有点伪代码):

Zscore = 
   VAR pControl = DIVIDE(COUNT([Control occurrences]), COUNT([Control Tests])) RETURN
   VAR pTest = DIVIDE(COUNT([Test occurrences]), COUNT([Test Tests])) RETURN
   VAR controlStandardError = 
      SQRT(
         DIVIDE(
            (pControl * (1-pControl)
            , COUNT([Control Tests])
          )
      ) RETURN
   VAR testStandardError = 
      SQRT(
         DIVIDE(
            (pTest* (1-pTest)
            , COUNT([Test Tests])
          )
      ) RETURN
DIVIDE(
   (pTest - pControl)
   , SQRT(POWER(testStandardError, 2) + POWER(controlStandardError, 2)
)

然后我在计算:

p-Value = 
   VAR pControl = DIVIDE(COUNT([Control occurrences]), COUNT([Control Tests])) RETURN
   IF(pControl > 0, 
      1 - ABS(NORM.DIST(Zscore, 0, 1, TRUE)
   )

然后我在表格中显示我的每个非空假设并过滤表格以使 p 值小于 0.1。 (2 尾 80%)

我在正确的轨道上吗?还是我完全把这个理论搞砸了?

【问题讨论】:

我只是好奇...你为什么在每个 VAR 后面加上 RETURN? 这是 DAX 语法。 RETURN 表示 VAR 语句的结束。 不不不。 VAR 本身是可以的。 RETURN 之后,您只需告诉要返回的内容。通常你会有很多 VAR,最后只有一个 RETURN。 举个例子,你可以看看我最近的回答:***.com/questions/66797718/#66798491 这是此答案的有用参考:stats.stackexchange.com/questions/113602/… 【参考方案1】:

理论和示例表 - 右尾 (μ > μ₀)

DAX

ControlGroup
XControl = COUNTROWS(FILTER(ControlGroup,ControlGroup[Outcome]=1))
NControl = COUNTROWS(ControlGroup)
pControl = DIVIDE([XControl],[NControl])

TreatmentGroup
XTreatment = COUNTROWS(FILTER(TreatmentGroup,TreatmentGroup[Outcome]=1)) 
NTreatment = COUNTROWS(TreatmentGroup)
pTreatment = DIVIDE([XTreatment],[NTreatment])

Test Parameters
PooledProportion = 
DIVIDE(
    [XTreatment]+[XControl],
    [NTreatment]+[NControl]
)

ZCritivalValue = NORM.S.INV(0.90)

ZValue = DIVIDE(
[pTreatment]-[pControl],
SQRT(
    [PooledProportion]*(1-[PooledProportion])*((1/[NTreatment])+(1/[NControl]))
)
)

可视化(示例)

【讨论】:

以上是关于在 Power BI (DAX) 中实施二项式假设检验显着性检验的主要内容,如果未能解决你的问题,请参考以下文章

数据可视化之DAX篇(二十二)一文搞懂Power BI中的排名问题

Power BI DAX 度量:考虑视觉对象的筛选上下文,计算列中值的出现次数

Power BI--DAX函数总结

Power BI DAX CountIF 查询

Power BI DAX 度量计算

Power BI 使用 DAX 将八位 yyyymmdd 转换为日期