Q-Q图原理及Python实现
一、累积分布函数与分位数
累积密度函数(CDF,Cumulative Distribution Function)即概率密度函数的积分,公式如下:
分位数是指满足
的数,例如上四分位数是指累积概率达到75%时所对应的值。
二、Q-Q图的定义
Q-Q图(Quantile-Quantile Plot,样本分位数-总体分位数)是一种散点图,它描述了样本分位数与观测值确实服从正态分布时所观察到的分位数之间的关系,可用来检验正态性假定是否成立。当各点近似分布在一条直线附近时,可认为正态性假设成立;反之,则不成立。
设为某一随机变量
的n个观测值,这些观测值按大小排序后表示为
,由经验分布函数可知,
,
,为分析方便,作“连续性”修正,
近似为
(也可以近似为
,效果更好,R语言绘制的Q-Q图就是采用这种修正方法)
作Q-Q的步骤如下:
- 把原始观测值排序,得到
和它们对应的概率值
,
,...,
- 计算标准正态分位数
,对于标准正态分布,分位数
由下述关系定义
- 作观测值的点对(
),(
),...,(
)的图形,并检查结果的“直线性”(假设观测值
服从正态分布,则
服从标准正态分布,累积概率相同时,由Q-Q图可知
,即
,由此可以看出若观测值近似服从标准正态分布,则各点应围绕
波动)
三、Python实现
复刻一下大佬的图
from scipy import stats
import numpy as np
import matplotlib.pyplot as plt
from statsmodels.distributions.empirical_distribution import ECDFplt.figure(1)
x = np.arange(-4, 4, 0.1)
y = stats.norm.cdf(x, 0, 1)
plt.plot(x, y,c='k',lw=1.2)
plt.yticks(np.arange(0, 1.2, 0.2))
plt.xticks(np.arange(-4, 5, 1))
plt.xlabel('数值')
plt.ylabel('累积分布')
plt.title('正态分布')# 样本数据随机取自均值为3,标准差为2的正态分布
mu, sigma = 3, 2
np.random.seed(10086)
data = np.random.normal(mu,sigma,size=30)
ecdf = ECDF(data)
cdf = ecdf(data)
data.sort()
cdf.sort()plt.figure(2)
plt.scatter(data,cdf,c='k',s=10)
plt.plot(data,cdf,c='k',lw=1.2)
plt.xlabel('数值')
plt.ylabel('累积分布')
plt.title('观测值累积分布')plt.figure(3)
mu, sigma = 0, 1
np.random.seed(12345)
x = np.random.normal(mu,sigma,size=30)
x.sort()
plt.scatter(x,data,c='k',s=10)
z = np.polyfit(x, data, 1)
f = np.poly1d(z)
# 绘制拟合线
plt.plot(x,f(x))
plt.xlabel('正态总体分位数')
plt.ylabel('样本分位数')
plt.title('正态Q-Q图')plt.show()
四、参考文献
实用多元统计分析:第6版 /(美)约翰逊(Johnson,R.A.),(美)威克恩(Wichern,D.W.)著;陆璇,叶俊译.
QQ图判断一个分布是否为正态分布_陋室逢雨的博客-CSDN博客_qq图怎么看正态分布
Q-Q图原理及Python实现相关推荐
- 时间序列分析ARMA模型原理及Python statsmodels实践(上)
目录 1. 时间序列及相关基本概念 1.1. 时间序列分解 1.2. 时间平稳序列 1.3. 自相关与自相关函数(ACF) 1.4. 白噪声及Ljung-Box检验 1.4.1. 白噪声 1.4.2. ...
- 主成分分析(PCA)原理及其python实现
主成分分析 一.概述 1.1 问题提出 1.2 降维的作用 二.主成分分析(PCA)主要思想 三.相关数学知识 四.PCA实现步骤 4.1 特征值分解矩阵 4.2 SVD分解协方差矩阵 五.pytho ...
- python原理_强化学习:原理与Python实现
强化学习:原理与Python实现 作者:肖智清 著 出版日期:2019年08月 文件大小:17.18M 支持设备: ¥60.00 适用客户端: 言商书局 iPad/iPhone客户端:下载 Andro ...
- 【机器学习】Weighted LSSVM原理与Python实现:LSSVM的稀疏化改进
[机器学习]Weighted LSSVM原理与Python实现:LSSVM的稀疏化改进 一.LSSVM 1.LSSVM用于回归 2.LSSVM模型的缺点 二.WLSSVM的数学原理 三.WLSSVM的 ...
- python主成分对变量的贡献率_(数据科学学习手札20)主成分分析原理推导Python自编函数实现...
主成分分析(principal component analysis,简称PCA)是一种经典且简单的机器学习算法,其主要目的是用较少的变量去解释原来资料中的大部分变异,期望能将现有的众多相关性很高的变 ...
- 偏最小二乘(PLS)原理分析Python实现
目录 1 偏最小二乘的意义 2 PLS实现步骤 3 弄懂PLS要回答的问题 4 PLS的原理分析 4.1 自变量和因变量的主成分求解原理 4.1.1 确定目标函数 4.1 ...
- 模式识别中利用二型势函数法求解非线性分类器的原理以及python代码实现
前言 在学校的深度学习实验过程中,由于要求实现非线性分类器的势函数实验中给出的例程代码是matlab语言的(ps:自从电脑被偷了以后,新电脑没有装matlab),我便想到用python实现非线性分类器 ...
- 手把手教你EMD算法原理与Python实现(更新)
Rose今天主要介绍一下EMD算法原理与Python实现.关于EMD算法之前介绍过<EMD算法之Hilbert-Huang Transform原理详解和案例分析>, SSVEP信号中含有自 ...
- 倒频谱原理与python实现
目录 倒频谱定义 倒频谱python案例 本教程为脑机学习者Rose发表于公众号:脑机接口社区 .QQ交流群:903290195 倒频谱定义 倒频谱可以分析复杂频谱图上的周期结构,分离和提取在密集调频 ...
最新文章
- Windows命令行下的进程管理
- 手机psp模拟器哪个好_功能强大,手机微信群控系统和云控哪个好?
- leetcode448-Find All Numbers Disappeared in an Array
- 还有人买吗?苹果新一代iPod touch悄然发布:升级为A10芯片
- Linux LVM过程问题
- 产品研发过程管理专题——产品需求分析原则二
- Python思维导图框架总结
- Clojure实现的简单短网址服务(Compojure、Ring、Korma库演示样例)
- linux下文件和目录的颜色表示
- 模型类中的常用字段类型
- 嵌入式常用通讯协议2(CAN协议)
- ASF/WMV 文件格式解析
- 距阵乘以一个未知距阵得单位矩阵 怎么算_干货分享:怎样假装一个带货流水过亿的直播达人?...
- python游戏猜拳_Python之猜拳游戏
- Paradigm Shifts in Kernel Programming 内核编程的范式转移
- 脉冲宽度调制_20160121
- Tomcat源码解析:环境搭建
- java双语试卷_Java程序设计基础(双语)答案试题题目及答案,期末考试题库,章节测验答案...
- VS无法打开 NuGet包
- WebRTC 传输安全机制:DTLS 和 SRTP
热门文章
- 总结:机器学习之DBSCAN
- 【蓝桥杯选拔赛真题10】Scratch投球 少儿编程scratch蓝桥杯选拔赛真题讲解
- 企业邮箱邮件归档,群发单显什么意思,邮箱自动回复如何设置?
- va_strartva_endva_argvsprintf可变参函数基本解释及使用
- java中多线程reentlock_Java多线程系列——深入重入锁ReentrantLock
- BIN文件与HEX文件比较
- tar: 它似乎不像是一个 tar 归档文件_解决方法
- Claris’ Contest # 4
- @autowired 注解 启动时候报找不到指定的实体对象
- uni-app px与rpx的转换