5.参数估计——点估计与区间估计概念,置信区间的公式求法与Python实现求出结果-程序员宅基地

技术标签: 算法  python  数据分析  数据分析-统计分析  概率论  

1.点估计

什么是点估计
设总体X的分布形式已知,但它的一个或多个参数未知,借助于总体X的一个样本来估计总体未知参数的值的问题称为参数的点估计问题

在这里插入图片描述

注意:

点估计的问题就是要构造一个适当的统计量(估计量),用它的观察值作为未知参数的近似值(估计值)
估计量的评选标准

  • 无偏性
    若估计量的数学期望存在,并且该期望等于总体参数,则称为无偏估计
    无偏估计的实际意义就是:"E(估计值) - 真值"的结果为0
    不论总体服从什么分布,样本均值是总体均值的无偏估计;样本方差是总体方差的无偏估计

在这里插入图片描述

  • 有效性
    有两个无偏估计θ1和θ2,如果在样本容量n相同的情况下,θ1比θ2更密集在真值附近,就认为θ1比θ2更理想换言之,无偏估计以方差最小者为好
  • 相合性
    随着样本容量的增大,一个估计量的值稳定于待估参数的真值。满足此条件的估计量为相合估计量

在这里插入图片描述

2.区间估计

在这里插入图片描述

对于未知参数,我们不仅要得到近似值(点估计),还希望估计出一个范围(区间),并希望知道这个范围包含参数真值的可信程度。这种形式的估计称为区间估计,这样的区间称为置信区间
置信区间、置信水平
设(X1,…,Xn)是取自总体X的一个样本,对于未知参数θ,给定α,0<α<1,如果存在统计量θ1(X1,…,Xn),θ2(X1,…,Xn),使得P(θ1(X1,…,Xn)≤θ≤θ2(X1,…,Xn))≥1−α
那么,称[θ12]为θ的双侧1-α置信区间;称1-α为置信水平(也称作置信度或置信系数)。
注意:

对于置信区间和置信水平的理解:

  • 固定样本容量n,若反复抽样多次,每个样本值确定一个区间,每个这样的区间要么包含θ的真值,要么不包含θ的真值
  • 在这么多区间中,包含真值的约占100(1-α)%,不包含真值的占100α%
  • 计算得到的区间属于那些包含真值的区间的可信程度为100(1-α)%,或“该区间包含真值”这一陈述的可信程度为100(1-α)%

3.求置信区间的步骤

较优的点估计应该属于置信区间,这是求置信区间的起始和基本思想

求未知参数的置信区间的步骤:

  1. 寻求一个样本X1,X2,…Xn和一个统计量W(X1,X2,…Xn;θ),使统计量W的分布不依赖于θ和其他未知参数,统计量W的构造,通常可以从θ的点估计着手
  2. 对于给定的置信水平1-α,定出两个常数a和b,使得P(a < W(X1,X2,…Xn;θ) < b) = 1-α
  3. 求解出θ的不等式θ1 < θ < θ2,则(θ12)为θ的一个置信水平为1-α的置信区间

4.正态总体均值的置信区间(方差已知)

在这里插入图片描述

已知:总体X服从正态分布,且总体方差已知

求:均值的置信区间
在这里插入图片描述

5.正态总体均值的置信区间(方差未知)

在这里插入图片描述
已知:总体X服从正态分布,且总体方差未知

求:均值的置信区间
在这里插入图片描述

6.正态总体方差的置信区间(总体均值未知)

在这里插入图片描述
在这里插入图片描述

7.两正态总体均值差的置信区间(两个方差已知)

在这里插入图片描述

8.两正态总体均值差的置信区间(方差不等且未知)

在这里插入图片描述

9.Python实现均值估计(一个正态总体)

在这里插入图片描述

import numpy as np
from scipy.stats import norm, t, chi2 # 正态分布;t分布;卡方分布

# 计算一个正态总体均值的置信区间函数(分为是否已知方差两种情况)
def mean_ci_est(data, alpha, sigma=None): # data是原始数据,alpha是置信区间,sigma是方差
    n = len(data) # 样本容量
    sample_mean = np.mean(data) # 样本均值
    # 方差未知
    if sigma is None:
        s = np.std(data)
        se = s/np.sqrt(n)
        # t.ppf(alpha / 2, n-1) 返回左侧面积alpha/2对应的t值
        t_value = np.abs(t.ppf(alpha / 2, n-1)) 
        # 根据公式返回置信区间
        return sample_mean - se * t_value,sample_mean + se * t_value
    # 方差已知
    else:
        se = sigma / np.sqrt(n) # 标准差
        # norm.ppf(alpha/2)返回左侧面积为alpha/2对应的z值
        z_value = np.abs(norm.ppf(alpha/2))
        # 根据公式返回置信区间
        return sample_mean - se*z_value, sample_mean + se*z_value
salary_18 = [1484, 785, 1598, 1366, 1716, 1020, 1716, 785, 3113, 1601]
salary_35 = [902, 4508, 3809, 3923, 4276, 2065, 1601, 553, 3345, 2182]
# 样本均值是总体均值的无偏点估计,并调用函数计算均值的置信区间
print(np.mean(salary_18),mean_ci_est(salary_18,0.05))
print(np.mean(salary_35),mean_ci_est(salary_35,0.05))

在这里插入图片描述

10.Python实现方差估计(一个正态总体)

在这里插入图片描述

import numpy as np
from scipy.stats import norm, t, chi2 # 正态分布;t分布;卡方分布

# 定义计算方差的置信区间函数
def var_ci_est(data, alpha):
    n = len(data)# 样本容量
    s2 = np.var(data) # 样本方差
    # chi2.ppf(alpha/2,n-1) 返回左侧面积为alpha/2的卡方值
    chi2_low_value = chi2.ppf(alpha/2,n-1)
    # chi2.ppf(1-alpha/2,n-1) 返回左侧面积为1-alpha/2的卡方值
    chi2_upper_value = chi2.ppf(1-alpha/2,n-1)
    return (n-1) * s2 /chi2_upper_value, (n-1)*s2/chi2_low_value
salary_18 = [1484, 785, 1598, 1366, 1716, 1020, 1716, 785, 3113, 1601]
salary_35 = [902, 4508, 3809, 3923, 4276, 2065, 1601, 553, 3345, 2182]
# 样本方差是总体方差的无偏点估计
print(np.std(salary_18),np.var(salary_18),var_ci_est(salary_18,0.05))
print(np.std(salary_35),np.var(salary_35),var_ci_est(salary_35,0.05))

在这里插入图片描述

11.Python实现均值差的估计(两个正态总体)

在这里插入图片描述

import numpy as np
from scipy.stats import norm, t, chi2 # 正态分布;t分布;卡方分布

# 两个正态总体均值差的置信区间
def mean_diss_ci_t_est(data1, data2, alpha, equal=True):
    n1 = len(data1) # 样本1的容量
    n2 = len(data2) # 样本2的容量
    mean_diff = np.mean(data1)-np.mean(data2) # 两个样本的均值差(两个总体均值差的无偏估计)
    sample1_var = np.var(data1) # 样本1的方差
    sample2_var = np.var(data2) # 样本2的方差

    # 方差未知且相等
    if equal:
        sw = np.sqrt(((n1-1)*sample1_var + (n2-1)*sample2_var / (n1+n2-2)))
        t_value = np.abs(t.ppf(alpha/2, n1+n2-2))
        return mean_diff - sw*np.sqrt(1/n1+1/n2)*t_value, mean_diff + sw*np.sqrt(1/n1+1/n2)*t_value
    # 方差未知且不等
    else:
        df_numerator = (sample1_var/n1 + sample2_var/n2) **2 # 自由度分子
        df_denominator = (sample1_var/n1)**2/(n1-1) + (sample2_var/n2)**2 /(n2-1)# 自由度分母
        df = df_numerator / df_denominator # 自由度
        t_value = np.abs(t.ppf(alpha/2,df))
        return mean_diff - np.sqrt(sample1_var/n1 + sample2_var/n2) * t_value, mean_diff + np.sqrt(sample1_var/n1 + sample2_var/n2) * t_value

salary_18 = [1484, 785, 1598, 1366, 1716, 1020, 1716, 785, 3113, 1601]
salary_35 = [902, 4508, 3809, 3923, 4276, 2065, 1601, 553, 3345, 2182]

print(mean_diss_ci_t_est(salary_18, salary_35, 0.05, equal=True))
print(mean_diss_ci_t_est(salary_18, salary_35, 0.05, equal=False))

在这里插入图片描述

12.Python实现方差比的估计(两个正态总体)

在这里插入图片描述

import numpy as np
from scipy.stats import norm, t, chi2, f # 正态分布;t分布;卡方分布 f分布

# 定义一个实现方差比置信区间的函数
def var_ratio_ci_est(data1, data2, alpha):
    n1 = len(data1)
    n2 = len(data2)
    f_low_value = f.ppf(alpha/2, n1-1, n2-1) # 左侧临界值
    f_upper_value = f.ppf(1-alpha/2, n1-1, n2-1) # 右侧临界值
    var_ratio = np.var(data1) / np.var(data2)
    return var_ratio / f_upper_value, var_ratio/f_low_value
salary_18 = [1484, 785, 1598, 1366, 1716, 1020, 1716, 785, 3113, 1601]
salary_35 = [902, 4508, 3809, 3923, 4276, 2065, 1601, 553, 3345, 2182]


print(var_ratio_ci_est(salary_18, salary_35, 0.05))

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_63953077/article/details/129124941

智能推荐

MATLAB解隐函数方程时符号表达式转化为数值的方法-用vpa函数_matlab syms转化为数值-程序员宅基地

文章浏览阅读1.8w次,点赞17次,收藏57次。今天在解决一个小问题时,遇到解隐函数方程,中间涉及一个解的传递问题,才好好研究了一下 syms这个语句的一些语法规则,最终用vpa这个函数解决了符号表达式到double数值的转化。syms是符号函数,符号变量的优点是,使用符号变量运算得到的只是一个解析解,例如,在符号变量运算过程中pi就用pi表示,而不是具体的近似数值3.14或3.14159。MATLAB的符号计算是建立在MAPLE软件基础上的..._matlab syms转化为数值

android:imeOptions=“actionSearch“ 无效_"android:imeoptions=\"actionsearch"-程序员宅基地

文章浏览阅读635次。EditView中加:1.android:singleLine="true"android:maxLines="1"android:inputType="text"android:maxLines="1"_"android:imeoptions=\"actionsearch"

Caused by: java.lang.ClassNotFoundException:com.netflix.hystrix.contrib.javanica.aop.aspectj.Hystrix_caused by: java.lang.classnotfoundexception: com.n-程序员宅基地

文章浏览阅读1.6w次,点赞6次,收藏6次。在给SpringCloud OpenFeign 模块添加Hystrix Dashboard 时,pom 文件已经添加如下依赖:&lt;!-- 熔断器监控 依赖 --&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt; &lt;artifactId&gt;spr..._caused by: java.lang.classnotfoundexception: com.netflix.hystrix.contrib.jav

Docker镜像简介-程序员宅基地

文章浏览阅读865次。镜像是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好行程一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。_docker镜像

生成toeplitz矩阵的Python实现代码_python 生成拓普利兹矩阵库函数-程序员宅基地

文章浏览阅读2.8k次。托普利兹矩阵的主对角线上的元素相等,平行于主对角线的线上的元素也相等_python 生成拓普利兹矩阵库函数

2019/3/31acm周三(三人)/LightOJ - 1005/数学/找规律/坑题_小明同学在参加一场考试,考试时间2个小时。试卷上一共有n道题目,小明要在规定时间-程序员宅基地

文章浏览阅读126次。LightOJ - 1005 坑爆(注意空格会提醒wa)LightOJ - 1005 A rook is a piece used in the game of chess which is played on a board of square grids. A rook can only move vertically or horizontally from its current po..._小明同学在参加一场考试,考试时间2个小时。试卷上一共有n道题目,小明要在规定时间

随便推点

Android CE DE加密小结_android de ce-程序员宅基地

文章浏览阅读4.4k次,点赞3次,收藏16次。1.全盘加密 数据在空闲的时候进行加密 每个设备只有一个用户可以被全盘加密进行保护 那个用户在做任何工作前必须登录 2.文件级别加密 使用ext4文件系统 使用AES-256方式对文件内容进行加密 文件名也需要进行加密 文件级别加密的性能要稍微好于全盘加密f2fs文件系统用于支持nand flashDE(device en..._android de ce

elk笔记16--aggs-Bucket Aggregations_elk aggs-程序员宅基地

文章浏览阅读795次。elk笔记16--aggs-Bucket Aggregations1 Bucketing 介绍2 Bucket Aggregations 分类2.1 Terms Aggregation2.2 Global aggregators2.3 Histogram Aggregation2.4 Date Histogram Aggregation2.5 Date Range Aggregation2.6 Range Aggregation待补充3 注意事项4 说明本文对聚合中的bucket类型聚合进行进一步介绍,包_elk aggs

算法设计与分析期末复习大全(算法填充题+综合题)-程序员宅基地

文章浏览阅读9.9k次,点赞16次,收藏399次。算法设计与分析(第二版)期末复习算法填充题综合题_算法设计与分析期末

C++构造和析构_c++ 析构比构造多-程序员宅基地

文章浏览阅读185次。构造函数构造函数的作用是给类中的数据成员初始化,在一个类对象产生的时候自动调用,构造函数分为带参构造、无参构造。带参、无参构造他俩唯一的区别就是一个有参数,一个没参数,视实际情况使用class CMyC{ int a; float b; char ch[10];public: CMyC(int a,float b,char *ch);//带参 CMyC(..._c++ 析构比构造多

树莓派基础设置-显示中文和添加中文输入法_树莓派输入法图标不显示-程序员宅基地

文章浏览阅读2k次。显示中文和添加中文输入法因为树莓派默认是采用英文字库的,而且系统里没有预装中文,所以你即使在locale中改成中文,也不会显示中文,只会显示一堆方块。因此我们需要手动来安装中文字库。干货:1.打开终端输入以下命令安装中文字库sudo apt-get install ttf-way-zenhei安装过程中如果碰到(y/n)都选择y2.安装中文输入法scim-pinyi..._树莓派输入法图标不显示

什么是 immutable-程序员宅基地

文章浏览阅读2.5w次,点赞15次,收藏80次。immutable 基础入门什么是immutableimmutable(不可改变的)immutable是一种持久化数据。一旦被创建就不会被修改。修改immutable对象的时候返回新的immutable。但是原数据不会改变。原理:持久化数据结构为什么要使用immutable在Rudux中因为深拷贝对性能的消耗太大了(用到了递归,逐层拷贝每个节点)。但当你使用immutable数据的时候:只会拷贝你改变的节点,从而达到了节省性能。总结:immutable的不可变性让纯函数更强大,每次都_immutable