如何最好地以图形方式显示 II 型(beta)误差、功效和样本量?

机器算法验证 r 教学 统计能力
2022-02-09 01:18:47

我被要求写一篇关于统计的介绍,我正在努力如何以图形方式显示 p 值和功率相关的方式。我想出了这个图表:

两条高斯曲线相互作用

我的问题:有没有更好的显示方式?

这是我的 R 代码

x <- seq(-4, 4, length=1000)
hx <- dnorm(x, mean=0, sd=1)

plot(x, hx, type="n", xlim=c(-4, 8), ylim=c(0, 0.5), 
ylab = "",
xlab = "",
main= expression(paste("Type II (", beta, ") error")), axes=FALSE)
axis(1, at = c(-qnorm(.025), 0, -4), 
     labels = expression("p-value", 0, -infinity ))

shift = qnorm(1-0.025, mean=0, sd=1)*1.7
xfit2 <- x + shift
yfit2 <- dnorm(xfit2, mean=shift, sd=1)

# Print null hypothesis area
col_null = "#DDDDDD"
polygon(c(min(x), x,max(x)), c(0,hx,0), col=col_null)
lines(x, hx, lwd=2)

# The alternative hypothesis area

## The red - underpowered area
lb <- min(xfit2)
ub <- round(qnorm(.975),2)
col1 = "#CC2222"

i <- xfit2 >= lb & xfit2 <= ub
polygon(c(lb,xfit2[i],ub), c(0,yfit2[i],0), col=col1)

## The green area where the power is
col2 = "#22CC22"
i <- xfit2 >= ub
polygon(c(ub,xfit2[i],max(xfit2)), c(0,yfit2[i],0), col=col2)

# Outline the alternative hypothesis
lines(xfit2, yfit2, lwd=2)

axis(1, at = (c(ub, max(xfit2))), labels=c("", expression(infinity)), 
    col=col2, lwd=1, lwd.tick=FALSE)


legend("topright", inset=.05, title="Color",
   c("Null hypoteses","Type II error", "True"), fill=c(col_null, col1, col2), horiz=FALSE)

abline(v=ub, lwd=2, col="#000088", lty="dashed")

arrows(ub, 0.45, ub+1, 0.45, lwd=3, col="#008800")
arrows(ub, 0.45, ub-1, 0.45, lwd=3, col="#880000")

更新


谢谢你的精彩回答。我更改了一些代码:

# Print null hypothesis area
col_null = "#AAAAAA"
polygon(c(min(x), x,max(x)), c(0,hx,0), col=col_null, lwd=2, density=c(10, 40), angle=-45, border=0)
lines(x, hx, lwd=2, lty="dashed", col=col_null)

...
legend("topright", inset=.015, title="Color",
   c("Null hypoteses","Type II error", "True"), fill=c(col_null, col1, col2), 
       angle=-45,
       density=c(20, 1000, 1000), horiz=FALSE)

我喜欢零假设的虚线、略带模糊的画面,因为它表明它并不真正存在。我已经考虑过透明度并添加了 alfa,但我担心在一张图片中获取太多信息,因此选择不这样做。

在此处输入图像描述

印刷文章的局限性不允许我让读者进行实验。我选择了 @Greg Snow 对 TeachingDemos 的回复作为我的答案,因为我喜欢两个错误不重叠的想法。

3个回答

一些想法:(a)使用透明度,以及(b)允许一些交互性。

这是我的看法,很大程度上是受到关于Type I 和 Type II Errors - Making Mistakes in the Justice System的 Java 小程序的启发由于这是相当纯粹的绘图代码,我将其粘贴为gist #1139310

这是它的外观:

在此处输入图像描述

它依赖于aplpack包(滑块和按钮)。所以,基本上,你可以改变与平均值的偏差H0(固定为 0)和分布下的位置替代。请注意,没有考虑样本量。

我玩过类似的图,发现当 2 条曲线不相互阻挡时效果更好,而是垂直偏移(但仍然在同一个 x 轴上)。这清楚地表明,其中一条曲线代表零假设,另一条曲线代表备择假设下均值的给定值。power.exampR 的 TeachingDemos 包中的函数将创建这些图,并且该函数run.power.examp(同一包)允许您以交互方式更改参数并更新图。

G Power 3是 Mac 和 Windows 上可用的免费软件,具有一些非常好的图形功能,可用于功率分析。主图与您的图和@chl 显示的图大体一致。它使用一条简单的直线来表示零假设和替代假设检验统计分布,并用不同颜色表示 beta 和 alpha 的颜色。

G Power 3 的一个不错的特点是它支持大量常见的功率分析场景,并且 GUI 使学生和应用研究人员可以轻松探索。

这是一张幻灯片的屏幕截图(取自我在描述性统计中给出的演示文稿,其中包含关于功率分析的部分),左侧显示了多个此类图表。如果您选择单尾 t 检验版本,那么它看起来更像您的示例。

g power 3 图表

还可以生成图表,显示与统计功效和假设检验相关的因素(例如,α、效应大小、样本大小、功效等)之间的函数关系。我在这里展示了一些此类图表的示例这是此类图表的一个示例:

在此处输入图像描述