假设检验_样本容量选取20211204


目录:

  1.     OC 函数或者实行特征函数
  2.     第一类错误第二类错误
  3.     Z检验的OC函数
  4.    t检验的OC 函数
  5.   两个正态总体均值差的t检验OC 函数

    一   OC 函数或者实行特征函数

         如果C是参数\theta的某个检验问题的检验法:

        \beta(\theta)=P_{\theta}(H_0)

       其曲线成为OC 曲线。

      这里要检验的是在统计量落于置信区间内的时候,犯第二类错误的原因。

      


二  第一类错误第二类错误

    

    第一类错误: 实际是真的,预测值为假的。我们通过

 \alpha来控制该概率

    第二类错误: 实际是假的,预测值为真的,我们通过

 \beta 来控制该概率


 三   Z检验的OC函数

      3.1 OC 右边检验

       \beta(u)=P_u(H_0)=P_u\begin{Bmatrix} \frac{\bar{x}-u_0}{\sigma/\sqrt{n}}<Z_{\alpha} \end{Bmatrix}=\Phi (Z_{\alpha}-\frac{u-u_0}{\sigma/\sqrt{n}})

      \lambda = \frac{u-u_0}{\sigma/\sqrt{n}},  要检查犯第二类错误(u>u_0),是关于\lambda单调递减函数

    设:   u>u_0+\xi

    \beta(u)<\beta(u_0+\varepsilon )=\beta(也是小于0.5的数,越小越好)

     z_{\alpha}-\frac{\varepsilon }{\sigma/\sqrt{n}}<-z_{\beta}

   \sqrt(n)>(z_{\alpha}+z_{\beta})/a

   a=\frac{\varepsilon }{\sigma}

  从大于0开始看是递减的

   3.2 OC 左边检验

    \beta(u)=P_{u}\begin{Bmatrix} \frac{\bar{x}-u_0}{\sigma/\sqrt{n}}>-t_{\alpha} \end{Bmatrix}

     =\Phi(z_{\alpha}+\lambda)

     \lambda = \frac{u-u_0}{\sigma/\sqrt{n}}

   其中 u<u_0

  3.3 OC 双边检验

  

     \beta(u)=P(H_0)=P_{u}\begin{Bmatrix} -z_{\alpha/2} <\frac{\bar{X}-u_0}{\sigma/\sqrt{n}}<z_{\alpha/2} \end{Bmatrix}

         =\Phi (z_{\alpha/2}-\lambda)+\Phi(z_{\alpha/2}+\lambda)-1

         \lambda =\frac{u-u_0}{\sigma/\sqrt{n}}

           得到   \sqrt{n}\geq (z_{\alpha/2}+z_{\beta})\frac{\sigma}{\varepsilon }

        

      3.4 例

          设有一批产品,产品质量的指标x服从正态分布,以U小为佳。厂方要求所确定的验收方案

对高质量的产品(u\leq u_0),能以高概率1-\alpha为买方所接受,买方要求低质产品(u\geq u_0+\delta ,\delta >0,能以高概率1-\beta被拒绝。

         已知: u_0 =120, \delta =20,\sigma^2=900,\alpha=0.05,\beta=0.05

       解

             这是一个单边检验

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

        n =25

   


四  t 检验的0C 函数

     这是一种非中心的T 分布

    

      4.1  单边:  右边检验:H_0: u \leq u_0,H: u > u_0的t 检验法的OC函数是

                              \beta(u)=P_u(H_0)=P_u\begin{Bmatrix} \frac{\bar{x}-u_0}{S/\sqrt{n}} \end{Bmatrix}

         其中变量:

          t=\frac{\bar{X}-u_0}{S/\sqrt{n}}=(\frac{\bar{X}-u}{\sigma/\sqrt{n}}+\lambda)/(S/\sigma)

         \lambda = \frac{u-u_0}{\sigma/\sqrt{n}}

       符合非中心参数\lambda,自由度n-1的非中心t 分布(from scipy.stats import nct)

      这里面的推导过程,也是比较疑惑的地方

      右边检验的OC函数:

       \lambda =\frac{u-u_0}{\sigma/\sqrt{n}}

       P_{u>u_0}\begin{Bmatrix} \frac{\bar{X}-u}{\sigma/\sqrt{n}}/(s/\sigma)\leq t_{\alpha} (n-1)-\lambda /(s/\sigma)\end {Bmatrix}\leq \beta

          t_{\alpha}(n-1)-\lambda(s/\sigma)\leq -t_{\beta}(n-1)

      得到:   \sqrt{n}\geq \frac{t_{\alpha}(n-1)+t_{\beta}(n-1)}{\delta }

        \delta =\frac{u-u_0}{s},因为样本方差的数学期望等于方差,

       所以

        \delta =\frac{u-u_0}{\sigma}

       这个一直每找到详细的证明过程,按照这个求解方法和表格基本一致。

                

4.2 双边检验的例子

     \sqrt{n}\geq (t_{\alpha/2}(n-1)+t_{\beta}(n-1))/(\frac{|u-u_0|}{\sigma})

  

     \delta =\frac{|u-u_0|}{\sigma}

4.3 数理统计表7计算方法

  

# -*- coding: utf-8 -*-
"""
Created on Thu Dec 16 20:23:18 2021

@author: cxf
"""

import numpy as np
from scipy.stats import nct
import matplotlib.pyplot as plt




def 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 to
nct.pdf(y, df, nc) / scale with y = (x - loc) / scale.
Unilateral, bilateral
'''
def unil(alpha=0.05,beta=0.05,sigma = 1.0):
    
    
    minN = -1

    for n in range(3,200):
        
        
        #nc = sigma*np.sqrt(n)
        nc = 0.0
        q1 = 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 = n
            return
        else:
            continue
        
        
    print("\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)/delta
        if np.sqrt(n)>=c:
            print("\n  n ",n,"\t a:%4.2f---b:%4.2f"%(a,b))
            break
            
unil(0.05,0.1,0.25)
bila(0.05,0.1,0.4)

4.4 例 考虑显著水平\alpha = 0.05 进行t 检验

       H_0: u_0\leq 68, H_1\geq 68

   要求在H1 中 u \geq u_1=68+\sigma 时犯第二类错误的概率小于0.05,求样本容量

   解:

     通过上面表格,或者程序可得n=13

 4.5 样本容量为30\alpha = 0.05\sigma=\frac{u-u_0}{\sigma}=0.75,求解\beta

    得到0.01

   差表,或者通过下面算法可得

  

def GetBeta(n,alpha,delta):
    
    nc = 0
    q1 = nct.isf(alpha,n-1,nc)
    q2 = delta*np.sqrt(n)
    
    x =q1-q2
    beta = nct.cdf(x,n-1,0)
    
    print("beta %3.2f--x%4.2f"%(beta,x))

 4.6 考虑在显著水平0.05 进行t 检验,\delta =\frac{|u-u_0|}{\sigma}\geq 0.4 犯第二类错误的概率小于0.1,求样本容量

   解:

    双边检验例子,通过查表或者上面算法可得n =68

4.7 当方差未知情况下如何处理,只有\alpha,\beta,|u_1-u_0|

        先抽取n1个样本,\alpha,\beta,\delta,查表7 ,定出样本容量,如果n1>=n2,则n =n1

        否则再取n2-n1个样本与原样本合并\alpha,\beta,\delta

        查表7 得n3,n2如果大于等于n3

        则n=n2,否则递归下去



五 两个正态总体均值差的t检验OC 函数

     若两个正态总体

     N(u_1,\sigma_1^2),N(u_2,\sigma_2^2)

     \sigma_1^2=\sigma_2^2=\sigma^2

    在均值差的检验问题

   H_0:u=u_0,H_1:u-u_1 \neq 0

  可以参考上面的方法

     


 

 解:

      两个差值服从自由度为n-1的  t 检验

       H_0: u_A-u_B<5, H_1 u_A-u_B>5

       step1: 

        计算 n_A=n_B=12,\bar{X_A}=80.83,\bar{X_B}=78.67

              S_A^2=5.61,\S_B^2=6.06

       step2

             通过F检验,计算方差

            知道在显著水平0.1的F检验,两者方差相等

           \sigma_A^2=\sigma^2=\sigma_B^2

           通过矩估计法

          \sigma^2=\sigma_A^2=S_A^2,\sigma^2=\sigma_B^2=S_B^2

         \sigma=^2=\frac{S_A^2+S_B^2}{2}=5.835

        step3

           通过\delta =\frac{5}{\sigma}=2.07

          查 表 7(还是均值的t样本容量)\alpha=0.01,\beta=0.01,\delta=2.07

           n>=8,因为n =12 已经满足要求OC函数

           取伪概率很低

        step4  右边的拒绝域为

         

      t=\frac{\bar{X_A}-\bar{X_B}}{s_w\sqrt{1/n_A+1/n_B}}\geq t_{0.01}(n_A+n_B-2)

     n_A=n_B=12,t=2.508

     因为观察样本t=2.19

      接受H0

     注: 这里因为n_A=n_B 所以查表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-1
    dn =  n-1
    
    f_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.0
    print("\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)/sigma
    n =unil(0.01,0.01,delta)
    print("\n OC 函数求n",n)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值