数据分析-概率分布

概率分布

  • 概率分布(Probability Distributions)
    • 离散概率分布
      • 伯努利分布(Bernoulli Distribution)
      • 二项分布(The Binomial distribution)
      • 泊松分布(Poisson Distribution)
    • 连续概率分布
      • 均匀分布(Uniform Distribution)
      • 正态分布(Normal Distribution)
      • 指数分布(Exponential Distribution)
      • t分布(t-Distribution)
      • 卡方分布(Chi-Squared Distribution)
      • 伽玛分布(Gamma Distribution):
      • 随机游走/布朗运动(Random Walk/Brownian Motion):
  • 分布变换 (Distribution Transformations)
    • 对数变换 (Log Transform):
    • 平方根变换 (Square Root Transform):
    • Box-Cox变换 (Box-Cox Transform):
  • pdf,cdf,ppf
    • PDF (Probability Density Function)
    • CDF (Cumulative Distribution Function)
    • PPF (Percent Point Function)

概率分布(Probability Distributions)

概率分布(Probability Distributions)是数学统计学中的一个重要概念,用于描述随机变量的取值规律。根据随机变量的类型,概率分布可以分为离散概率分布和连续概率分布。

离散概率分布

离散概率分布适用于取值为有限个或可数无限个的随机变量。常见的离散概率分布包括:

伯努利分布(Bernoulli Distribution)

  • 两种可能的结果:伯努利试验只有两种可能的结果,通常称为“成功”(1)和“失败”(0)。
import scipy.stats as stats
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt
# 生成10000个伯努利随机变量,成功概率为0.3,设置随机种子为0
binomial_samples = stats.bernoulli.rvs(p=0.3, size=10000, random_state=0)
# 绘制直方图,设置直方图的柱宽为0.8,柱子的对齐方式为中间对齐
plt.hist(binomial_samples, bins=[-0.5, 0.5, 1.5], rwidth=0.8, align='mid')
# 设置x轴的刻度标签为0和1
plt.xticks([0, 1])
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram of Bernoulli Samples')
plt.show()

二项分布(The Binomial distribution)

  • 试验之间的相互独立:每次试验的结果不会影响其他试验的结果。
  • 每次试验只有两个可能的结果:通常是“失败”和“成功”两种结果。在描述中,成功概率为p,失败概率为1-p。
import scipy.stats as stats
import matplotlib.pyplot as plt# 设置二项分布的参数
n = 10  # 试验次数
p = 0.5  # 每次试验成功的概率# 生成100个二项分布随机变量
binomial_samples = stats.binom.rvs(n=n, p=p, size=100)# 打印前10个随机变量
print("First 10 Binomial samples:", binomial_samples[:10])# 绘制直方图
plt.hist(binomial_samples, bins=range(n+2), rwidth=0.8, align='left')
plt.xlabel('Number of Successes')
plt.ylabel('Frequency')
plt.title('Histogram of Binomial Samples')
plt.show()

泊松分布(Poisson Distribution)

  • 事件彼此独立:一个事件的发生不会影响另一个事件发生的概率。
  • 两个事件不能同时发生:可以认为事件是逐个发生的。
  • 事件发生的平均速率是常数:在任何给定的时间间隔内,事件发生的平均速率是固定的。
import scipy.stats as stats
import matplotlib.pyplot as plt# 设置泊松分布的参数
lam = 5  # 单位时间内事件发生的平均次数# 生成100个泊松分布随机变量
poisson_samples = stats.poisson.rvs(mu=lam, size=100)# 打印前10个随机变量
print("First 10 Poisson samples:", poisson_samples[:10])# 绘制直方图
plt.hist(poisson_samples, bins=range(min(poisson_samples), max(poisson_samples) + 2), rwidth=0.8, align='left')
plt.xlabel('Number of Events')
plt.ylabel('Frequency')
plt.title('Histogram of Poisson Samples')
plt.show()

连续概率分布

连续概率分布适用于取值为连续的随机变量。常见的连续概率分布包括:

均匀分布(Uniform Distribution)

  • 均匀概率:均匀分布描述了在某个区间内,所有值出现的概率是均匀的,即相等的。
  • 区间:由两个参数a和b定义,表示变量X的取值范围为[a, b]。
import scipy.stats as stats
import matplotlib.pyplot as plt# 设置均匀分布的参数
a = 0  # 下界
b = 10  # 上界# 生成100个均匀分布随机变量
uniform_samples = stats.uniform.rvs(loc=a, scale=b-a, size=100)# 打印前10个随机变量
print("First 10 Uniform samples:", uniform_samples[:10])# 绘制直方图
plt.hist(uniform_samples, bins=10, rwidth=0.8, align='mid')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.title('Histogram of Uniform Samples')
plt.show()

正态分布(Normal Distribution)

也被称为高斯分布(Gaussian Distribution)

  • 对称性和钟形曲线:正态分布的概率密度函数呈对称的钟形曲线形状,以均值为中心,两侧对称下降。
  • 均值和标准差:由两个参数μ(均值)和σ(标准差)定义,决定了分布的中心位置和分布的宽度。
import pymc as pm
import matplotlib.pyplot as pltwith pm.Model() as model:y = pm.Normal.dist()samples = pm.draw(y, draws=1000)
plt.plot(samples)import scipy.stats as stats
import seaborn as snsnormal_dist = stats.norm.rvs(size=10000,loc=200,scale=9,random_state=0)
pd.Series(normal_dist).plot(kind='hist',bins=100)for mean in range(400,900,200):normal_dist = stats.norm.rvs(size=10000,loc=mean,scale=90,random_state=0)pd.Series(normal_dist).plot(kind='hist',bins=100,label="Mean = {:f}".format(mean))

指数分布(Exponential Distribution)

  • 事件发生的时间间隔:指数分布描述了两个连续事件发生之间的时间间隔。
  • 平均发生率:由参数λ定义,表示单位时间内事件发生的平均次数。
import scipy.stats as stats
import seaborn as sns
import pandas as pd# 指数分布
exponential_data = stats.expon.rvs(scale=1, size=10000, random_state=0)
pd.Series(exponential_data).plot(kind='hist', bins=30, density=True)

t分布(t-Distribution)

  • 小样本推断:当样本量较小或总体标准差未知时,t分布用于估计正态总体的均值。
  • 自由度:由自由度参数df定义,自由度越大,t分布越接近正态分布。
import scipy.stats as stats
import seaborn as sns
import pandas as pd# t分布
t_data = stats.t.rvs(df=10, size=10000, random_state=0)
pd.Series(t_data).plot(kind='hist', bins=30, density=True)

卡方分布(Chi-Squared Distribution)

  • 假设检验:卡方分布常用于检验观察频数与期望频数之间的差异,如卡方检验。
  • 自由度:由自由度参数df定义,决定了分布的形状。
import scipy.stats as stats
import seaborn as sns
import pandas as pd# 卡方分布
chi_squared_data = stats.chi2.rvs(df=4, size=10000, random_state=0)
pd.Series(chi_squared_data).plot(kind='hist', bins=30, density=True)

伽玛分布(Gamma Distribution):

  • 总等待时间:伽玛分布用于描述多个指数分布事件发生的总等待时间。
  • 形状参数和比例参数:由形状参数α(或k)和比例参数β(或θ)定义,这两个参数决定了分布的形状和尺度。
import scipy.stats as stats
import matplotlib.pyplot as plt# 设置伽玛分布的参数
alpha = 2  # 形状参数
beta = 3   # 比例参数# 生成10000个伽玛分布随机变量
gamma_samples = stats.gamma.rvs(a=alpha, scale=1/beta, size=10000, random_state=0)# 绘制直方图
plt.hist(gamma_samples, bins=30, density=True)
plt.xlabel('Value')
plt.ylabel('Density')
plt.title('Histogram of Gamma Samples')
plt.show()

随机游走/布朗运动(Random Walk/Brownian Motion):

  • 连续随机过程:布朗运动是一种连续时间内连续状态变量的随机过程,用于描述粒子在液体或气体中的随机运动。
import numpy as np
import matplotlib.pyplot as plt# 设置参数
n_steps = 1000  # 步数
delta_t = 1    # 时间间隔
sigma = 1      # 标准差# 生成随机游走
steps = np.random.normal(loc=0, scale=sigma * np.sqrt(delta_t), size=n_steps)
brownian_motion = np.cumsum(steps)# 绘制随机游走图
plt.plot(brownian_motion)
plt.xlabel('Time')
plt.ylabel('Position')
plt.title('Random Walk / Brownian Motion')
plt.show()

分布变换 (Distribution Transformations)

对数变换 (Log Transform):

将数据通过自然对数变换,常用于处理右偏分布,使其更接近正态分布。

平方根变换 (Square Root Transform):

对数据进行平方根变换,通常用于处理计数数据的偏态分布。

Box-Cox变换 (Box-Cox Transform):

一种更广义的数据变换方法,包括对数变换和平方根变换,用于使数据更接近正态分布

pdf,cdf,ppf

PDF (Probability Density Function)

概率密度函数(PDF)描述了连续随机变量在某个特定值或某个区间内取值的概率密度。对于连续随机变量,PDF不直接给出概率,而是表示概率的密度。

CDF (Cumulative Distribution Function)

累积分布函数(CDF)描述了随机变量取值小于或等于某个特定值的概率。对于连续随机变量,CDF是PDF的积分。

PPF (Percent Point Function)

百分点函数(PPF),也称为分位数函数或逆累积分布函数,是CDF的逆函数。PPF给出了使CDF达到某个特定概率值的随机变量的值。

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

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

相关文章

Tailwind notes

flex flex - 使用Flexbox布局,这是一个非常灵活的布局模式,用于在容器内部以动态的方式对子项进行排列。justify-between - 在Flexbox布局中,这个类使容器中的子项之间的间距平均分布,首尾子项贴紧容器边界。items-center - 在Fl…

Day20 Java常用类

Day20 Java常用类 一、String类 1、概念: 在Java中,String类是一个非常常用的类,用于表示字符串对象。String类提供了许多方法来操作和处理字符串。 2、String类常用方法: 获取字符串长度: int length(): 返回字符串…

C#使用ASP.NET Core Razor Pages构建网站(一)

一、了解Web开发 Web开发就是使用HTTP(超文本传输协议)进行开发。 HTTP HTTP(Hypertext Transfer Protocol)是一种用于传输超文本和相关数据的应用层协议。它是Web上数据通信的基础,被用于从Web服务器传输到客户端浏…

如何让uni-app开发的H5页面顶部原生标题和小程序的顶部标题不一致?

如何让标题1和标题2不一样&#xff1f; 修改根目录下的App.vue&#xff08;核心代码如下&#xff09; <script>export default {onLaunch() {// 监听各种跳转----------------------------------------[navigateTo, redirectTo, reLaunch, switchTab, navigateBack, ].…

【JSON2WEB】10 基于 Amis 做个登录页面login.html

【JSON2WEB】01 WEB管理信息系统架构设计 【JSON2WEB】02 JSON2WEB初步UI设计 【JSON2WEB】03 go的模板包html/template的使用 【JSON2WEB】04 amis低代码前端框架介绍 【JSON2WEB】05 前端开发三件套 HTML CSS JavaScript 速成 【JSON2WEB】06 JSON2WEB前端框架搭建 【J…

《云计算:数字时代的引擎》

在数字化时代&#xff0c;云计算技术以其强大的计算能力和灵活的应用方式&#xff0c;成为推动各行各业发展的引擎。本文将围绕云计算的技术进展、技术原理、行业应用案例、面临的挑战与机遇以及未来趋势进行详细探讨。 云计算的技术进展 云计算的技术进展涵盖了多个方面&…

AUTOSAR XML(通常称为ARXML)

AUTOSAR XML(通常称为ARXML) ARXML是一种基于XML(可扩展标记语言)的文件格式,用于在AUTOSAR(汽车开放系统架构)标准中描述汽车软件系统的各种元素。 ARXML文件包含软件组件、接口、数据类型和配置参数等信息,这些信息可以用于描述系统的功能和结构。ARXML文件的特点是…

Session、Cookie 和 Token的保存

在用户登录过程中&#xff0c;Session、Cookie 和 Token 都是用来管理用户状态和身份验证的重要机制&#xff0c;它们在保存和交互方面有所不同。 1. Session 的保存&#xff1a; 保存位置&#xff1a; Session 数据通常保存在服务器端的内存中或者持久化存储&#xff08;如数…

ADO.NET封装个单例异步类类

.NET兼职社区 防止重复造轮子。可以直接使用 using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Configuration;namespace Wpf.Personne…

python(django)之产品后台管理功能实现

1、添加新项目 在命令行输入以下代码 python manage.py startapp prroduct 2、添加路径和代码结构 在新项目目录下admin.py中加入以代码 from .models import Product class ProductAdmin(admin.ModelAdmin):list_display [product_name, product_desc,producter,created_…

基于Springboot的闲置图书分享(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的闲置图书分享&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

Linux服务器导出CPU和内存使用情况

Linux服务器默认存储一个月的CPU和内存记录&#xff0c;所在目录&#xff1a;/var/log/sa/&#xff0c;如下图所示 在此用sar命令来执行 sar是一个比较全面的性能监控工具&#xff0c;包括cpu、内存、磁盘和网络等信息&#xff0c;并且该命令会每10分钟自动保存一次硬件资源使用…

odoo扩展导出pdf功能

1. 说明: odoo原生导出功能扩展导出pdf文件功能, 如有额外需求请联系博主 2. 版本说明: odoo版本: odoo15 其他odoo版本未进行测试,如有需要自行测试 3. 地址: 该补丁代码放在github仓库, 地址: https://github.com/YSL-Alpaca/odoo_export_pdf 4. 改补丁依赖于第三方软件wkh…

ubuntu20.04搭建nginx rtmp视频服务到指定位置解决权限不足

1.安装依赖 apt-get install build-essential libpcre3 libpcre3-dev libssl-dev2.建一个目录 mldir rtmp_nginx 3.源码下载 wget http://nginx.org/download/nginx-1.21.6.tar.gz wget https://github.com/arut/nginx-rtmp-module/archive/master.zip4.解压缩 tar -xf ng…

JPA使用CriteriaQuery实现动态分组查询

JPA中实现动态分组查询&#xff0c;即输入几个筛选参数就按照几个参数进行分组查询&#xff0c;但是不知道输入的是几个参数&#xff0c;要实现动态的分组查询&#xff0c;用CriteriaQuery实现。 Repository&#xff1a; Repository public interface TestCostRepository ext…

IBM SPSS Statistics for Mac v27.0.1中文激活版

IBM SPSS Statistics for Mac是一款功能强大的统计分析软件&#xff0c;专为Mac用户设计&#xff0c;用于数据分析和决策支持。该软件拥有直观易用的界面和丰富多样的统计工具&#xff0c;使得用户可以轻松进行数据处理、分析和解释。 软件下载&#xff1a;IBM SPSS Statistics…

《适配器模式(极简c++)》

本文章属于专栏《设计模式&#xff08;极简c版&#xff09;》 继续上一篇《原型模式&#xff08;极简c&#xff09;》。本章简要说明适配器模式。本文分为模式说明、本质思想、实践建议、代码示例四个部分。 模式说明 方案&#xff1a; 适配器模式&#xff0c;允许接口不兼容…

sentinel热点参数流控

1、概念 热点参数限流会统计传入参数中的热点参数&#xff0c;并根据配置的限流阈值与模式&#xff0c;对包含热点参数的资源调用进行限流。热点参数限流可以看做是一种特殊的流量控制&#xff0c;仅对包含热点参数的资源调用生效。 2、示例 2.1、目的 对于如下的/get接口的参…

WebSocket 使用示例,后台为nodejs

效果图 页面代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>WebSocket Client</title&g…

stm32定时器

定时器介绍 软件定时 缺点&#xff1a;不精确、占用 CPU 资源 还记得以前在开发C51的时候&#xff0c;经常使用stc助手生成的定时代码&#xff0c;形如&#xff1a; void Delay500ms() //11.0592MHz {unsigned char i, j, k;_nop_();i 4;j 129;k 119;do{do{while (--k);} …