【问题标题】:Implementing Binomial Hypothesis Testing significance tests in Power BI (DAX)在 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。
  • 举个例子,你可以看看我最近的回答:stackoverflow.com/questions/66797718/#66798491
  • 这是此答案的有用参考:stats.stackexchange.com/questions/113602/…

标签: powerbi dax hypothesis-test


【解决方案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]))
)
)

可视化(示例)

【讨论】:

    猜你喜欢
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2022-08-13
    • 2021-12-29
    • 2021-07-13
    • 2020-06-30
    • 1970-01-01
    相关资源
    最近更新 更多