当前位置: 首页 > news >正文

卡方分布和 Zipf 分布模拟及 Seaborn 可视化教程

卡方分布

简介

卡方分布是一种连续概率分布,常用于统计学中进行假设检验。它描述了在独立抽样中,每个样本的平方偏差之和的分布。卡方分布的形状由其自由度 (df) 参数决定,自由度越大,分布越平缓。

参数

卡方分布用两个参数来定义:

df:自由度,表示卡方分布的形状。自由度必须为正整数。
size:输出数组的形状。

公式

卡方分布的概率密度函数 (PDF) 为:

f(x) = (x^(df/2 - 1) * np.exp(-x/2)) / (2^(df/2) * Gamma(df/2))    for x >= 0

其中:

f(x):表示在 x 点的概率密度。
x:非负实数。
df:自由度。
np.exp(-x/2):指数函数。
Gamma(df/2):伽马函数。

生成卡方分布数据

NumPy 提供了 random.chisquare() 函数来生成服从卡方分布的随机数。该函数接受以下参数:

df:自由度。
size:输出数组的形状。

示例:生成 10 个自由度为 5 的卡方分布随机数:

import numpy as npdata = np.random.chisquare(df=5, size=10)
print(data)

可视化卡方分布

Seaborn 库提供了便捷的函数来可视化分布,包括卡方分布。

示例:绘制 1000 个自由度为 5 的卡方分布随机数的分布图:

import seaborn as sns
import numpy as npdata = np.random.chisquare(df=5, size=1000)
sns.distplot(data)
plt.show()

练习

  1. 模拟 20 个自由度为 10 的卡方分布随机数,并绘制它们的分布图。
  2. 比较不同自由度下卡方分布形状的变化。
  3. 利用卡方分布来进行卡方检验,假设某枚硬币是公平的,即正面朝上的概率为 0.5。抛掷硬币 100 次,并计算正面朝上的次数是否服从二项分布。

解决方案

import seaborn as sns
import numpy as np
from scipy import stats# 1. 模拟随机数并绘制分布图
data = np.random.chisquare(df=10, size=20)
sns.distplot(data)
plt.show()# 2. 比较不同自由度下分布形状的变化
df_values = [2, 5, 10, 20]
for df in df_values:data = np.random.chisquare(df=df, size=1000)sns.distplot(data, label=f"df={df}")
plt.legend()
plt.show()# 3. 进行卡方检验
heads = np.random.binomial(n=100, p=0.5)
chi2_stat, p_value = stats.chisquare(heads, f_exp=50)
print("卡方统计量:", chi2_stat)
print("p 值:", p_value)# 由于 p 值大于 0.05,无法拒绝原假设,即可以认为硬币是公平的。

瑞利分布

简介

瑞利分布是一种连续概率分布,常用于描述信号处理和雷达系统中的幅度分布。它表示在一个随机变量的平方根服从指数分布时,该随机变量的分布。

参数

瑞利分布用一个参数来定义:

scale:尺度参数,控制分布的平坦程度。较大的尺度参数使分布更加平坦,两侧尾部更加分散。默认为 1。

公式

瑞利分布的概率密度函数 (PDF) 为:

f(x) = (x scale) / (scale^2 np.exp(-x^2 / (2 scale^2)))    for x >= 0

其中:

f(x):表示在 x 点的概率密度。
x:非负实数。
scale:尺

Zipf分布

简介

Zipf分布,又称为Zeta分布,是一种离散概率分布,常用于描述自然语言、人口统计学、城市规模等领域中具有幂律特征的数据分布。它体现了“少数服从多数”的现象,即排名越靠前的元素出现的频率越高。

参数

Zipf分布用一个参数来定义:

a:分布参数,控制分布的形状。a越小,分布越偏向于少数元素,越接近幂律分布。默认为 2。

公式

Zipf分布的概率质量函数 (PMF) 为:

P(k) = 1 / (k ^ a)    for k >= 1

其中:

P(k):表示第 k 个元素出现的概率。
k:元素的排名,从 1 开始。
a:分布参数。

生成Zipf分布数据

NumPy提供了random.zipf()函数来生成服从Zipf分布的随机数。该函数接受以下参数:

a:分布参数。
size:输出数组的形状。

示例:生成10个服从Zipf分布的随机数,分布参数为2:

import numpy as npdata = np.random.zipf(a=2, size=10)
print(data)

可视化Zipf分布

Seaborn库提供了便捷的函数来可视化分布,包括Zipf分布。

示例:绘制1000个服从Zipf分布的随机数的分布图,分布参数为2:

import seaborn as sns
import numpy as npdata = np.random.zipf(a=2, size=1000)
sns.distplot(data)
plt.show()

练习

  1. 模拟不同分布参数下Zipf分布形状的变化。
  2. 利用Zipf分布来模拟一个城市的规模分布,并计算排名前10的城市人口占总人口的比例。
  3. 比较Zipf分布与幂律分布的异同。

解决方案

import seaborn as sns
import numpy as np# 1. 模拟不同分布参数下Zipf分布形状的变化
a_values = [1.5, 2, 2.5, 3]
for a in a_values:data = np.random.zipf(a=a, size=1000)sns.distplot(data, label=f"a={a}")
plt.legend()
plt.show()

2. 模拟城市规模分布并计算人口比例

population = np.random.zipf(a=2, size=100)
top10_population = population[:10].sum()
total_population = population.sum()
print(“排名前10的城市人口:”, top10_population)
print(“排名前10的城市人口比例:”, top10_population / total_population)

3. Zipf分布与幂律分布的比较

Zipf分布和幂律分布都描述了“少数服从多数”的现象,即排名越靠前的元素出现的频率越高。

但是,Zipf分布的参数化程度更高,可以更精确地描述不同领域的幂律现象。幂律分布则更通用,但缺乏Zipf分布对参数的控制能力。

具体来说,Zipf分布的PMF为:

P(k) = 1 / (k ^ a)

幂律分布的PMF为:

P(k) = C / k ^ alpha

其中,C为归一化常数。

可见,Zipf分布的参数a控制了分布的倾斜程度,而幂律分布的参数alpha则控制了分布的整体形状。

此外,Zipf分布通常用于描述离散数据,而幂律分布则可以用于描述离散和连续数据。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

相关文章:

卡方分布和 Zipf 分布模拟及 Seaborn 可视化教程

卡方分布 简介 卡方分布是一种连续概率分布,常用于统计学中进行假设检验。它描述了在独立抽样中,每个样本的平方偏差之和的分布。卡方分布的形状由其自由度 (df) 参数决定,自由度越大,分布越平缓。 参数 卡方分布用两个参数来…...

音视频开发13 FFmpeg 音频 相关格式分析 -- AAC ADTS格式分析

这一节,我们学习常用的音频的格式 AAC,重点是掌握 AAC的传输格式 ADTS 头部的信息,目的是 : 当音频数据有问题的时候,如果是AAC的编码,在分析 头部信息的时候能够根据头部信息 判断问题是否出现在 头部。 A…...

周三晚19:00 | 数据资源入表案例拆解,他们如何应对入表难点?

数据资源入表的具体场景是怎样的?如何应对数据资源入表难点? 6月5日,即周三晚19:00,讲师-星光数智首席数据架构师 魏战松将继续带来关于《数据要素资产运营》的主题直播,为大家拆解数据资源入表的具体案例。 ​累计77…...

树的知识总结

一:树的基本术语(只写了查漏的部分 1 双亲:就是父节点 2 层序编号 3 有序无序树 4 森林 二:逻辑结构上与线性结构的比较 三:树的存储结构 ①双亲表示节点法:...

工业安全智勇较量,赛宁网安工业靶场决胜工业网络攻防对抗新战场

2024年1月30日,工信部发布《工业控制系统网络安全防护指南》(工信部网安〔2024〕14号),围绕安全管理、技术防护、安全运营、责任落实四方面提出安全防护要求,强调聚焦安全薄弱关键环节,强化技术应对策略&am…...

一种一维时间序列信号的广义小波变换方法(MATLAB)

地震波在含油气介质中传播时,其高频分量往往比低频分量衰减更快。据此,地震波的高频分量和低频分量之间的差异值可以用于分析含油气衰减位置,从而间接指示出含油气储层。对于时频域中的地震波衰减分析,一般地,利用地震…...

【GIC400】——驱动代码实现

文章目录 驱动代码实现IRQ 中断处理GIC 驱动GIC 使用使用示例系列文章 【ARMv7-A】——异常与中断 【ARMv7-A】——异常中断处理概述 【ARMv7-A】——进入和退出异常中断的过程 【GIC400】——PLIC,NVIC 和 GIC 中断对比 【GIC400】——GIC 简介 【GIC400】——GIC 相关的 CP1…...

如何在 Vue 组件中正确地使用 data 函数?

在 Vue 组件中正确使用 data 函数有以下几点需要注意: 返回一个对象: data 函数必须返回一个对象,这个对象包含了组件实例需要用到的所有数据属性。export default {data() {return {message: Hello, Vue!,count: 0}} }不要使用箭头函数: data 函数不应该使用箭头函数 () >…...

.Net 基于MiniExcel的导入功能接口示例

/// <summary>/// 导入/// </summary>/// <param name"formFile"></param>/// <returns></returns>[HttpPost("Import")]public async Task<ExecResult> Import(IFormFile formFile){try{if (formFile null) t…...

流量焦虑?别担心,Xinstall一站式App推广解决方案来了!

在移动互联网时代&#xff0c;App已经成为人们日常生活中不可或缺的一部分。然而&#xff0c;对于众多开发者来说&#xff0c;如何有效地推广自己的App&#xff0c;吸引更多的用户&#xff0c;却是一个不小的挑战。今天&#xff0c;我们将为大家介绍一款强大的App推广工具——X…...

降薪潮要开始了么?

互联网要全面迎来降薪潮了么&#xff0c;最近这个观念一直冲击着我 起因就是&#xff0c;前一段一位朋友降薪40%拿到了offer&#xff1b;还有一位金融机构的人力资源负责人朋友告诉我&#xff0c;最近来的很多互联网人都是降薪来的&#xff0c;普遍降30-50%不等 我就在想&…...

网络服务DHCP的安装

DHCP的安装 检查并且安装dhcp有关软件包 rpm -qc dhcp #检查是否存在dhcp yum install -y dhcp #进行yum安装查看系统的配置文件 切换到对应目录查看相关文件配置&#xff0c;发现是空目录。 将官方提供的example复制到原配置文件中 cp /usr/share/doc/dhcp-4.2.5/dhcpd.…...

SELinux:安全增强型Linux

SELinux&#xff1a;安全增强型Linux 作用&#xff1a; 可以保护linux系统的安全为用户分配最小的权限 状态&#xff1a; Enforcing&#xff1a;强制保护Permissive&#xff1a;宽松状态Disabled&#xff1a;禁用 为了安全性考虑&#xff0c;希望SELinux设置为Enforcing状态…...

.NET Redis限制接口请求频率 滑动窗口算法

在.NET中使用Redis来限制接口请求频率&#xff08;每10秒只允许请求一次&#xff09; NuGet setup StackExchange.Redis 实现速率限制逻辑&#xff1a; 在控制器或服务层中&#xff0c;编写Redis速率限制计数器。 设置Redis键&#xff1a; 为每个用户或每个IP地址设置一个唯一…...

Java List数据结构与常用方法

1.1 数据结构概述 Java的集合框架其实就是对数据结构的封装&#xff0c;在学习集合框架之前&#xff0c;有必要先了解下数据结构。 1.1.1 什么是数据结构 所谓数据结构&#xff0c;其实就是计算机存储、组织数据的方式。 数据结构是用来分析研究数据存储操作的&#xff0c;其实…...

Docker搭建redis-cluster集群

1. 前期准备 1.1 拉redis镜像 docker search redis docker pull redis1. 2 创建网卡 docker network create myredis --subnet 172.28.0.0/16#查看创建的网卡 docker network inspect myredisdocker network rm myredis #删除网卡命令 多个中间 空格隔开 docker network --h…...

实验室类管理平台LIMS系统的ui设计实例

实验室类管理平台LIMS系统的ui设计实例...

<PLC><西门子><工控>西门子博图V18中使用SCL语言编写一个CRC16-modbus校验程序

前言 本系列是关于PLC相关的博文,包括PLC编程、PLC与上位机通讯、PLC与下位驱动、仪器仪表等通讯、PLC指令解析等相关内容。 PLC品牌包括但不限于西门子、三菱等国外品牌,汇川、信捷等国内品牌。 除了PLC为主要内容外,PLC相关元器件如触摸屏(HMI)、交换机等工控产品,如…...

Linux - 文件管理高级 find、grep

0.管道 | 将前面命令的标准输出传递给管道作为后面的标准输入 1.文件查找 find find 进行文件查找时&#xff0c;默认进行递归查找&#xff0c;会查找隐藏目录下的文件 1.1 用法 # find 查找路径 查找条件... -type // 文件类型 f 普通文件 b 设备 d …...

DOS编程入门:探索基础、深入技巧与实战应用

DOS编程入门&#xff1a;探索基础、深入技巧与实战应用 DOS编程&#xff0c;作为计算机编程的基石之一&#xff0c;对于初学者来说&#xff0c;既是一种挑战&#xff0c;也是一次深入了解计算机底层运作的绝佳机会。本文将从四个方面、五个方面、六个方面和七个方面&#xff0…...

3步实现跨系统文件互通:WinBtrfs驱动全解析

3步实现跨系统文件互通&#xff1a;WinBtrfs驱动全解析 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 一、问题场景&#xff1a;双系统用户的文件访问困境 痛点直击&#xff1a;当Wi…...

libcimbar视觉传输工具实战指南:跨设备无网络数据传输解决方案

libcimbar视觉传输工具实战指南&#xff1a;跨设备无网络数据传输解决方案 【免费下载链接】libcimbar Optimized implementation for color-icon-matrix barcodes 项目地址: https://gitcode.com/GitHub_Trending/li/libcimbar 一、核心价值解析&#xff1a;突破网络限…...

计算机毕业设计springboot展会门票系统 基于SpringBoot的会展票务数字化服务平台 SpringBoot框架下的博览会入场券预约与核销系统

计算机毕业设计springboot展会门票系统 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。随着会展经济的蓬勃发展和数字化转型的深入推进&#xff0c;各类展会活动规模不断扩大&am…...

OpenClaw技能组合:Qwen3-4B串联多个自动化模块完成复杂任务

OpenClaw技能组合&#xff1a;Qwen3-4B串联多个自动化模块完成复杂任务 1. 为什么需要技能组合&#xff1f; 去年我接手了一个数据分析项目&#xff0c;需要每周从三个不同来源收集数据&#xff0c;清洗后生成可视化报告。最初我手动执行这些步骤&#xff0c;每次耗时近3小时…...

javaweb高校学生宿舍管理系统的设计与实现

目录同行可拿货,招校园代理 ,本人源头供货商高校学生宿舍管理系统功能分析学生信息管理模块宿舍分配管理模块费用管理模块报修与维修管理模块访客与门禁管理模块卫生检查与评分模块系统管理模块技术实现要点项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系…...

保姆级教程:手把手教你用VCSA 8.0.3接管Windows AD域,实现统一登录

企业级虚拟化身份管理&#xff1a;VCSA 8.0.3与Windows AD域深度集成实战 在数字化转型浪潮中&#xff0c;企业IT基础设施的集中化管理已成为刚需。当虚拟化平台规模扩大至数百台主机时&#xff0c;如何确保管理员和开发人员既能高效访问资源&#xff0c;又能遵循最小权限原则&…...

计算机毕业设计springboot在线阅读平台的设计与实现 基于SpringBoot的数字化图书阅读与积分兑换服务平台 SpringBoot框架下的网络文献资源管理与读者互动系统

计算机毕业设计springboot在线阅读平台的设计与实现 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 随着互联网技术的飞速发展和移动智能终端的普及&#xff0c;人们的阅读习惯…...

Marigold开发者手册:深入理解训练代码和自定义扩展

Marigold开发者手册&#xff1a;深入理解训练代码和自定义扩展 【免费下载链接】Marigold [CVPR 2024 - Oral, Best Paper Award Candidate] Marigold: Repurposing Diffusion-Based Image Generators for Monocular Depth Estimation 项目地址: https://gitcode.com/gh_mirr…...

Phi-4-mini-reasoning效果验证:在MMLU-Pro数学子集上的实际推理准确率展示

Phi-4-mini-reasoning效果验证&#xff1a;在MMLU-Pro数学子集上的实际推理准确率展示 1. 模型概述 Phi-4-mini-reasoning是一款3.8B参数的轻量级开源模型&#xff0c;由微软Azure AI Foundry团队开发。这款模型专为数学推理、逻辑推导和多步解题等强逻辑任务设计&#xff0c…...

Phi-4-Reasoning-Vision基础操作:图片预览、参数调整、结果复制与导出功能

Phi-4-Reasoning-Vision基础操作&#xff1a;图片预览、参数调整、结果复制与导出功能 1. 工具概览 Phi-4-Reasoning-Vision是一款基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具。它专为双卡4090环境优化&#xff0c;通过Streamlit搭建了直观的宽屏交…...