假设检验中的第二类错误与R编程
在这篇文章中,我们将看到什么是 假设检验 中的错误 ,假设检验中出现的 不同类型的错误 ,以及 如何计算它们。 假设是我们在为数据制定模型时假设为真的各种假设的总和。 用R编程计算假设中的第二类错误非常容易。
什么是假设检验中的误差
在假设检验中,误差是对某一特定假设的批准或拒绝的估计。 假设检验中 主要有 两种类型的错误 。
- 第一类错误(也被称为阿尔法错误) :第一类错误发生在我们拒绝 “空 “假设,但 “空 “假设是正确的。这种情况也被称为假阳性。
- 第二类错误(也被称为β错误) :第二类错误发生在我们未能消除 “空头假设”,而 “空头假设 “是不正确的/替代假设是正确的。这种情况也被称为假阴性。
注意
P(X)是事件X发生的概率。
Ho = 空白假说
Ha = 替代假设
- 第一类错误的数学定义: P(拒绝Ho 的概率/Ho 为真的概率)= P(拒绝Ho |Ho 为真)。
- 第二类错误的数学定义: P(未能剔除Ho 的概率/Ho 为假的概率) = P(接受Ho | Ho 为假)
例子:陪审团/法院
在这个例子中,我们考虑的是陪审团/法院对一个案件的决定。陪审团可以决定的两个决定是罪犯有罪和无罪。因此,在假设下有两个假说。对于每一个决定,真相可能是:罪犯真的有罪和罪犯在现实中无罪。因此,有两种类型的错误。
- Ho = 无罪
- Ha = 有罪
在上面的例子中。
- 第一类错误将是。无辜者入狱
- 第二类错误将是。有罪被释放
如何在R编程中计算第二类错误
第二类错误可以通过使用以下公式计算。但是在这篇文章中,我们要用R编程来计算 第二类错误 。
**P(未能删除H o 的概率/Ho 为假的概率) = P(接受Ho |Ho 为假) **
用R语言计算第二类错误的代码 。
# A small function to calculate
# the type II error in R
typeII.test <- function(mu0, TRUEmu, sigma, n,
alpha, iterations = 10000){
pvals <- rep(NA, iterations)
for(i in 1 : iterations){
temporary.sample <- rnorm(n = n, mean = TRUEmu,
sd = sigma)
temporary.mean <- sd(temporary.sample)
temporary.sd <- sd(temporary.sample)
pvals[i] <- 1 - pt((temporary.mean - mu0)/(temporary.sd / sqrt(n)),
df = n - 1)
}
return(mean(pvals >= alpha))
}
首先,复制上面的函数并在R studio中运行它。然后这样做。
# Calculating the type II error
# on a dummy Set
# sample size
n = 10
# standard deviation
sigma = 3
# significance level
alpha = 0.03
# hypothetical lower bound
mu0 = 4
# assumed actual mean
TRUEmu = 10
# applying the function
typeII.test(mu0, TRUEmu, sigma, n,
alpha, iterations = 10000)
输出
[1] 3e-04
把不同的值放在假人集上
# Calculating the type II error
# on a dummy Set
# sample size
n = 10
# standard deviation
sigma = 5
# significance level
alpha = 0.03
# hypothetical lower bound
mu0 = 4
# assumed actual mean
TRUEmu = 10
# applying the function
typeII.test(mu0, TRUEmu, sigma, n,
alpha, iterations = 10000)
输出
[1] 0.0599