在之前的假设检验文章中我们说过,在样本量固定的情况下,第一类错误的减少必然会导致第二类错误的增加。按照之前的例子,原假设依旧是一家馒头店每天卖出100个馒头,现在如果减少第一类错误(也就是减少显著性水平

α

α

α),也就是如果抽样结果是90-110之间都可以认为这家店店每天卖出100个馒头。相比于认为抽样结果是95-105之间才接受这个原假设,显然有更大的概率认为原假设是正确的(接受

H

0

H_0

H0​的概率增加),这会导致对应的两种情况原假设为真和原假设为假的概率都增加,对应第二类错误的概率(

β

β

β)增加。

而在实际应用中,我们通常希望可以同时控制第一类错误和第二类错误的概率,从而使正确率更高,这时候就要求抽样是要选取充足的样本量。如何选取样本量使第二类错误的概率控制在预先的范围里呢?为此我们引入OC函数(施行特征函数):

定义:如果C为参数

θ

\theta

θ的某检验问题的一个检验法,那么我们设

β

(

θ

)

=

P

θ

(

接受

H

0

)

\beta(\theta)=P_\theta(\mathrm{接受} ~ H_0)

β(θ)=Pθ​(接受 H0​)为检验法C的施行特征函数或者OC函数,图形称为OC曲线。
也就是

β

(

θ

)

\beta(\theta)

β(θ)是在参数为

θ

\theta

θ的情况下接受原假设

H

0

H_0

H0​的概率。

如果这个检验法的显著性水平为

α

\alpha

α,那么当真值

θ

H

0

\theta \in H_0

θ∈H0​时,

β

(

θ

)

\beta(\theta)

β(θ)为做出正确判断( 在原假设

H

0

H_0

H0​为真时接受原假设

H

0

H_0

H0​)的概率,如果

θ

H

1

\theta \in H_1

θ∈H1​ ,那么这个时候

β

(

θ

)

\beta(\theta)

β(θ)就是犯了第Ⅱ类错误的概率。对应的

1

β

(

θ

)

1-\beta(\theta)

1−β(θ)就是作出正确判断的概率,我们称现在这个时候的函数

1

β

(

θ

)

1-\beta(\theta)

1−β(θ) 为C的功效函数。对于某一个具体的点

θ

H

1

\theta^*\in H_1

θ∗∈H1​,这个函数表示它在这个点的功效。也就是作出正确判断的概率

正态总体均值检验法的OC函数

Z检验法

首先来看右边检验。它的假设是

H

0

:

μ

μ

0

,

H

1

:

μ

>

μ

0

H_0:\mu \le \mu_0,H_1:\mu > \mu_0

H0​:μ≤μ0​,H1​:μ>μ0​。

我们首先推导它的OC函数。我们注意到,在右边检验中,它的拒绝域满足条件为

X

ˉ

μ

0

σ

/

n

z

α

\frac{\bar X-\mu_0}{\sigma/\sqrt{n}}\ge z_\alpha

σ/n

​Xˉ−μ0​​≥zα​ 。那么对应的OC函数为:

β

(

μ

)

=

P

μ

(

接受

H

0

)

=

P

μ

{

X

ˉ

μ

0

σ

/

n

<

z

α

}

=

P

μ

{

X

ˉ

μ

σ

/

n

<

z

α

μ

μ

0

σ

/

n

}

=

Φ

(

z

α

λ

)

\beta(\mu)=P_\mu(接受H_0)=P_\mu\left\{\frac{\bar X-\mu_0}{\sigma/\sqrt{n}}<z_\alpha\right\}=P_\mu\left\{\frac{\bar X-\mu}{\sigma/\sqrt{n}}<z_\alpha-\frac{\mu-\mu_0}{\sigma/\sqrt{n}}\right\}=\Phi(z_\alpha-\lambda)

β(μ)=Pμ​(接受H0​)=Pμ​{σ/n

​Xˉ−μ0​​<zα​}=Pμ​{σ/n

​Xˉ−μ​<zα​−σ/n

​μ−μ0​​}=Φ(zα​−λ)
其中

λ

=

μ

μ

0

σ

/

n

\lambda=\frac{\mu-\mu_0}{\sigma/\sqrt{n}}

λ=σ/n

​μ−μ0​​,

Φ

\Phi

Φ是正态分布累积函数,有:

Φ

(

z

α

)

=

1

α

\Phi(z_\alpha)=1-\alpha

Φ(zα​)=1−α.OC函数对应的函数图像如下:


这个函数有如下的性质

1.为

λ

=

μ

μ

0

σ

/

n

\lambda=\frac{\mu-\mu_0}{\sigma/\sqrt{n}}

λ=σ/n

​μ−μ0​​的单调递减连续函数
2.

lim

μ

μ

0

+

β

(

μ

)

=

1

α

,

lim

μ

β

(

μ

)

=

0

\lim_{\mu \to \mu_0^+}\beta(\mu)=1-\alpha,\lim_{\mu \to \infty}\beta(\mu)=0

limμ→μ0+​​β(μ)=1−α,limμ→∞​β(μ)=0 ,这是由概率函数的右连续性决定的

很显然我们希望

μ

>

μ

0

\mu > \mu_0

μ>μ0​时函数的值都可以降到

β

\beta

β以下,但是因为

μ

0

\mu_0

μ0​这个边界点的存在我们做不到让所有的处于拒绝域的值犯第Ⅱ类错误的概率都很低,因为必然会存在在

μ

0

\mu_0

μ0​附近的

μ

μ

>

μ

0

\mu(\mu > \mu_0)

μ(μ>μ0​)使

β

(

μ

)

\beta(\mu)

β(μ)几乎等于

1

α

1-\alpha

1−α.而为了控制第一类错误发生的概率,

α

\alpha

α都设置的很小,所以无论样本量

n

n

n 多大,对于所有的

μ

>

μ

0

\mu > \mu_0

μ>μ0​,即真值为

H

1

H_1

H1​所规定的任意一点,控制犯第二类错误的概率都很小是不可能的。但是可以让

μ

>

μ

0

\mu > \mu_0

μ>μ0​时

β

(

μ

)

\beta(\mu)

β(μ)的值,也就是犯第二类错误的概率可以急剧下降,这样当

μ

μ

0

+

δ

\mu \ge \mu_0+\delta

μ≥μ0​+δ时犯第二类错误的概率

β

\beta

β都可以很小。其中

δ

\delta

δ是人为给定的,很明显

δ

\delta

δ越小说明检验法的准确程度越高。

所以最终得到的计算公式为:

β

(

μ

0

+

δ

)

=

Φ

(

z

α

n

δ

/

σ

)

β

\beta(\mu_0+\delta)=\Phi(z_\alpha-\sqrt{n}\delta/\sigma)\le \beta

β(μ0​+δ)=Φ(zα​−n

​δ/σ)≤β
化简可得

z

α

n

δ

/

σ

z

β

z_\alpha-\sqrt{n}\delta/\sigma \le -z_\beta

zα​−n

​δ/σ≤−zβ​

对于左边检验,按照同样的逻辑和步骤,你会发现结果是一样的

从而计算得出Z检验单侧检验的最小样本量计算公式:

n

(

z

α

+

z

β

)

σ

δ

\sqrt{n} \ge \frac{(z_\alpha+z_\beta)\sigma}{\delta}

n

​≥δ(zα​+zβ​)σ​
这个时候我们就能使得

μ

H

1

μ

μ

0

+

δ

\mu \in H_1\mathrm{~ 且~}\mu \ge \mu_0+\delta

μ∈H1​ 且 μ≥μ0​+δ的时候,它犯第Ⅱ类错误的概率不超过

β

\beta

β 。

下面来看双边假设检验。
双边检验问题

H

0

:

μ

=

μ

0

,

H

1

:

μ

μ

0

H_0:\mu=\mu_0,H_1:\mu \neq \mu_0

H0​:μ=μ0​,H1​:μ=μ0​的OC函数为:

β

(

μ

)

=

P

μ

(

接受

H

0

)

=

P

μ

{

z

α

/

2

<

X

ˉ

μ

0

σ

/

n

<

z

α

/

2

}

=

Φ

(

z

α

/

2

λ

)

+

Φ

(

z

α

/

2

+

λ

)

1

\beta(\mu)=P_\mu(接受H_0)=P_\mu\left\{-z_{\alpha/2}<\frac{\bar X-\mu_0}{\sigma/\sqrt{n}}<z_{\alpha/2}\right\}=\Phi(z_{\alpha/2}-\lambda)+\Phi(z_{\alpha/2}+\lambda)-1

β(μ)=Pμ​(接受H0​)=Pμ​{−zα/2​<σ/n

​Xˉ−μ0​​<zα/2​}=Φ(zα/2​−λ)+Φ(zα/2​+λ)−1
其中

λ

=

μ

μ

0

σ

/

n

\lambda=\frac{\mu-\mu_0}{\sigma/\sqrt{n}}

λ=σ/n

​μ−μ0​​,

Φ

\Phi

Φ是正态分布累积函数。OC函数对应的函数图像如下:

在这种情况下,我们需要解超越方程

β

=

Φ

(

z

α

/

2

n

δ

/

σ

)

+

Φ

(

z

α

/

2

+

n

δ

/

σ

)

1

\beta=\Phi(z_{\alpha/2}-\sqrt{n}\delta/\sigma)+\Phi(z_{\alpha/2}+\sqrt{n}\delta/\sigma)-1

β=Φ(zα/2​−n

​δ/σ)+Φ(zα/2​+n

​δ/σ)−1确定n,但是一般来说

n

n

n总是很大的,因此我们可以认为

Φ

(

z

α

/

2

+

n

δ

/

σ

)

1

\Phi(z_{\alpha/2}+\sqrt{n}\delta/\sigma) \approx 1

Φ(zα/2​+n

​δ/σ)≈1 ,也就是说我们只需要满足不等式

Φ

(

z

α

/

2

n

δ

/

σ

)

β

\Phi(z_{\alpha/2}-\sqrt{n}\delta/\sigma) \le \beta

Φ(zα/2​−n

​δ/σ)≤β ,解得

n

(

z

α

/

2

+

z

β

)

σ

δ

\sqrt{n} \ge(z_{\alpha/2}+z_\beta)\frac\sigma\delta

n

​≥(zα/2​+zβ​)δσ​,这就是Z检验在双侧检验的情况下最小样本量的公式。

t检验法

对于t检验的右侧检验的OC函数为

β

(

μ

)

=

P

μ

{

X

ˉ

μ

0

S

/

n

<

t

α

(

n

1

)

}

\beta(\mu)=P_\mu\left\{\frac{\bar X-\mu_0}{S/\sqrt{n}}<t_\alpha(n-1)\right\}

β(μ)=Pμ​{S/n

​Xˉ−μ0​​<tα​(n−1)}
其中有:

X

ˉ

μ

0

S

/

n

=

(

X

ˉ

μ

σ

/

n

+

λ

)

/

(

S

σ

)

,

λ

=

μ

μ

0

σ

/

n

\frac{\bar X-\mu_0}{S/\sqrt{n}}=(\frac{\bar X-\mu}{\sigma/\sqrt{n}}+\lambda)/(\frac{S}{\sigma}),\lambda=\frac{\mu-\mu_0}{\sigma/\sqrt{n}}

S/n

​Xˉ−μ0​​=(σ/n

​Xˉ−μ​+λ)/(σS​),λ=σ/n

​μ−μ0​​
解出这个具体的值超出了我们所学的内容。但是如果给定了

α

,

β

,

δ

\alpha,\beta,\delta

α,β,δ,我们查表是可以得到需要的样本量

n

n

n的,这样使得

μ

H

1

\mu \in H_1

μ∈H1​且

μ

μ

0

σ

δ

\frac{\mu-\mu_0}{\sigma} \ge \delta

σμ−μ0​​≥δ犯第Ⅱ类错误的概率不超过

β

\beta

β。

要注意这里的不等式不再是

μ

μ

0

δ

\mu-\mu_0 \ge \delta

μ−μ0​≥δ而是

μ

μ

0

σ

δ

\frac{\mu-\mu_0}{\sigma} \ge \delta

σμ−μ0​​≥δ

双边检测时,对应的不等式为

μ

μ

0

σ

δ

\frac{|\mu-\mu_0|}{\sigma} \ge \delta

σ∣μ−μ0​∣​≥δ

但是在实际的应用中

σ

\sigma

σ一般是不知道的,这是就没有办法通过

δ

=

μ

μ

0

σ

\delta=\frac{|\mu-\mu_0|}{\sigma}

δ=σ∣μ−μ0​∣​来计算

δ

\delta

δ并查表得到样本量了。可以按照如下步骤来近似算一下:首先适当的取一个值

n

1

n_1

n1​ ,抽取容量为

n

1

n_1

n1​的样本,并根据这一样本计算出

s

2

s^2

s2的值,以

s

2

s^2

s2作为

σ

2

\sigma^2

σ2的估计值计算得到

δ

\delta

δ的近似值,代入查表得到

n

2

n_2

n2​。如果

n

1

n

2

n_1 \ge n_2

n1​≥n2​,则取

n

1

n_1

n1​作为样本容量。如果

n

2

n_2

n2​更大,那么就抽取

n

2

n

1

n_2-n_1

n2​−n1​个样本补充进原样本,按照一样的步骤计算

s

2

,

δ

s^2,\delta

s2,δ ,然后查表得到

n

3

n_3

n3​ ,若

n

2

n

3

n_2 \ge n_3

n2​≥n3​,则取

n

2

n_2

n2​作为样本容量,否则继续上述计算步骤。

样本量的确定与OC函数的更多相关文章

  1. OC与Swift的区别五(函数)

    13 函数 oc函数定义: 返回值类型 函数名(参数类型 参数名,参数类型 参数名){ } swift 函数定义: func 函数名(参数名:参数类型,参数名:参数类型) -> 返回值类型{ } ...

  2. swift项目中使用OC/C的方法

    假如有个OC类OCViewController : UIViewController类里有两个方法 //swift调用oc或c的混编是比较常用的,反过来的调用很少.这里只写了swift调用oc和c的方 ...

  3. oc - runtime运行机制

      Objective-C语言是一门动态语言,它将很多静态语言在编译和链接时做的事放到了运行时来处理.同时OC也是一门简单的语言,很大一部分是C的内容,只是在语言层面上加了关键字和语法,真正让OC强大 ...

  4. Xcode中c++&Object-C混编,详细介绍如何在cocos2dx中访问object函数以及Apple Api

    转自:http://www.himigame.com/iphone-cocos2dx/743.html Cocos2dx系列博文的上一篇详细介绍了如何在Xcode中利用jni调用Android的Jav ...

  5. oc中的类学习笔记1

    1.oc中的类和构造方法 NSAutoreleasePool * pool =[[NSAutoreleasePool alloc] init]; NSAutoreleasePool是一个类,alloc ...

  6. Objective-c 总结(一):OC类的设计

    (一)学习目标: 1.面向对象基本概念: OOP的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在整个解决问题步骤中的行为. 2.熟悉OC类的定 ...

  7. OC语言(一)

    一.概述 1.基本上所有关键词@开头 2.字符串以@开头,如@"Hello" 3.基本数据类型 char int float double BOOL(YES\NO) 4.空为nil ...

  8. iOS OC和JS的交互 javaScriptCore方法封装

    一.javaScriptCore javaScriptCore是一种JavaScript引擎,主要为webKit提供脚本处理能力,javaScriptCore是开源webkit的一部分,他提供了强大的 ...

  9. ios oc调用swift framework

    1.oc 调用swift /*oc调用swift, project name为DeomOC: 1.oc工程DemoOC中显式创建一个swift文件,生成DemoOC-Bridging-Header.h ...

  10. Runtime应用防止按钮连续点击 (转)

    好久之前就看到过使用Runtime解决按钮的连续点击的问题,一直觉得没啥好记录的.刚好今天旁边同时碰到这个问题,看他们好捉急而且好像很难处理,于是我先自己看看… 前面自己也学习了很多Runtime的东 ...

随机推荐

  1. FastAPI依赖注入:链式调用与多级参数传递

    title: FastAPI依赖注入:链式调用与多级参数传递 date: 2025/04/05 18:43:12 updated: 2025/04/05 18:43:12 author: cmdrag ...

  2. Spring AI与DeepSeek实战四:系统API调用

    一.概述 在 AI 应用开发中,工具调用 Tool Calling 是增强大模型能力的核心技术.通过让模型与外部 API 或工具交互,可实现 实时信息检索(如天气查询.新闻获取).系统操作(如创建任务 ...

  3. FastAPI数据库集成与事务管理

    title: FastAPI数据库集成与事务管理 date: 2025/04/18 00:15:34 updated: 2025/04/18 00:15:34 author: cmdragon exc ...

  4. [笔记]关于JavaScript定时器如何清除和重启

    定时器的清除和重启方法: // var t=setInterval(fun1,500) //fun1是你的函数 var fun1=function(){ //写入你的函数; } clearInterv ...

  5. Spring Kafka: UnknownHostException: 34bcfcc207e0

    参考: https://stackoverflow.com/questions/69527813/spring-kafka-unknownhostexception-34bcfcc207e0 我遇到的 ...

  6. vue3 基础-列表渲染

    本篇讲列表渲染, 主要是对 v-on 指令配合 v-if 和一些数组相关的方法来体验 vue 的模板渲染方法. 数组元素的渲染 <!DOCTYPE html> <html lang= ...

  7. LangChain4j如何自定义文档转换器实现数据清洗?

    LangChain4j 提供了 3 种 RAG(Retrieval-Augmented Generation,检索增强生成)实现,我们通常在原生或高级的 RAG 实现中,要对数据进行清洗,也就是将外接 ...

  8. 在CentOS 7虚拟机上正确安装Redis

    在CentOS 7虚拟机上正确安装Redis,可以按照以下步骤进行操作: 更新系统软件包:sudo yum update 安装Redis依赖库:sudo yum install epel-releas ...

  9. wireshark的所有入门指令(总结与摘要)

    wireshark的所有指令 常用捕获过滤器 1.基于IP地址进行捕获 host 10.3.1.1 dst host 10.3.1.1 net 192.168.1.0/24 net 192.168.1 ...

  10. Github Copilot 实战: 从零开始用AI写一个OCR工具 (1)

    最近AI很火,咱也尝试一下由浅入深探索一下 Github Copilot 的能力和底限. 使用的环境是 Windows11 + Microsoft Visual Studio Enterprise 2 ...