评估一元边缘分布的正态性

作者: readilen | 来源:发表于2019-06-16 18:51 被阅读1次

1 检查是否对称

一般来说,统计量较小的时候使用点图,n较大的时候使用直方图,可以揭示一元分布的一个尾部比另一个长的多的情况.
例子

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt  
from scipy import stats
from matplotlib import style

mu, sigma = 0, 0.
s = np.random.normal(mu, sigma, 1000)
f, ax = plt.subplots(figsize=(10, 7))
plt.scatter(x=range(len(s)), y=s, c='r')
plt.xlim(0,500)
plt.show()
散点图
sns.distplot(s)
直方图

是不是很对称啊
我们熟悉一下更多的正态分布样图

style.use('fivethirtyeight')
mu_params = [-1, 0, 1]
sd_params = [0.5, 1, 1.5]
x = np.linspace(-7, 7, 100)
f, ax = plt.subplots(len(mu_params), len(sd_params), sharex=True, sharey=True, figsize=(12,8))
for i in range(3):
    for j in range(3):
        mu = mu_params[i]
        sd = sd_params[j]
        y = stats.norm(mu, sd).pdf(x)
        ax[i, j].plot(x, y)
        ax[i, j].plot(0,0, label='mu={:3.2f}\nsigma={:3.2f}'.format(mu,sd), alpha=0)
        ax[i, j].legend(fontsize=10)
ax[2,1].set_xlabel('x', fontsize=16)
ax[1,0].set_ylabel('pdf(x)', fontsize=16)
plt.suptitle('Gaussian PDF', fontsize=16)
plt.tight_layout()
plt.show()
更多分布图

2 区间检查

一元正态分布属于区间(μ-σ,μ+σ)内的取值概率为0.683,
属于区间(μ-2σ,μ+2σ)内的取值概率为0.954
在(μ-3σ,μ+3σ)内的取值概率为0.997

sigma = 2
list(map(lambda x: stats.norm.cdf(x*sigma,loc=0,scale=sigma) - stats.norm.cdf(-x*sigma,loc=0,scale=sigma), range(1, 6)))

[0.6826894921370859,
 0.9544997361036416,
 0.9973002039367398,
 0.9999366575163338,
 0.9999994266968562]

3 QQ图

QQ图(Quantile Quantile Plot)有两个作用,1检查一组数据是否服从同一分布,2检查两个分布是否服从同一分布
QQ图原理是比较两组数据的累计分布函数来判断两组数据是否是服从同一分布,所以第一步我们应该做两组数据的累计分布。首先,作为对比我们看一下标准正太分布的累计分布图

x = np.linspace(-5, 5, 100)
y = stats.norm.cdf(x, 0, 1)
plt.plot(x, y)
正态分布累计图

然后,绘制目标数据(这里使用随机生成的数据集)的累计分布函数图

x = np.random.normal(0, 1, 100)
sorted_ = np.sort(x)
yvals = np.arange(len(sorted_))/float(len(sorted_))
plt.plot(sorted_, yvals)
实际的累计图

直观上对比,目标累计分布函数图和标准正太累计分布函数图差异不大,事实是不是这样呢?最后我们就可以做qq图做对比。

stats.probplot(x, dist="norm", plot=plt)
plt.show()
image.png

除了正态分布,我们还可以检测t分布(自动度较小)

nsample = 100
plt.figure(figsize=(10, 8))
x = stats.t.rvs(3, size=nsample)
res = stats.probplot(x, plot=plt)
t分布

检测t分布(自动度较大)

nsample = 100
plt.figure(figsize=(10, 8))
x = stats.t.rvs(25, size=nsample)
res = stats.probplot(x, plot=plt)
t分布(自动度较大)

两种正态分布的混合

nsample = 100
plt.figure(figsize=(10, 8))
x = stats.norm.rvs(loc=[0,5], scale=[1,1.5],size=(nsample,2)).ravel()
res = stats.probplot(x, plot=plt)
两种正态分布的混合

loggamma分布

plt.figure(figsize=(10, 8))
x = stats.loggamma.rvs(c=2.5, size=500)
stats.probplot(x, dist=stats.loggamma, sparams=(2.5,), plot=plt)
loggamma分布

相关文章

  • 评估一元边缘分布的正态性

    1 检查是否对称 一般来说,统计量较小的时候使用点图,n较大的时候使用直方图,可以揭示一元分布的一个尾部比另一个长...

  • 19正态性和平稳性检验

    ** 正态分布与正态性检验**正态分布(Normal distribution),也称“常态分布”,又名高斯分布(...

  • R语言数据探索

    正态性检验: P=0.1558 接收H0 为正太分布

  • 数据正态性检验-手动推导与基本原理推论

    正态性:三种方法; 1.数据密度直方图;2,qqplot:依据为样本转化为标准正态分布后等于真正的标准正太分布,这...

  • 《白话统计》笔记—正态性和方差齐性

    目录: 正态性检验统计方法判断正态性用描述的方法判断正态性 方差齐性判断 正态性和方差齐性是经典的统计模型应用的前...

  • 【原创】概率论6

    概率论主题写作, 第六天, 关于正态分布。 正态分布, 首先是个分布, 然后这个分布的性质用正态二字描述。 那正态...

  • R语言:有关差异分析的检验方法

    导读: 计算两组数据均值,检查分布正态性和方差齐性选择检验的方法。 1 读取,计算均值,箱图观察 2 查看数据分布...

  • 浅学正态分布(进阶历程)

    正态分布(normal distribution),normal: 常见的,典型的。正态分布即常见的分布。 正态分...

  • 投资学|非正态收益

    非正态收益在前面的分析中我们假设收益呈正态分布,并以标准差作为风险度量。如之前所述,正态性的偏离会导致极端损失的可...

  • 日更-《女士品茶》读书笔记04

    第九章中心极限定理是说,不管初始数据来自何处,这种分布都可以用正态概率分布来近似。正态概率分布就是拉普拉斯的误差函...

网友评论

    本文标题:评估一元边缘分布的正态性

    本文链接:https://www.haomeiwen.com/subject/etbgfctx.html