一. QQ图

     分位数图示法(Quantile Quantile Plot,简称 Q-Q 图)
      统计学里Q-Q图(Q代表分位数)是一个概率图,用图形的方式比较两个概率分布,把他们的两个分位数放在一起比较。首先选好分位数间隔。图上的点(x,y)反映出其中一个第二个分布(y坐标)的分位数和与之对应的第一分布(x坐标)的相同分位数。因此,这条线是一条以分位数间隔为参数的曲线。如果两个分布相似,则该Q-Q图趋近于落在y=x线上。如果两分布线性相关,则点在Q-Q图上趋近于落在一条直线上,但不一定在y=x线上。Q-Q图可以用来可在分布的位置-尺度范畴上可视化的评估参数。
      从定义中可以看出Q-Q图主要用于检验数据分布的相似性,如果要利用Q-Q图来对数据进行正态分布的检验,则可以令x轴为正态分布的分位数,y轴为样本分位数,如果这两者构成的点分布在一条直线上,就证明样本数据与正态分布存在线性相关性,即服从正态分布。
 
二. PP图
       P-P图是根据变量的累积概率对应于所指定的理论分布累积概率绘制的散点图,用于直观地检测样本数据是否符合某一概率分布。如果被检验的数据符合所指定的分布,则代表样本数据的点应当基本在代表理论分布的对角线上。
       由于P-P图和Q-Q图的用途完全相同,只是检验方法存在差异。要利用QQ图鉴别样本数据是否近似于正态分布,只需看QQ图上的点是否近似地在一条直线附近,而且该直线的斜率为标准差,截距为均值.
用QQ图还可获得样本偏度和峰度的粗略信息.
 
scipy 画Q-Q图
fig = plt.figure()
res = stats.probplot(train['SalePrice'], plot=plt)
plt.show()

scipy.stats 用法

# -*- coding: utf-8 -*-
from scipy import stats
from numpy import random # Distributions
# 常用分布可参考本文档结尾处
# 分布可以使用的方法见下列清单
data=random.normal(size=1000)
stats.norm.rvs(loc=0,scale=1,size=10,random_state=None) # 生成随机数
stats.norm.pdf(-1.96,loc=0,scale=1) # 密度分布函数,画密度分布图时使用
stats.norm.cdf(-1.96,loc=0,scale=1) # 累计分布函数,-1.96对应2.5%
stats.norm.sf(-1.96,loc=0,scale=1) # 残存函数(=1-cdf),-1.96对应97.5%
stats.norm.ppf(0.025,loc=0,scale=1) # 累计分布函数反过来
stats.norm.isf(0.975,loc=0,scale=1) # 残存函数反过来
stats.norm.interval(0.95,loc=0,scale=1) # 置信度为95%的置信区间
stats.norm.moment(n=2,loc=0,scale=1) # n阶非中心距,n=2时是方差
stats.norm.median(loc=0,scale=1) # Median of the distribution.
stats.norm.mean(loc=0,scale=1) # Mean of the distribution.
stats.norm.var(loc=0,scale=1) # Variance of the distribution.
stats.norm.std(loc=0,scale=1) # Standard deviation of the distribution.
stats.norm.fit(data) # fit 估计潜在分布的参数 # Statistical functions
stats.describe([1,2,3]) # 返回多个统计量
stats.gmean([1,2,4]) # 几何平均数 n-th root of (x1 * x2 * ... * xn)
stats.hmean([2,2,2]) # 调和平均数 n / (1/x1 + 1/x2 + ... + 1/xn)
stats.trim_mean([1,2,3,5],0.25) # 砍头去尾均值,按比例砍
stats.sem(data) # Calculates the standard error of the mean
stats.mode([1,1,2]) # 众数
stats.skew(data) # 偏度
stats.kurtosis(data) # 峰度
stats.moment(data,moment=3) # n阶中心矩,3阶就是偏度,4阶就是峰度
stats.skewtest(data) # 检验偏度是否符合正态分布的偏度
stats.kurtosistest(data) # 检验峰度是否符合正态分布的峰度
stats.normaltest(data) # 检验是否符合正态分布
stats.variation([1,2,3]) # 变异系数(=std/mean*100%)
stats.find_repeats([1,1,2,2,3]) # 重复值查找 stats.itemfreq([1,1,2,2,3]) # 频次统计
stats.percentileofscore([1,2,3,4,5],2) # 返回数值的分位数
stats.scoreatpercentile([1,2,3,4,5],80,interpolation_method="lower") # 返回分位数对应的数值 stats.bayes_mvs(data) # 返回均值/方差/标准差的贝叶斯置信区间 stats.iqr([1,2,3,4,5],rng=(25,75)) # 计算 IQR
stats.zscore(data) # 计算 zscore
stats.f_oneway(data,data+data,data+data+data)                           # 单因素方差分析,参数是(样本组1,样本组2,样本组3)
stats.pearsonr(data,data+data) # 皮尔森相关系数
stats.spearmanr(data,data+data) # 斯皮尔曼秩相关系数
stats.kendalltau(data,data+data) # 肯德尔相关系数
stats.pointbiserialr([1,1,1,0,0,0],[1,2,3,4,5,6]) # 点二系列相关,第一个变量需要是二分类变量
stats.linregress(data,data+data) # 线性最小二乘回归 stats.ttest_1samp(data,popmean=0) # 单样本 t-检验: 检验总体平均数的值
stats.ttest_ind(data,data+data) # 双样本 t-检验: 检验不同总体的差异
stats.ttest_rel(data,data+data) # 配对样本 t-检验
stats.ttest_ind_from_stats(mean1=0,std1=1,nobs1=100,mean2=10,std2=1,nobs2=150,equal_var=True) # 根据统计量做 t-检验
stats.wilcoxon(data,data+data) # 一种非参数的配对样本检验。t-检验假定高斯误差。可以使用威尔科克森符号秩检验, 放松了这个假设
stats.kstest(data,'norm') # Kolmogorov–Smirnov检验: 检验单一样本是否服从某一预先假设的特定分布
stats.ks_2samp(data,data+data) # 检测两样本分布是否相同
stats.ranksums(data,data+data) # Wilcoxon rank-sum statistic 检测两样本分布是否相同
stats.chisquare(data,data) # 卡方检验,第一个参数是样本分布,第二个参数是期望分布 # Circular statistical functions
# 适用于环形数据,如时间(60分钟一圈),角度(360度一圈)
# 例如 0度 与 360度 的均值应该是 0度
stats.circmean([0,360],high=0,low=360) # 均值
stats.circvar([0,360],high=0,low=360) # 方差
stats.circstd([0,360],high=0,low=360) # 标准差 # Contingency table functions
# 列联表
stats.chi2_contingency([[10,10,20],[20,20,20]],lambda_="log-likelihood") # 卡方检验,n*m的列联表,每个格子样本数要大于5,lambda_默认皮尔森
stats.fisher_exact([[8,2],[1,5]],alternative="two-sided") # 费舍尔精确检验,2*2的列联表,alternative:two-sided,less,greater
stats.contingency.expected_freq([[10,10,20],[20,20,20]]) # 返回列联表的期望频次(各变量独立时的预期频次)
import numpy as np; stats.contingency.margins(np.array([[10,10,20],[20,20,20]]))# 返回列联表的行列和 # Plot-tests
# 图检验:probplot与Q-Q图的差异:P-P图是用分布的累计比,而Q-Q图用的是分布的分位数来做检验
import matplotlib.pyplot as plt
data=random.normal(loc=0,scale=1,size=500)
stats.probplot(data,dist=stats.norm,sparams=(0,1),plot=plt) # P-P图(probability plot),参数sparams传的是均值与标准差
stats.boxcox_normplot(abs(data),-3,3,plot=plt) # 不知干啥用,Compute parameters for a Box-Cox normality plot
stats.ppcc_plot(data,-3,3,dist=stats.norm,plot=plt) # 不知干啥用,Calculate and optionally plot probability plot correlation coefficient.
stats.ppcc_max(data,dist=stats.norm) # 不知干啥用,返回 PPCC 取最大时对应的位置 # Univariate and multivariate kernel density estimation
# 核密度估计用于估计未知的密度函数,属於非参数检验方法之一
stats.gaussian_kde([data,data+random.normal(size=500)]) # 不知干啥用,Representation of a kernel-density estimate using Gaussian kernels. """ ---------------------------------------------------------------------------------------------------------
所有分布都是 rv_continuous(连续型分布) 与 rv_discrete(离散型分布) 的实例
rv_continuous([momtype, a, b, xtol, ...]) A generic continuous random variable class meant for subclassing.
rv_discrete([a, b, name, badvalue, ...]) A generic discrete random variable class meant for subclassing.
rv_histogram(histogram, *args, **kwargs) Generates a distribution given by a histogram. Continuous distributions 连续型分布
alpha An alpha continuous random variable.
beta A beta continuous random variable.
chi2 A chi-squared continuous random variable.
f An F continuous random variable.
gamma A gamma continuous random variable.
lognorm A lognormal continuous random variable.
ncx2 A non-central chi-squared continuous random variable.
ncf A non-central F distribution continuous random variable.
nct A non-central Student’s T continuous random variable.
norm A normal continuous random variable.
pareto A Pareto continuous random variable.
t A Student’s T continuous random variable.
uniform A uniform continuous random variable.
wald A Wald continuous random variable.
…… Multivariate distributions 多元分布
multivariate_normal A multivariate normal random variable.
matrix_normal A matrix normal random variable.
multinomial A multinomial random variable.
random_correlation A random correlation matrix.
…… Discrete distributions 离散型分布
binom A binomial discrete random variable.
hypergeom A hypergeometric discrete random variable.
nbinom A negative binomial discrete random variable.
poisson A Poisson discrete random variable.
randint A uniform discrete random variable.
 

参考:

Q-Q图简介

学习-Python-数据分析&数据挖掘-4 SciPy.stats

Q-Q图和P-P图的更多相关文章

  1. c/c++ 图的创建及图的相关函数(链表法)

    c/c++ 图的创建及图的相关函数(链表法) 图的概念 图由点和线组成 知道了图中有多少个点,和哪些点之间有线,就可以把一张图描绘出来 点之间的线,分有方向和无方向 创建图 创建图,实际就是创建出节点 ...

  2. ADT图及图的实现及图的应用

    图: 图中涉及的定义: 有向图: 顶点之间的相关连接具有方向性: 无向图: 顶点之间相关连接没有方向性: 完全图: 若G是无向图,则顶点数n和边数e满足:0<=e<=n(n-1)/2,当e ...

  3. POJ3114 有些图缩点/改图/最短路

    没想到手感还在~ 不须要又一次建图.仅仅要依据条件改改权值就可以. 还跑k次SPFA~ #include<cstdio> #include<iostream> #include ...

  4. KRPano资源分析工具使用说明(KRPano XML/JS解密 切片图批量下载 球面图还原 加密混淆JS还原美化)

    软件交流群:571171251(软件免费版本在群内提供) krpano技术交流群:551278936(软件免费版本在群内提供) 最新博客地址:blog.turenlong.com 限时下载地址:htt ...

  5. matlab 将多个盒图放在一张图上

    1.boxplot 将多个盒图放在一张图上 x1 = normrnd(5,1,100,1)';x2 = normrnd(6,1,200,1)';X = [x1 x2];G = [zeros(size( ...

  6. iOS启动图和开屏广告图,类似网易

    iOS启动图和开屏广告图,类似网易 启动图是在iOS开发过程中必不可少的一个部分,很多app在启动图之后会有一张自定义的开屏广告图,点击该广告图可以跳转到广告图对应的页面.今天呢,和大家分享一下如何添 ...

  7. Shader中贴图知识汇总: 漫反射贴图、凹凸贴图、高光贴图、 AO贴图、环境贴图、 光照纹理及细节贴图

    原文过于冗余,精读后做了部分简化与测试实践,原文地址:http://www.j2megame.com/html/xwzx/ty/2571.html   http://www.cnblogs.com/z ...

  8. 功能模块图、业务流程图、处理流程图、ER图,数据库表图(概念模型和物理模型)画法

    如果你能使用计算机规范画出以下几种图,那么恭喜你,你在我这里被封为学霸了,我膜拜ing-- 我作为前端开发与产品经理打交道已有5-6年时间,产品经理画的业务流程图我看过很多.于是百度搜+凭以往经验脑补 ...

  9. c语言实现灰度图转换为二值图

    将上篇得到的灰度图转换为二值图,读取像素数据,低于某一值置0,否则设置为255,为得到更好的效果不同图片应采用不同的值 /* 2015年6月2日11:16:22 灰度图转换为二值图 blog:http ...

  10. PS-前端切图教程(切jpg图和切png图)

    微微一运功,把家底都抖出来了. 不过,作为一个设计出身的前端来说,摸ps就和摸键盘一样了 所以可能教程中还是有没用过ps的人看不懂的地方, 欢迎加群讨论:613512106... ---------- ...

随机推荐

  1. 表格样式、表格css、

    .mytab{ border-collapse: collapse;}.mytab tr,.mytab td,.mytab th{ text-align: center; border: 1px so ...

  2. ansible-playbook-常用

    创建软链:file: - name: create link hosts: "{{hosts_ip}}" tasks: - name: create link file: src= ...

  3. Nginx接入gPRC

    gPRC官网:https://grpc.io/ NGINX将在1.13.10版本中包含grpc相关功能 这个版本支持NGINX代理gRPC TCP连接.可以用来: 发布gRPC服务,包括未加密/加密的 ...

  4. Cassandra开发入门文档第三部分(非规范化关系结构、批处理)

    非规范化关系结构 第二部分我们讲了复合主键,这可以灵活的解决主从关系,也即是一对多关系,那么多对多关系呢?多对多关系的数据模型应该回答两个问题: 我跟着谁? 谁跟着我? -- 建表,我们发现这里有个不 ...

  5. dotnet core 项目脚手架这种小事嘛...

    dotnet core脚手架批处理.bat @echo 请修改批处理文件名后,如:Example.Core ,注释掉goto end,再执行脚本 pause goto end ::goto end s ...

  6. Ubuntu上使用Docker打包镜像

    关于这个一开始会有点懵,直白一点就是,把本地路径下的代码放到docker里面去,然后在docker这个隔离环境中运行调用我们的程序.专业解释请自行检索学习. 第一步:创建容器 docker run - ...

  7. Dubbo_异常_服务注册运行正常但是Dubbo-Admin看不到服务

    出自:https://www.cnblogs.com/gossip/p/6021698.html 一.背景: 1.Dubbo服务正常注册到ZooKeeper 2.客户端调用Dubbo服务正常 二.原因 ...

  8. [Arch] 域名解析常用两步设置

    主站   A 记录        (对应IPv4)   主机记录: @ (表示解析到不带 www 主域名)   值为 IP 主站 CNAME 记录 (表示别名) 主机记录: www   (表示解析到带 ...

  9. Docker Overview

    Docker 是一个用于开发.交付和运行应用的开放平台,Docker 设计用来更快的交付你的应用程序.Docker 可以将你的应用程序和基础设施层隔离,并且还可以将你的基础设施当作程序一样进行管理.D ...

  10. redis 简单教程

    一.redis的安装 安装环境:centos 7 1) 下载redis 这里我们下载的是redis-4.0.10.tar.gz 2)将redis tar包移动至 /usr/local 执行如下命令 c ...