数据分析为何要学统计学(2)——如何估计总体概率分布

news2024/10/5 14:19:20

明确总体的概率分布类型及参数是进行数据分析的基础,这项工作称为分布推断与参数估计。在总体分布及其参数不明确的情况下,我们可以利用手头掌握的样本来完成这项工作。具体过程由以下步骤组成。

第一步,样本统计特性直观估计

我们采用Seaborn软件的histplot函数绘制核密度分布图(一种通过核密度函数KDE估计得出的近似概率密度曲线与频数分布直方图的合体)。参考代码如下:

import numpy as np
#输入样本数据
x=np.array([2.12906357, 0.72736725, 1.05152821, 0.48600398, 1.91963227,
        1.62165678, 8.86319952, 0.24399412, 4.19883103, 2.80846683,
        1.34644303, 0.35146917, 1.7575424 , 3.90572887, 1.07404978,
        4.05247124, 0.65839571, 0.40166037, 2.03241598, 0.53592929])
import seaborn as sns
#绘制核密度分布图。kde=True会绘制概率密度曲线,否则只有直方图
sns.histplot(x,kde=True)
说明:由于KDE是对称函数,所以估计出的概率密度曲线是一条
凸曲线(最高点两侧都有曲线)。即使实际概率密度曲线为​​单调
曲线(如指数分布),其近似函数的曲线也是凸的,只不过​​​​​​一侧
曲线很长,而另一侧很短。
第二步,确定几个与之相近的候选概率分布(一般3个左右)。

从上图来看,可以根据概率密度曲线选择最相似的卡方分布、指数分布、伽玛分布。

第三步,分别拟合候选分布的参数,并使用拟合得出的分布参数检验每一个候选分布 。

代码如下:

import scipy.stats as stats
#构造候选分布集合
dists={'expon':stats.expon,'chi2':stats.chi2,'gamma':stats.gamma}

for dist in dists:
    #拟合每一个分布,将参数存放于param。不同分布参数会不同,但最后两个分别为loc和scale
    #loc和scale代表的含义因分布不同而异,如正态分布norm的情况,loc是均值scale是标准差
    #具体可查看分布类的__doc__属性值中的相关介绍
    param=dists[dist].fit(x)
    
    #检验每一个分布。KS检测是分布推断的常用方法,第一个参数是样本,第二个参数是分布的累计分布函数,第三个是分布参数
    test=stats.kstest(x,dists[dist].cdf,params)
    
    print(dist,test.pvalue,params)
第四步,选择p值(输出结果中的第一列值)最大的作为最终的分布(括号内是分布参数)
expon 0.9001 (0.016, 1.91)
chi2  0.3800 (1.78, 0.016, 1.37)
gamma 0.8080 (0.94, 0.016, 1.95)

 从以上数据可以看出,样本最可能是参数\frac{1}{ \lambda }=1.91的指数分布。而事实上,原始样本确实是以\frac{1}{ \lambda }=2生成的随机数样本。因为用样本拟合总体总存在一定水平的误差,所以不能追求结果的完美性。


最后我们专门介绍正态分布检验及其参数估计。

正太分布有多种检验方法,分别针对不同的情况

Shapiro–Wilk test:适用于小样本(3-5000),检验函数为scipy的stats.shapiro,根据p值是否大于显著水平a进行判断。公认小样本效果最可靠

Anderson–Darling test:适用于极小样本(8-26),检验函数为scipy的stats.anderson。可以检'norm, expon, logistic, gumbel,'gumbel_l, gumbel_r, extreme1, weibull_min分布,默认正态分布(norm)。该方法不输出p值,因此需要根据统计量是否小于显著水平对于的阈值来判断。

AndersonResult(statistic=0.8978770382274689, 
critical_values=array([0.527, 0.6  , 0.719, 0.839, 0.998 ]), significance_level=array([15. , 10. ,  5. ,  2.5,  1. ]), 
fit_result=  params: FitParams(loc=1.9203141072704806, scale=0.2784872286328154,
success: True,
message: '`anderson` successfully fit the distribution to the data.')

在该结果中,统计量小于1%显著水平的阈值,所以在该水平下才可以接受服从正态分布,其他显著水平下都拒绝接受服从正态分布的假设。

D'Agostino's K-squared test (Skewness-Kurtosis test):适用于8个以上的样本,样本容量越大越有效。公认大样本最有效。检验函数为scipy的stats.normaltest,根据p值是否大于显著水平a进行判断。

当样本通过正太分布检验后,可以使用stats.norm.fit函数获得分布参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1317572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟机VirtualBox和VMware安装Ubuntu16配置静态IP

计算机集群安装之前,准备先在虚拟机上尝试一下,网上多是采用VMware虚拟机和CentOS系统,个人则准备采用已经安装好的VirtualBox虚拟机和Ubuntu16,但遇到第一个问题即是配置静态IP,那么对于以上两种虚拟机静态IP配置的问…

(数据结构)单链表的查找和长度计算

代码实现 #include<stdio.h> #include<stdlib.h> typedef struct LNode {int data;struct LNode* next; }LNode,*LinkList; //创建头结点 LNode* InitList(LinkList L) {L (LNode*)malloc(sizeof(LNode));if (L NULL){return NULL;}L->data 0;L->next N…

掌握STL中stack和queue的用法(零基础/小白,全方面了解)

目录 1. stack的概念 2. stack的接口 2.1 构造函数&#xff08;初始化&#xff09; 2.2 赋值 2.3 存取操作 2.4 大小操作 3. queue的概念 4. queue的接口 4.1 构造函数 4.2 赋值操作 4.3 存取操作 4.4 大小操作 stack和queue接口函数很少&#xff0c;只要大家多敲一两…

设计模式(3)--对象结构(3)--组合

1. 意图 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 2. 三种角色 抽象组件(Component)、组合式节点(Composite)、叶节点(Leaf) 3. 优点 3.1 定义了包含基本对象和组合对象的类层次结构。 客户代码中&…

八大排序——快速排序(霍尔 | 挖空 | 前后指针 | 非递归)

我们今天来讲讲八大排序中的快速排序&#xff0c;快速排序最明显的特点就是排序快&#xff0c;时间复杂度是O&#xff08;N* logN&#xff09;&#xff0c;但是坏处就是如果排序的是一个逆序的数组的时候&#xff0c;时间复杂度是O&#xff08;N^2&#xff09;,还不用我们的插入…

【Hive_03】单行函数、聚合函数、窗口函数、自定义函数、炸裂函数

1、函数简介2、单行函数2.1 算术运算函数2.2 数值函数2.3 字符串函数&#xff08;1&#xff09;substring 截取字符串&#xff08;2&#xff09;replace 替换&#xff08;3&#xff09;regexp_replace 正则替换&#xff08;4&#xff09;regexp 正则匹配&#xff08;5&#xff…

操作系统期末复习-内存管理

一、内存管理 分页存储管理&#xff0c;是将一个进程的逻辑地址空间分成若干个大小相等的片&#xff0c;称为页面或页&#xff0c;并为各页加以编号&#xff0c;从0开始&#xff0c;如第0页、第1页等。相应地&#xff0c;也把内存空间分成与页面相同大小的若干个存储块&#xf…

直线追踪

由于项目的需要&#xff0c;最近在做一个直线追踪的东西&#xff0c;但是网上的代码关于车道线或者别的什么之类的直线追踪的代码只是提了一下&#xff0c;相关的代码并不是公开的&#xff0c;所以自己写了一些直线追踪的代码。 代码使用的是kalman滤波进行直线追踪&#xff0…

完美解决labelimg xml转可视化中文乱码问题,不用matplotlib

背景简述 我们有一批标注项目要转可视化&#xff0c;因为之前没有做过&#xff0c;然后网上随意找了一段代码测试完美&#xff08;并没有&#xff09;搞定&#xff0c;开始疯狂标注&#xff0c;当真正要转的时候傻眼了&#xff0c;因为测试的时候用的是英文标签&#xff0c;实…

Sci. Rep. | 一个对任意分子体系实现准确且高效几何深度学习的通用框架

这篇工作是来自纽约城市大学/康奈尔医学院谢磊团队的一篇论文。作者提出了一个通用框架&#xff0c;PAMNet&#xff0c;可以对任意分子体系实现准确且高效的几何深度学习。在小分子性质、RNA三维结构以及蛋白质-配体结合亲和力的预测任务上&#xff0c;PAMNet在准确性和效率方面…

网络编程-认识套接字socket

文章目录 套接字概念端口号网络字节序 套接字类型流套接字数据报套接字 socket常见APIsocket函数bind函数listen函数accept函数connect函数sockaddr结构 套接字概念 socket套接字是进程之间一种通信机制&#xff0c;通过套接字可以在不同进程之间进行数据交流。在TCP/UDP中&…

将html的radio单选框自定义样式为正方形和对号

将html的radio单选框自定义样式为正方形和对号 背景&#xff1a; 如何能把html的<input type"radio" name"option">改成自定义的样式呢&#xff1f;比如想要把他变成正方形&#xff0c;选中的时候是对号。默认的样式太丑了 默认样式&#xff1a; 自…

[数学]三角形的五心之内心

三角形内心的性质 三角形内切圆的圆心称为三角形的内心。内心也是三角形三个角的角平分线的交点 性质1 1.1 设 I I I为 △ A B C △ABC △ABC内一点&#xff0c;则 I I I为 △ A B C △ABC △ABC内心的充要条件是下列条件之一&#xff1a; 1.1.1 I I I到 △ A B C △ABC △…

【C语言】RDMACM、Verbs API与epoll一起使用的示例

一、epoll介绍 epoll是Linux内核为处理大批量文件描述符而作了改进的poll&#xff0c;是Linux下多路复用IO接口select/poll的增强版本&#xff0c;它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。 以下是epoll的主要使用方法和优点&#xff1a; epo…

代码随想录刷题题Day15

刷题的第十五天&#xff0c;希望自己能够不断坚持下去&#xff0c;迎来蜕变。&#x1f600;&#x1f600;&#x1f600; 刷题语言&#xff1a;C Day15 任务 ● 513.找树左下角的值 ● 112. 路径总和 113.路径总和ii ● 106.从中序与后序遍历序列构造二叉树 105.从前序与中序遍历…

整理了上百个开源中文大语言模型,涵盖模型、应用、数据集、微调、部署、评测

自ChatGPT为代表的大语言模型&#xff08;Large Language Model, LLM&#xff09;出现以后&#xff0c;由于其惊人的类通用人工智能&#xff08;AGI&#xff09;的能力&#xff0c;掀起了新一轮自然语言处理领域的研究和应用的浪潮。 尤其是以ChatGLM、LLaMA等平民玩家都能跑起…

广州华锐互动:汽车电子线束加工VR仿真培训与实际生产场景相结合,提高培训效果

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐渗透到各个领域&#xff0c;为企业和个人带来了前所未有的便利。在汽车制造行业中&#xff0c;线束加工作为一项关键的生产工艺&#xff0c;其质量直接影响到汽车的性能和安全。因此&#xff0c;…

LCR 181. 字符串中的单词反转

解题思路&#xff1a; class Solution {public String reverseMessage(String message) {message message.trim(); // 删除首尾空格int j message.length() - 1, i j;StringBuilder res new StringBuilder();while (i > 0) {while (i >…

局域网环境下的ntp对时

服务端&#xff1a; 此处为v4-sp4服务器 安装ntp&#xff0c;apt-get install ntp -y ,若为离线环境&#xff0c;则安装ntp和libopts25两个包。 配置&#xff1a; 在/etc/ntp.conf的配置文件里 加入 restrict default nomodify notrap noquery restrict 127.0.0.1 rest…