Python统计分析——参数估计

2024-02-05 07:20

本文主要是介绍Python统计分析——参数估计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考资料:用python动手学统计学

       所谓参数就是总体分布的参数。

1、导入库

# 导入用于数值计算的库
import numpy as np
import pandas as pd
import scipy as sp
from scipy import stats
# 导入用于绘图的库
from matplotlib import pyplot as plt
import seaborn as sns
sns.set()

2、导入案例材料

data=np.array([4.352982,3.735304,5.944617,3.798326,4.087688,5.265985,3.272614,3.526691,4.150083,3.736104])
data

3、点估计

      直接指定总体分布的参数为某一值的估计方法叫作点估计。

      我们使用样本均值作为总体均值的点估计量,所以只需要计算出样本的均值就可以完成估计。 这看起来很简单,但要注意,正因为样本均值具有无偏性和一致性,它才可以作为总体均值的估计值。

      同理,我们使用样本的无偏方差作为总体方差的估计值。

python实现步骤如下;

mu=np.mean(data)
sigma_2=np.var(data,ddof=1)
print('总体均值的估计值为:',mu)
print('总体方差的估计值为:',sigma_2)

结果如下:

4、区间估计

      估计值具有一定范围的估计方法叫作区间估计。我们使用概率的方法计算这个范围。因为估计值是一个范围,所以可以引入估计误差。估计误差越小,区间估计的范围越小;样本容量越大,区间的范围越小。

      置信水平,是表示区间估计的区间可信度的概率。例如95%、99%都是常用的置信水平。二满足某个置信水平的区间叫作置信区间。对于同一组数据,置信水平越大,置信区间就越大。

       置信区间的计算如下:

\bar{x}-t_{1-\alpha/2}\times \sigma/\sqrt{n}<\mu<\bar{x}-t_{\alpha/2}\times \sigma/\sqrt{n}

python实现步骤如下:

# 自由度
df=len(data)-1
sigma=np.std(data,ddof=1)
se=sigma/np.sqrt(len(data))
interval=stats.t.interval(confidence=0.95,df=df,loc=mu,scale=se)
interval

结果如下:

与公式计算结果一致,如下图:

5、python函数参数介绍:

5.1 scipy.stats.t.interval()用于获取t分布的置信区间,参数介绍如下:

(1)confidence,用于设置置信水平。可以用列表的形式设置多个置信水平。如下:

(2)df为自由度,loc为样本均值,scale为样本均值的标准误。

5.2 scipy.stats.t.ppf()用于获取t分布的百分位数。

(1)q,小数形式,设置需要获取百分数对应的百分位

(2)df,设置自由度。

6、决定置信区间大小的因素

6.1 样本方差越大,置信区间越大

将样本标准差变为原来的10倍进行验证。

5.2 样本容量越大,样本均值就越可信,进而置信区间就越小

将样本容量为原来的10倍进行验证。

 5.3 置信水平越大,置信区间就会越大。

将置信水平调整为99%,进行验证。

 6、置信区间结果的解读

       如上图所示,置信水平为95%的置信区间,表示所得到的该区间包含真正的总体均值这一参数的概率为95%。

      下面用2万次的抽样结果,对置信区间的置信水平进行验证。

# 执行2万次求95%置信区间的操作
# 如果置信区间包含总体均值(本例设置为4),就为True
np.random.seed(1) # 设置随机种子,用于复现结果
# 设置数组用于存放置信区间是否包含总体均值的判断结果
be_included_array=np.zeros(20000,dtype='bool')
# 设置正态总体
pop=stats.norm(loc=4,scale=0.8)
# 完成2万次的样本抽取并对置信区间是否包含总体均值进行验证
for i in range(0,20000):sample=pop.rvs(size=10)df=len(sample)-1mu=np.mean(sample)std=np.std(sample,ddof=1)se=std/np.sqrt(len(sample))interval=stats.t.interval(0.95,df=df,loc=mu,scale=se)if(interval[0]<4 and interval[1]>4):be_included_array[i]=True# 汇总True的占比
sum(be_included_array)/len(be_included_array)

由模拟结果可以看出,总体均值包含在置信区间的比例约为95%,与置信水平基本一致。

这篇关于Python统计分析——参数估计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680140

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

HTML提交表单给python

python 代码 from flask import Flask, request, render_template, redirect, url_forapp = Flask(__name__)@app.route('/')def form():# 渲染表单页面return render_template('./index.html')@app.route('/submit_form',

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击,设定蓝色的终点。右键双击设定终点,用蓝色标记。 设置障碍点: 鼠标左键或者右键按着不放,拖动可以设置黑色的障碍点。按住左键或右键并拖动,设置一系列黑色障碍点

Python:豆瓣电影商业数据分析-爬取全数据【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】

**爬取豆瓣电影信息,分析近年电影行业的发展情况** 本文是完整的数据分析展现,代码有完整版,包含豆瓣电影爬取的具体方式【附带爬虫豆瓣,数据处理过程,数据分析,可视化,以及完整PPT报告】   最近MBA在学习《商业数据分析》,大实训作业给了数据要进行数据分析,所以先拿豆瓣电影练练手,网络上爬取豆瓣电影TOP250较多,但对于豆瓣电影全数据的爬取教程很少,所以我自己做一版。 目

【Python报错已解决】AttributeError: ‘list‘ object has no attribute ‘text‘

🎬 鸽芷咕:个人主页  🔥 个人专栏: 《C++干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一:检查属性名2.2 步骤二:访问列表元素的属性 三、其他解决方法四、总结 前言 在Python编程中,属性错误(At