精华内容
下载资源
问答
  • 这篇文章主要讲讲如何判断数据是否符合正态分布。主要分为两种方法:描述统计方法和统计检验方法。描述统计方法描述统计就是用描述的数字或图表来判断数据是否符合正态分布。常用的方法有Q-Q图、P-P图、直方图、茎叶...
    - 点击上方 “中国统计网” 订阅我吧!-

    7506d30c6dc0c9b56aeeeab08307d5ae.gif

    在前面的文章中讲过,很多模型的假设条件都是数据是服从正态分布的。这篇文章主要讲讲如何判断数据是否符合正态分布。主要分为两种方法:描述统计方法和统计检验方法。

    描述统计方法 6e04db3d40b17f28633fe9c43a229503.gif

    描述统计就是用描述的数字或图表来判断数据是否符合正态分布。常用的方法有Q-Q图、P-P图、直方图、茎叶图。

    1. Q-Q图

    此Q-Q非用于聊天的QQ,Q是quantile的缩写,即分位数。分位数就是将数据从小到大排序,然后切成100份,看不同位置处的值。比如中位数,就是中间位置的值。

    Q-Q图的x轴为分位数,y轴为分位数对应的样本值。x-y是散点图的形式,通过散点图可以拟合出一条直线,如果这条直线是从左下角到右上角的一条直线,则可以判断数据符合正态分布,否则则不可以。

    46e3d52fcfb6a9543d68aa0e929765a3.png

    拟合出来的这条直线和正态分布之间有什么关系呢?为什么可以根据这条直线来判断数据是否符合正态分布呢。

    我们先来想一下正态分布的特征,正态分布的x轴为样本值,从左到右x是逐渐增大的,y轴是每个样本值对应的出现的概率。概率值先上升后下降,且在中间位置达到最高。

    可以把Q-Q图中的y轴理解成正态分布中的x轴,如果拟合出来的直线是45度,可以保证中位数两边的数值分布是一样的,即正态分布中基于中位数左右对称。

    在Python中可以使用如下代码来绘制Q-Q图:

    from scipy import statsfig = plt.figure()res = stats.probplot(x, plot=plt)plt.show()

    与Q-Q图类似的是P-P图,两者的区别是前者的y轴是具体的分位数对应的样本值,而后者是累计概率。

    2. 直方图

    直方图分为两种,一种是频率分布直方图,一种是频数分布直方图。频数就是样本值出现的次数,频率是某个值出现的次数与所有样本值出现总次数的比值。

    在Python中我们可以使用如下代码来绘制频数分布直方图:

    import matplotlib.pyplot as pltplt.hist(x,bins = 10)

    4e44e6bec61bf2482b12aaf2e67007bd.png

    可以使用如下代码来绘制频率分布直方图:

    import seaborn as snssns.distplot(x)

    f5cf8354801eb58cbe5198a395079508.png

    与直方图类似的还有茎叶图,茎叶图是类似于表格形式去表示每个值出现的频次。

    统计检验方法 6e04db3d40b17f28633fe9c43a229503.gif

    讲完了描述统计的方法,我们来看一下统计检验的方法。统计检验的方法主要有SW检验、KS检验、AD检验、W检验。

    SW检验中的S就是偏度,W就是峰度,峰度和偏度与正态的关系我们在前面的文章有讲过,没看过的同学可以去看看:你到底偏哪边的?

    1. KS检验

    KS检验是基于样本累积分布函数来进行判断的。可以用于判断某个样本集是否符合某个已知分布,也可以用于检验两个样本之间的显著性差异。

    如果是判断某个样本是否符合某个已知分布,比如正态分布,则需要先计算出标准正态分布的累计分布函数,然后在计算样本集的累计分布函数。两个函数之间在不同的取值处会有不同的差值。我们只需要找出来差值最大的那个点D。然后基于样本集的样本数和显著性水平找到差值边界值(类似于t检验的边界值)。判断边界值和D的关系,如果D小于边界值,则可以认为样本的分布符合已知分布,否则不可以。

    PDF( probability density function):概率密度函数
    CDF( cumulative distribution function):累积分布函数,是概率密度函数的积分

    314aa6809699740628f90ed08e9893e6.png

    在Python中有现成的包可以直接用于KS检验:

    from scipy.stats import kstestkstest(x,cdf = "norm")

    x表示待检验的样本集,cdf用来指明要判断的已知分布类型,有:‘norm’,’expon’,’logistic’,’gumbel’,’gumbel_l’, gumbel_r’,
    ‘extreme1’值可以选,其中norm表示正态分布检验。

    kstest会返回两个值:D和对应的p_value值。

    2. AD检验

    AD检验是在KS基础上进行改造的,KS检验只考虑了两个分布之间差值最大的那个点,但是这容易受异常值的影响。AD检验考虑了分布上每个点处的差值。

    在Python中可以用如下代码:

    from scipy.stats import andersonanderson(x, dist='norm')

    x为待检验的样本集,dist用来指明已知分布的类型。可选值与ks检验中可选值一致。

    上面代码会返回三个结果: 第一个为统计值,第二个为评判值,第三个为每个评判值对应的显著性水平

    AD检验和anderson有啥关系呢?anderson发明了AD检验。

    3. W检验

    W检验(Shapiro-Wilk的简称)是基于两个分布的相关性来进行判断,会得出一个类似于皮尔逊相关系数的值。值越大,说明两个分布越相关,越符合某个分布。

    在Python中的实现代码如下:

    from scipy.stats import shapiroshapiro(x)

    上面的代码会返回两个结果:W值和其对应的p_value。

    shapiro是专门用于正态性检验的,所以不需要指明分布类型。且 shapiro 不适合做样本数>5000的正态性检验。

    非正态数据的处理办法 6e04db3d40b17f28633fe9c43a229503.gif

    一般数据不是正态就是偏态,如果偏态不严重可以对数据取平方根来进行转换。如果偏态很严重,则可以对数据进行对数转换。转换方法在偏态文章中也有讲过。

    End.

    来源:俊红的数据分析之路

    · 零基础入职数据分析就业班 ·

    课程形式主为“直播+录播”

    课程专享:月考测试通关+课程项目作业+1v1职场生涯规划+班主任辅导学习+资深讲师答疑

    课程结束后能熟练掌握SQL、Python、Excel、PPT等数据分析工具

    金3银4招聘季,爱数据带你成功入职数据分析!

    73708183e626012635f7aabce80e3c92.png

    f814b32faa5b99d1f8dd197e6049f809.gif 点击“阅读原文”入职数据分析
    展开全文
  • 本文主要分两个部分,(1)判别当前数据是否满足正态分布;(2)介绍几种非正态分布转化为正态分布的方法; 1. 正态分布判别 常用的正态分布判别方法主要有三种方法: (1)直方图:直方图(Histogram)又称质量...

    本文主要分两个部分,(1)判别当前数据是否满足正态分布;(2)介绍几种非正态分布转化为正态分布的方法;

    1. 正态分布判别

    常用的正态分布判别方法主要有三种方法:

    (1)直方图:直方图(Histogram)又称质量分布图。是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。如下图1所示为满足正态分布的直方图样例。
    (2)P-P图:P-P图是根据变量的累积比例与指定分布的累积比例之间的关系所绘制的图形。通过P-P图可以检验数据是否符合指定的分布。当数据符合指定分布时,P-P图中各点近似呈一条直线。
    (3)Q-Q图:如果两个分布相似,则该Q-Q图趋近于落在y=x线上。如果两分布线性相关,则点在Q-Q图上趋近于落在一条直线上,但不一定在y=x线上。

                                                             

                                                                          图1  满足正态分布的直方图

                                                                          

                                                                          图2   满足正态分布的Q-Q图

                                                       

                                                                           图3  不满足正态分布的Q-Q图 

    2. 非正态分布转化为正态分布

    如上图3所示,通过Q-Q图可以看出该曲线不是直线,且不在y=x方向,故该组数据不满足正态分布,且不是线性相关。因后续工作需求,要将非正态分布数据转化为正态分布。

    常用的正态分布转化方法如下:

    (1)Z变换:网上搜索相关函数, 找到matlab和R语言的实现教程, python的暂时没找到.

    matlab教程地址: https://jingyan.baidu.com/article/359911f573421657fe0306b8.html

    R教程地址: https://www.rdocumentation.org/packages/GeneNet/versions/1.2.13/topics/z.transform

    使用Z变换代码如下,变换得到y2序列的Q-Q图,如下图4所示, 对该数据正态化处理无显著效果, 继续寻找合适该序列的正态分布处理方法.

    %% matlab使用Z变换
    syms n z clear
    y1 = ztrans(y,n,z);
    pretty(y1);
    y2 = iztrans(y1, z, n);
    qqplot(y2);
    
    ## 使用R语言进行Z变换
    y1 <- y.transform(y)
    y2 <- hotelling.transform(y, 7)
    

                                                     

                                                                             图4  Z变换后的序列Q-Q图

    (2)对数转换: 该方法只需要对原始数据y使用对数函数即可, 且对数的底数不同, 对结果无影响.

    如下图5所示,使用log10(),对数转化之后,仍然为非正态分布。

                                                   

                                                                           图5  使用对数转换之后的Q-Q图 

                                               

                                                                       

    展开全文
  • 正态分布:若随机变量x服从有个数学期望为μ,方差为σ2 的正态分布,记为N(μ,σ)其中期望值决定密度函数的位置,标准差决定分布的幅度,当υ=0,σ=0 时的正态分布是标准正态分布判断方法有画图/k-s检验画图:#导入...

    正态分布:

    若随机变量x服从有个数学期望为μ,方差为σ2 的正态分布,记为N(μ,σ)

    其中期望值决定密度函数的位置,标准差决定分布的幅度,当υ=0,σ=0 时的正态分布是标准正态分布

    判断方法有画图/k-s检验

    画图:

    #导入模块

    import numpy as np

    import pandas as pd

    import matplotlib.pyplot as plt

    %matplotlib inline

    #构造一组随机数据

    s = pd.DataFrame(np.random.randn(1000)+10,columns = ["value"])

    #画散点图和直方图

    fig = plt.figure(figsize = (10,6))

    ax1 = fig.add_subplot(2,1,1) # 创建子图1

    ax1.scatter(s.index, s.values)

    plt.grid()

    ax2 = fig.add_subplot(2,1,2) # 创建子图2

    s.hist(bins=30,alpha = 0.5,ax = ax2)

    s.plot(kind = "kde", secondary_y=True,ax = ax2)

    plt.grid()

    结果如下:

    2020923152316793.png

    使用ks检验:

    #导入scipy模块

    from scipy import stats

    """

    kstest方法:KS检验,参数分别是:待检验的数据,检验方法(这里设置成norm正态分布),均值与标准差

    结果返回两个值:statistic → D值,pvalue → P值

    p值大于0.05,为正态分布

    H0:样本符合

    H1:样本不符合

    如何p>0.05接受H0 ,反之

    """

    u = s["value"].mean() # 计算均值

    std = s["value"].std() # 计算标准差

    stats.kstest(s["value"], "norm", (u, std))

    结果是KstestResult(statistic=0.01441344628501079, pvalue=0.9855029319675546),p值大于0.05为正太分布

    以上就是python 判断一组数据是否符合正态分布的详细内容,更多关于python 正态分布的资料请关注云海天教程其它相关文章!

    原文链接:https://www.cnblogs.com/cgmcoding/p/13253934.html

    展开全文
  • 正态分布:若随机变量x服从有个数学期望为μ,方差为σ2 的正态分布,记为N(μ,σ)其中期望值决定密度函数的位置,标准差决定分布的幅度,当υ=0,σ=0 时的正态分布是标准正态分布判断方法有画图/k-s检验画图:#导入...

    正态分布:

    若随机变量x服从有个数学期望为μ,方差为σ2 的正态分布,记为N(μ,σ)

    其中期望值决定密度函数的位置,标准差决定分布的幅度,当υ=0,σ=0 时的正态分布是标准正态分布

    判断方法有画图/k-s检验

    画图:

    #导入模块

    import numpy as np

    import pandas as pd

    import matplotlib.pyplot as plt

    %matplotlib inline

    #构造一组随机数据

    s = pd.DataFrame(np.random.randn(1000)+10,columns = ['value'])

    #画散点图和直方图

    fig = plt.figure(figsize = (10,6))

    ax1 = fig.add_subplot(2,1,1) # 创建子图1

    ax1.scatter(s.index, s.values)

    plt.grid()

    ax2 = fig.add_subplot(2,1,2) # 创建子图2

    s.hist(bins=30,alpha = 0.5,ax = ax2)

    s.plot(kind = 'kde', secondary_y=True,ax = ax2)

    plt.grid()

    结果如下:

    20200923181931858.png

    使用ks检验:

    #导入scipy模块

    from scipy import stats

    """

    kstest方法:KS检验,参数分别是:待检验的数据,检验方法(这里设置成norm正态分布),均值与标准差

    结果返回两个值:statistic → D值,pvalue → P值

    p值大于0.05,为正态分布

    H0:样本符合

    H1:样本不符合

    如何p>0.05接受H0 ,反之

    """

    u = s['value'].mean() # 计算均值

    std = s['value'].std() # 计算标准差

    stats.kstest(s['value'], 'norm', (u, std))

    结果是KstestResult(statistic=0.01441344628501079, pvalue=0.9855029319675546),p值大于0.05为正太分布

    以上就是python 判断一组数据是否符合正态分布的详细内容,更多关于python 正态分布的资料请关注WEB开发者其它相关文章!

    展开全文
  • matlab 判断是否符合正态分布 lillietest

    万次阅读 多人点赞 2018-08-19 11:37:36
    lillietest  Lilliefors检验 常用语法  [h,p]=lillietest(X) ... 返回值h为假设,只有0和1两种情况,h=0假设符合正态分布,h=1假设不符合正态分布  返回值p为方差概率,也可以说事情的发生概率,p&...
  • 当我们应用统计方法对数据进行分析时,会发现许多计量资料的分析方法,例如常用的T检验、方差分析、相关分析以及线性回归等等,都要求数据服从正态分布或者近似正态分布,但这一前提条件往往被使用者所忽略。...
  • 正态分布: 若随机变量x服从有个数学期望为μ,方差为σ2 的正态分布,记为N(μ,σ) 其中期望值决定密度函数的位置,标准差决定分布的幅度,当υ=0,σ=0 时的正态分布是标准正态分布 判断方法有画图/k-s检验 画图: ...
  • 在样本量比较大时,可根据直方图及对应的正态概率密度曲线的形状大致判断资料是否服从正态分布。 操作:图形-旧对话框-直方图 结果与分析 上图中横坐标为猪崽体重,纵坐标为猪崽频数。可以看出绘制的直方图与...
  • 验证是否正态分布的方法分为两类:肉眼判断假设检验肉眼判断肉眼判断当然是一句玩笑话,我们不能只凭看两眼数据就认定是否符合正态分布了,我们是通过其与正态分布的数据相比较,并不是直接做个大仙,...
  • 看SPSS如何检验数据是否服从正态分布微生物生态学研究往往是“三分靠实验,七分靠分析”,很多分析的前提是需要你的数据服从正态分布。如何检验数据是否服从正态分布呢?在SPSS中,正态分布的检验方法有:计算偏度...
  • QQ图判断一个分布是否正态分布

    万次阅读 多人点赞 2018-01-27 10:01:56
    一、正态QQ图的原理 QQ图通过把测试样本数据的分位数与已知分布相比较,从而来检验数据的分布情况。[1] 分位数:亦称分位点,是指将一个随机...QQ图是一种散点图,对应于正态分布的QQ图,就是由标准正态分布的分位
  • 如何判断数据是否符合正态分布

    千次阅读 2021-06-18 11:54:55
    1.根据偏度系数和峰度系数判断。SPSS 菜单栏,Analyze...0.05,服从正态分布。查看Q-Q图进一步确认。若偏度系数Skewness=-0.333;峰度系数Kurtosis=0.886;两个系数都小于1,可认为近似于正态分布。 或者通过Analyze—D
  • 判断数据是否符合正态分布的方法总结描述统计方法Q-Q图P-P图直方图茎叶图统计检验方法SW检验KS检验AD检验W检验 在很多模型及假设检验中都需要满足一个假设条件:数据需服从正态分布。这篇文章主要讲讲如何判断数据...
  • 判断数据正态性常用的function: 1、QQ-PLOT(quantile-quantile plot): p-value观测值和p-value期望值的比较,用于判断统计模型的合理性。 参考文献:QQ-PLOT原理详解 ...观测值分布(蓝点)和正态分布线(红色直线
  • 但愿所有的概率分布都是正态分布。有了正态分布,就方便多了—既能一口气查出整个范围的概率,又能留下点时间玩游戏,谁还会花时间一个一个地计算概率呢?在本章中,你将学习如何闪电般解决更复杂的问题,还将懂得...
  • 正态分布:若随机变量x服从有个数学期望为μ,方差为σ2 的正态分布,记为N(μ,σ)其中期望值决定密度函数的位置,标准差决定分布的幅度,当υ=0,σ=0 时的正态分布是标准正态分布判断方法有画图/k-s检验画图:#导入...
  • 正态分布: 若随机变量x服从有个数学期望为μ,方差为σ2的正态分布,记为N(μ,σ) 其中期望值决定密度函数的位置,标准差决定分布的幅度,当υ=0,σ=0 时的正态分布是标准正态分布 判断方法有画图/k-s检验 画图...
  • 当我们应用统计方法对数据进行分析时,会发现许多计量资料的分析方法,例如常用的T检验、方差分析、相关分析以及线性回归等等,都要求数据服从正态分布或者近似正态分布,但这一前提条件往往被使用者所忽略。...
  • 验证正态分布为什么要检验数据的正态性?很多时候,我们都需要使用从单一样本中获取的样本信息利用统计推断的方法来估计总体的参数信息,这是一种非常有用的统计方法,但在执行相关推断之前,我们需要验证一些假定,...
  • Matlab判断正态分布性检验

    万次阅读 2016-01-28 13:00:43
    进行参数估计和假设检验时,通常总是假定总体服从正态分布,虽然在许多情况下这个假定是合理的,但是当要以此为前提进行重要的参数估计或假设检验,或者人们对它有较大怀疑的时候,就确有必要对这个假设进行检验, ...
  • 以下哪种方法可以用来判断数据可能背离正态分布:A. Q-Q图上,如果数据和基线之间几乎吻合B. Kolmogrov-Smirnov正态检验中的统计量所对应的p值小于0.05C.对数据直方...
  • 数据分布python实战使用 Python 验证数据集中的体温是否符合正态分布正态分布 正态分布可视化之后就像是一个小山包,中间高两头低,大部分数据集中在平均值小部分在两端,密度函数如下:那正态分布是用来做什么的...
  • 给定序列X=(x1,x2,x3,...,xn),判断是否该数据序列X符合正态分布。 二、方法 常见已知分布的检验方法:kstest、jbtest、lillietest、chi2gof等,这里使用使用Lilliefors检验进行描述。 语法: 1:h =...
  • 也就是两个人同时来决定一个事,而最终的决定权在2,2决定是不是服从正态分布。 比如1说,h=0假设符合正态分布。而2说,p<0.05。那么就拒绝了1的说法,那么就不服从正态分布。 比如说,h=1假设不

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,613
精华内容 8,645
关键字:

判断是否正态分布