Python中的统计学(二)

news2024/9/21 10:58:18

大数定律和中心极限定律都是概率论中重要的定理。它们之间的不同在于它们所涉及的随机变量和极限的不同。

大数定律是指随着样本容量的增大,样本均值越来越接近于总体均值的定律。即样本均值的极限等于总体均值,也就是说,当样本量足够大时,样本均值可以很好地反映总体均值。

中心极限定理是指当样本量趋近于无限大时,样本均值的分布趋近于正态分布。换句话说,对于任何一种分布,只要样本容量足够大,那么它的样本均值分布就可以近似地看作是正态分布,且这个近似程度随着样本容量的增大而增加。

简单来说,大数定律告诉我们,随着样本量的增大,样本均值越来越接近总体均值;而中心极限定理则告诉我们,对于任何一种分布,只要样本容量足够大,样本均值就可以看作是正态分布,且这个近似程度随着样本容量的增大而增加。

大数定律的python实现:

import random
import matplotlib.pyplot as plt

# 掷骰子模拟函数
def roll_dice():
    return random.randint(1, 6)

# 大数定律模拟函数
def law_of_large_numbers(num_samples):
    # 用于保存每次模拟的平均值
    means = []
    
    for i in range(1, num_samples + 1):
        # 模拟投掷 i 次骰子并计算平均值
        values = [roll_dice() for j in range(i)]
        mean = sum(values) / i
        
        # 将当前平均值加入列表
        means.append(mean)
    
    # 绘制平均值随样本数量变化的折线图
    plt.plot(list(range(1, num_samples + 1)), means)
    plt.xlabel("Number of samples")
    plt.ylabel("Mean value")
    plt.title("Law of Large Numbers")
    plt.show()

# 测试
law_of_large_numbers(1000)

它生成的图像如下所示:

在这里插入图片描述
中心极限定律的实现:

import numpy as np
import matplotlib.pyplot as plt

# 生成一些随机变量
samples = np.random.rand(1000, 100)

# 计算每行的和
sums = np.sum(samples, axis=1)

# 绘制直方图
plt.hist(sums, bins=50, density=True, alpha=0.7, color='skyblue')

# 绘制正态分布曲线
mean = np.mean(sums)
std = np.std(sums)
x = np.linspace(mean - 4 * std, mean + 4 * std, 100)
y = 1 / (std * np.sqrt(2 * np.pi)) * np.exp(-0.5 * ((x - mean) / std) ** 2)
plt.plot(x, y, color='red')

# 显示图像
plt.show()

在这里插入图片描述

F分布

F分布(F-distribution)是一种连续概率分布,常用于比较两个样本方差是否显著不同。F分布有两个自由度参数: d 1 d_1 d1 d 2 d_2 d2,通常用于计算两个随机变量的方差比值的概率分布。

在 Python 中,可以使用 SciPy 库中的 f 模块来生成 F 分布随机变量、计算概率密度函数和累积分布函数等。以下是一个生成 F 分布随机变量并绘制其概率密度函数的示例代码:

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import f

# 设置 F 分布的自由度参数
dfn, dfd = 10, 20

# 生成 F 分布随机变量
rvs = f.rvs(dfn=dfn, dfd=dfd, size=10000)

# 绘制 F 分布的概率密度函数
x = np.linspace(0, 5, 100)
pdf = f.pdf(x, dfn=dfn, dfd=dfd)
plt.plot(x, pdf, label='F-distribution')

# 显示图像
plt.legend()
plt.show()

图示如下:
在这里插入图片描述

卡方分布

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import chi2

# 设定自由度参数 k
k = 3

# 生成一组卡方分布的随机样本
samples = chi2.rvs(k, size=1000)

# 绘制卡方分布的概率密度函数图像
x = np.linspace(0, 20, 1000)
y = chi2.pdf(x, k)
plt.plot(x, y, linewidth=2, color='blue')

# 绘制随机样本的直方图
n, bins, patches = plt.hist(samples, bins=50, density=True, alpha=0.7, color='skyblue')

plt.title('Chi-Square Distribution')
plt.xlabel('x')
plt.ylabel('Probability density')

plt.show()

在这里插入图片描述

T分布

简称 t 分布,在概率论及统计学中用于根据小样本来估计总体呈正态分布且标准差未知的期望值。若总体标准差已知,或是样本数足够大时依据中心极限定理渐进正态分布则应使用正态分布来进行估计。

from scipy.stats import t

# 设置自由度和均值
df = 10
mean = 0

# 生成一组 T 分布随机变量
samples = t.rvs(df=df, loc=mean, size=1000)

# 计算概率密度函数
pdf = t.pdf(x=samples, df=df, loc=mean)

# 绘制概率密度函数图像
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(samples, pdf)
ax.set_xlabel('X')
ax.set_ylabel('PDF(X)')
ax.set_title(f'T-distribution with df={df} and mean={mean}')
plt.show()

在这里插入图片描述

指数分布

指数分布具有无记忆性,它可以用来表示独立随机事件的发生间隔

import numpy as np
import matplotlib.pyplot as plt

# 生成一组指数分布的随机样本
lam = 0.5  # 指数分布的参数 lambda
sample_size = 1000
samples = np.random.exponential(1/lam, size=sample_size)

# 绘制样本的直方图和理论的概率密度函数曲线
fig, ax = plt.subplots()
n, bins, patches = ax.hist(samples, bins=50, density=True, alpha=0.7, color='skyblue')

# 计算指数分布的概率密度函数
x = np.linspace(0, np.max(samples), 1000)
pdf = lam * np.exp(-lam * x)

# 绘制理论的概率密度函数曲线
ax.plot(x, pdf, 'r', linewidth=2)

# 设置图表标题和轴标签
ax.set_title("Exponential Distribution (lambda=0.5)")
ax.set_xlabel("Values")
ax.set_ylabel("Probability Density")

# 显示图表
plt.show()

在这里插入图片描述

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

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

相关文章

绝了!!PDF转换没想到这么简单

PDF处理是很多小伙伴的“痛”,在工作学习中,PDF转换、PDF编辑、PDF和图片的各种问题都是需要快速解决的,但市面上不少付费的软件让我们很是肉痛! 今天给大家推荐5个免费的神仙PDF转换网站,解决你的所以PDF问题~ 记得…

Simulink 自动代码生成电机控制:硬件开发板系统介绍

目录 前言 电源电路 MCU电路 开发板接口 关于电流采样和过流保护 驱动部分 总结 前言 在介绍开发板之前突然有感而发想多说两句,本人从事电控行业也是有一些年头了,除了刚刚毕业就接触的电机控制外,就是电源控制相关的,像三相P…

Point-to Analysis指针分析(2)

https://blog.csdn.net/qq_43391414/article/details/111046505 下面介绍一种新的指针分析的算法Steensgaard算法,并将其与上一篇文章介绍 Steensgaard算法 不同于Andersen算法,Steensgaard在前者的基础上,再次对问题进行了简化,从而指针分析…

远程访问及控制

目录 一、SSH远程管理 1)SSH的简介 2)SSH的优点 3)常用的SSH软件的介绍 4)SSH 的组成 5)SSH的密钥登录 密钥登录的过程: 二、SSH的运用 1 )SSH配置文件信息 2)存放ssh服务…

JAVA 进程CPU过高排查

1. top命令看一下JAVA进程: 占用500%多,非常恐怖,程序卡得动不了了。 2. 使用命令top -H -p PID 此处PID就是上一步获取的进程PID,我的PID是13342,通过此命令可以查看实际占用CPU最高的的线程的ID,此处几位…

ChatGPT+Ai绘图【stable-diffusion实战】

ai绘图 stable-diffusion生成【还有很大的提升空间】 提示词1 Picture a planet where every living thing is made of light. The landscapes are breathtakingly beautiful, with mountains and waterfalls made of swirling patterns of color. What kind of societies m…

【学习笔记】unity脚本学习(五)【常用的方法函数Destroy、Instantiate 、SendMessage、invoke 、Coroutine】

目录 常用的方法函数Object体系结构MonoBehaviour复习继承的变量 继承自Object的方法Destroy 物体的销毁DestroyImmediate 立即销毁对象(强烈建议您改用 Destroy)Object.DontDestroyOnLoadObject.Instantiate 物体的生成类子弹生成案例 继承自Component的…

八股+面经

文章目录 项目介绍1.不动产项目数据机器学习算法调研图像提取算法调研数据集-ImageNetXceptionVGGInceptionDensenetMobilenet 2.图书项目技术栈面试问题 Java基础MapHashMap v.s Hashtable(5点)ConcurrentHashMap v.s Hashtable(2点)代理模式1. 静态代理2. 动态代理2.1 JDK 动…

什么样的人适合学习网络安全?怎么学?

有很多想要转行网络安全或者选择网络安全专业的人在进行决定之前一定会有的问题:什么样的人适合学习网络安全?我适不适合学习网络安全? 会产生这样的疑惑并不奇怪,毕竟网络安全这个专业在2017年才调整为国家一级学科,…

elasticsearch——数据同步

目录 数据同步思路分析 方案一:同步调用 方案二:异步通知 方案三:监听binlog 区别 关于elasticsearch与数据库数据同步 导入课前资料提供的hotel-admin项目,启动并测试酒店数据的CRUD 声明exchange、queue、RoutingKey 导…

Python列表和字典前面为什么会加星号(**)?

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 python 中,单星号*和双星号**除了作为“乘”和“幂”的数值运算符外, 还在列表、元组、字典的操作中有着重要作用。 一、列表(list)、元组(tuple&#xff09…

flac格式如何转换为mp3,这3个方法超好用

随着音频格式的不断创新和发展,每种格式对应不同的特点。比如像flac格式可以提供无损音质的体验,但它的文件大小却是相对较大,不太适合在普通设备上进行传输和使用。而mp3作为一种流行的音频格式,它的压缩率较高,不但可…

OceanBase 4.1解读:我们想给用户一个开箱即用的OceanBase部署运维工具

欢迎访问 OceanBase 官网获取更多信息:https://www.oceanbase.com/ 关于作者 肖磊 OceanBase 产品专家 负责 OceanBase 运维管控体系产品规划与设计,包括安装部署工具(OBD、OAT)、运维管控平台(OCP、OCP Express),致力…

MySQL安装步骤详解

MySQL环境搭建 MySQL的下载 MySQL的4大版本 MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于 大多数普通用户。 MySQL Enterprise Edition 企业版本,需付费,不能在线下载…

运行torch心得体会

遇到的问题: ①ModuleNotFoundError: No module named torch ②‘conda‘不是内部或外部命令,也不是可运行的程序或批处理文件。 ③import torch 提示找不到指定的模块visual C redistributable is not installed 过程: 用前一段时间就下…

流程图拖拽视觉编程--概述

一般的机器视觉平台采用纯代码的编程方式,如opencv、halcon,使用门槛高、难度大、定制性强、开发周期长,因此迫切需要一个低代码开发的视觉应用平台。AOI缺陷检测的对象往往缺陷种类多,将常用的图像处理算子封装成图形节点,如抓直…

「C/C++」C/C++强制类型转换

博客主页:何曾参静谧的博客 文章专栏:「C/C」C/C学习 目录 相关术语C语言中的强制类型转换C中的强制类型转换static_castdynamic_castreinterpret_castconst_cast 注意事项 相关术语 强制类型转换:是指将一个数据类型强制转换为另一个数据类型…

magic Grid

说明文档 A lightweight Javascript library for dynamic grid layoutshttps://vuejsexamples.com/a-lightweight-javascript-library-for-dynamic-grid-layouts/npm npm install magic-grid cnd <script src"https://unpkg.com/magic-grid/dist/magic-grid.cjs.js…

【C++ 七】类和对象:封装、继承、多态、友元、运算符重载

封装、继承、多态、对象的初始化和清理、C对象模型和this指针、友元、运算符重载 文章目录 封装、继承、多态、对象的初始化和清理、C对象模型和this指针、友元、运算符重载前言1 封装1.1 封装的意义1.1.1 封装意义一1.1.2 封装意义二 1.2 struct 和 class 区别1.3 成员属性设置…

数据结构——二叉树的修改与构造

数据结构——二叉树的修改与构造 一、修改二叉树226. 翻转二叉树1.前/后序递归2.广度优先搜索迭代3.拓展&#xff1a;修改中序遍历 / 中序统一迭代写法 114. 二叉树展开为链表 二、构造二叉树106. 从中序与后序遍历序列构造二叉树递归思路 105. 从前序与中序遍历序列构造二叉树…