目录:
OC 函数或者实行特征函数 第一类错误第二类错误 Z检验的OC函数 t检验的OC 函数 两个正态总体均值差的t检验OC 函数
一 OC 函数或者实行特征函数
如果C是参数的某个检验问题的检验法:
其曲线成为OC 曲线。
这里要检验的是在统计量落于置信区间内的时候,犯第二类错误的原因。
二 第一类错误第二类错误
第一类错误: 实际是真的,预测值为假的。我们通过
来控制该概率
第二类错误: 实际是假的,预测值为真的,我们通过
来控制该概率
三 Z检验的OC函数
3.1 OC 右边检验
, 要检查犯第二类错误(),是关于单调递减函数
设:
(也是小于0.5的数,越小越好)
从大于0开始看是递减的
3.2 OC 左边检验
其中
3.3 OC 双边检验
得到
3.4 例
设有一批产品,产品质量的指标x服从正态分布,以U小为佳。厂方要求所确定的验收方案
对高质量的产品(),能以高概率为买方所接受,买方要求低质产品(,能以高概率1-被拒绝。
已知:
解
这是一个单边检验
n =25
四 t 检验的0C 函数
这是一种非中心的T 分布
4.1 单边:右边检验:的t 检验法的OC函数是
其中变量:
符合非中心参数,自由度n-1的非中心t 分布(from scipy.stats import nct)
这里面的推导过程,也是比较疑惑的地方
右边检验的OC函数:
得到:
,因为样本方差的数学期望等于方差,
所以
这个一直每找到详细的证明过程,按照这个求解方法和表格基本一致。
4.2 双边检验的例子
4.3 数理统计表7计算方法
# -*- coding: utf-8 -*-"""Created on Thu Dec 16 20:23:18 @author: cxf"""import numpy as npfrom scipy.stats import nctimport matplotlib.pyplot as pltdef Draw():fig,ax = plt.subplots(1, 1)df ,nc= 14,5.24#df 是概率密度x = np.linspace(nct.ppf(0.01,df,nc),nct.ppf(0.99,df,nc),100)ax.plot(x,nct.pdf(x,df,nc),'r-',lw=5,alpha=0.6,label='nct pdf')#pdf 概率密度#cdf 分布函数#pmf 概率质量函数'''单边例子Loc,scale 相当于归一化因子df 自由度nc 中心值nct.pdf(x, df, nc, loc, scale)nct.pdf(x, df, nc, loc, scale) is identically equivalent tonct.pdf(y, df, nc) / scale with y = (x - loc) / scale.Unilateral, bilateral'''def unil(alpha=0.05,beta=0.05,sigma = 1.0):minN = -1for n in range(3,200):#nc = sigma*np.sqrt(n)nc = 0.0q1 = nct.isf(alpha,n-1,nc)q2 = nct.isf(beta,n-1,nc)a = (q1+q2)/(sigma)if np.sqrt(n) >= a :print("\n n ",n)minN = nreturnelse:continueprint("\n-----------end------------",minN)return n'''双边例子'''def bila(alpha =0.05, beta = 0.1,delta =0.4):for n in range(2,100):a = nct.isf(alpha/2.0,n-1,0)b = nct.isf(beta,n-1,0)c =(a+b)/deltaif np.sqrt(n)>=c:print("\n n ",n,"\t a:%4.2f---b:%4.2f"%(a,b))breakunil(0.05,0.1,0.25)bila(0.05,0.1,0.4)
4.4 例 考虑显著水平进行t 检验
要求在H1 中时犯第二类错误的概率小于0.05,求样本容量
解:
通过上面表格,或者程序可得n=13
4.5样本容量为30,,,求解
得到0.01
差表,或者通过下面算法可得
def GetBeta(n,alpha,delta):nc = 0q1 = nct.isf(alpha,n-1,nc)q2 = delta*np.sqrt(n)x =q1-q2beta = nct.cdf(x,n-1,0)print("beta %3.2f--x%4.2f"%(beta,x))
4.6 考虑在显著水平0.05 进行t 检验,犯第二类错误的概率小于0.1,求样本容量
解:
双边检验例子,通过查表或者上面算法可得n =68
4.7当方差未知情况下如何处理,只有
先抽取n1个样本,,查表7 ,定出样本容量,如果n1>=n2,则n =n1
否则再取n2-n1个样本与原样本合并,
查表7 得n3,n2如果大于等于n3
则n=n2,否则递归下去
五 两个正态总体均值差的t检验OC 函数
若两个正态总体
,
在均值差的检验问题
可以参考上面的方法
解:
两个差值服从自由度为n-1的 t 检验
step1:
计算
step2
通过F检验,计算方差
知道在显著水平0.1的F检验,两者方差相等
通过矩估计法
step3
通过
查 表 7(还是均值的t样本容量)
n>=8,因为n =12 已经满足要求OC函数
取伪概率很低
step4 右边的拒绝域为
因为观察样本
接受H0
注: 这里因为所以查表7 ,成对数据的差值,看成单样本的情况。否则查表8
'''hstack()函数函数原型:hstack(tup) ,参数tup可以是元组,列表,或者numpy数组,返回结果为numpy的数组。看下面的代码体会它的含义也就是按水平(按列的顺序)对数据进行堆叠 h就是 horizontal 水平方向上的意思,vstack正好相反''' def GetC():A =np.array([81,84,79,76,82,83,84,80,79,82,81,79])B =np.array([76,74,78,79,80,79,82,76,81,79,82,78])C= np.hstack((A,B))print("\n",np.std(C,ddof=1)**2)A_bar = np.mean(A)B_bar = np.mean(B)SA = np.std(A,ddof =1)SB = np.std(B,ddof =1)n = len(A)df = n-1dn = n-1f_q= f.isf(0.1,df,dn)a = (SA**2)/(SB**2)print("\n F分布检查方差,右边检验 a: %5.2f---f_q %5.2f"%(a,f_q),"\t 自由度: ",n-1)sigma =(SA**2+SB**2)/2.0print("\n step1 A 均值 %5.2f --- B 均值 :%5.2f "%(A_bar,B_bar))print("\n step2 SA 均值 %5.2f --- SB 均值 :%5.2f /t 样本方差 %5.2f "%(SA**2,SB**2,sigma))delta = 5.0/np.sqrt(sigma) #(u-u0)/sigman =unil(0.01,0.01,delta)print("\n OC 函数求n",n)