参数估计4  两个正态总体的区间估计

前言:

   样本\begin{bmatrix} X_1, & X_2, & ... & X_{n_1} \end{bmatrix} \begin{bmatrix} Y_1, & Y_2, & ... & Y_{n_2} \end{bmatrix}

  分别来自 N(u_1,\sigma_1^2),N(u_2,\sigma_2^2),他们相互独立,

其样本均值和样本方差已知,置信水平为1-\alpha

目录:

   

   1: u_1-u_2的区间估计,\sigma_1^2,\sigma_2^2已知 

   2: u_1-u_2的区间估计,\sigma_1^2,\sigma_2^2相等未知

   3: u_1-u_2的区间估计,\sigma_1^2,\sigma_2^2不等,样本n1,n2>30

   4: u_1-u_2的区间估计,\sigma_1^2,\sigma_2^2不等,样本n1,n2<30

   5:   \sigma_1^2/\sigma_2^2 区间估计,u_1,u_2 未知,

 

  


一  u_1-u_2的区间估计,\sigma_1^2,\sigma_2^2已知 

  

     Y=\frac{(\bar{X}-\bar{Y})-(u_1-u_2)}{\sqrt{\sigma_1^2/n_1+\sigma_2^2/n_2}} \sim N(0,1)

     置信区间为

    (\bar{X}-\bar{Y})\pm Z_{\alpha/2}\sqrt{\sigma_1^2/n_1+\sigma_2^2/n_2}


 二: u_1-u_2的区间估计,\sigma_1^2,\sigma_2^2未知,\sigma_1^2=\sigma_2^2=\sigma^2

  解:

    \frac{(\bar{X}-\bar{Y})-(u_1-u_2)}{S_w\sqrt{1/n_1+1/n_2}} \sim t(n_1+n_2-2)

   置信区间为:

  (\bar{X}-\bar{Y})\pm t_{\alpha/2}(n_1+n_2-2)S_w\sqrt{\frac{1}{n_1}+\frac{1}{n_2}}

  S_w^2=\frac{(n_1-1)S_1^2+(n_2-1)S_2^2}{n_1+n_2-2}

例1:比较两个型号的子弹枪口速度,随机选取型号1子弹10发,得到枪口速度的平均值

   \bar{X_1}=500m/s,S_1=1.10m/s

  型号2 子弹20发,得到 

   \bar{X_1}=496m/s,S_2=1.2 0m/s         

    总体近似可以看作正态分布,生产过程中要求方差近似相等,求u_1-u_2  的一个置信水平为0.95的置信区间

解:

       服从t 分布                 

def GetUDiff(x1=500,x2=496,alpha=0.05,s1=1.1,s2=1.2,n1=10,n2=20):
    
    sw = np.sqrt(((n1-1)*np.power(s1,2)+(n2-1)*np.power(s2,2))/(n1+n2-2))
    print("\n sw ",sw)
    ppf1 = t.ppf(alpha/2,n1+n2-2)
    print("\n ppf1 ",ppf1)
    step = ppf1*sw*np.sqrt(1/n1+1/n2)
    print("\n step ",-step)
    Q1 = x1-x2+step
    Q2 = x1-x2-step
    
    print("\n 置信区间[ %4.2f"%Q1,"\t  %4.2f]"%Q2)
    
    
GetUDiff()

置信区间[ 3.07       4.93]

    得到的置信区间下限大于0,所以u_1>u_2

 

例2:为提高某一化学生产过程的得率,采用一种新型的催化剂进行了

n_1=8,\bar{x_1}=91.73,s_1^2=3.89; n_2=8,\bar{x_2}=93.75,s_2^2=4.02

求总体均值差u_1-u_2置信水平为0.95的置信区间

解:

x1=91.73
n1=8
s1= np.sqrt(3.89)
s2= np.sqrt(4.02)
x2 = 93.75
n2= 8
alpha =0.05
GetUDiff(x1,x2,alpha,s1,s2,n1,n2)
 sw  3.955

 ppf1  -2.1447866879169277

 step  2.132688139386107

 置信区间[ -4.15      0.11]

由于区间包含0,所以均值没有显著差异


 三: u_1-u_2的区间估计,\sigma_1^2,\sigma_2^2不等,样本n1,n2>30

             Y=\frac{(\bar{X}-\bar{Y})-(u_1-u_2)}{\sqrt{S_1^2/n_1+S_2^2/n_2}} \sim N(0,1)

 

           置信区间:

          (\bar{X}-\bar{Y})\pm Z_{\alpha/2}\sqrt{S_1^2/n_1+S_2^2/n_2}


  四: u_1-u_2的区间估计,\sigma_1^2,\sigma_2^2不等,样本n1,n2<30

        Y=\frac{(\bar{X}-\bar{Y})-(u_1-u_2)}{\sqrt{S_1^2/n_1+S_2^2/n_2}} \sim t(k)

        k = min(n1-1,n2-1)

      

    置信区间:

          (\bar{X}-\bar{Y})\pm t_{\alpha/2}\sqrt{S_1^2/n_1+S_2^2/n_2}

 


五     \sigma_1^2/\sigma_2^2 区间估计,u_1,u_2 未知

       \frac{S_1^2/S_2^2}{\sigma_1^2/\sigma_2^2} \sim F(n_1-1,n_2-1)

     F_{1-\alpha/2}(n_1-1,n_2-1)<\frac{S_1^2/S_2^2}{\sigma_1^2/\sigma_2^2}<F_{\alpha/2}(n_1-1,n_2-1)

     置信区间为

    

    \begin{bmatrix} \frac{S_1^2}{S_2^2}\frac{1}{F_{\alpha/2}(n_1-1,n_2-1)} & , \frac{S_1^2}{S_2^2}\frac{1}{F_{1-\alpha/2}(n_1-1,n_2-1)} \end{bmatrix}

    两个点都是上\alpha分位数

    

   

# -*- coding: utf-8 -*-
"""
Created on Thu May  6 15:22:23 2021

@author: chengxf2
"""
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import f

import scipy.stats as stats


'''
    获得F分布的置信区间
Args:
    alpha 分位数
    n1: 自由度1
    n2: 自由度2
'''
def GetFRegion(alpha=0.1, n1=20,n2=20):
    x1 = [15, 14.8,15.2, 15.4,14.9,15.1,15.2,14.8]
    x2 = [15.2,15.0,14.8, 15.1,14.6,14.8,15.1,14.5,15.0]
    x1mean = np.mean(x1)
    n1 = len(x1)
    x2mean= np.mean(x2)
    n2 = len(x2)
    print("\n x1Mean ",x1mean,"\t x2Mean ",x2mean)
    
    
    upper = f.ppf(alpha/2,n1-1,n2-1)
    lower = f.ppf(1-alpha/2,n1-1,n2-1)
    print("\n  上alpha分位数1 ",lower,"\t 上alpha分位数2 ",upper)
    
    s1 = np.std(x1,ddof = 1) #样本差
    s2 = np.std(x2,ddof = 1)
   
    left = (s1**2/s2**2)/lower
    right =(s1**2/s2**2)/upper
    
    print("\n 置信区间为[ %5.3f  ---%5.3f ]"%(left,right))
    
    

'''
    画F 分布图
    
    pdf 概率密度函数
    cdf 分布函数
    ppf: 求分位數
    sf: 1-CDF
    args
      df: X1的自由度n1
      dn: x2的自由度n2
  
'''
def DrawF(alpha=0.05, df=20,dn=20):
    
      
    plt.figure(figsize=(10,10))
    x = np.linspace(f.ppf(0.01, df, dn), f.ppf(0.99, df, dn), 100)
    y = f.pdf(x, df, dn)
    
    plt.plot(x, f.pdf(x, df, dn), alpha=0.6, label='f')
    
    lower_bound = f.ppf(alpha, df, dn)
    upper_bound = f.ppf(1-alpha, df, dn)
    lower_Index  =0
    upper_Index = 0
    for i in range(len(x)):
        if x[i]>lower_bound:
            lower_Index = i-1
            break
    for j in range(len(x)):
        if x[j]>upper_bound:
            upper_Index = j
            break
    
    #print("\n upper_Index ",upper_Index)
    xLeft =x[0:lower_Index:1]
    xRight=x[upper_Index:-1:1]
    #print("\n lower_bound ",lower_bound,"\t upper_bound",upper_bound)
    #print("\n xLeft: ",xLeft,"\n xright ",xRight)
   
    yLeft =  f.pdf(xLeft,df,dn) #求概率密度函数
    yRight = f.pdf(xRight,df,dn) #求概率密度函數
    plt.fill_between(xLeft,yLeft,alpha=0.5,facecolor="g")
    plt.fill_between(xRight,yRight,alpha=0.5,facecolor="red")
    plt.legend(['F distribution'])
    plt.show()
    
  
'''
dfn: 自由度
'''
#@f.ppf(0.95,dfn=1,dfd=4) #dfn: degree of freedom numerator
#DrawF()
GetFRegion()

置信区间为[ 0.227  ---2.962 ]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值