精华内容
下载资源
问答
  • 这篇文章主要讲讲如何判断数据是否符合正态分布。主要分为两种方法:描述统计方法和统计检验方法。描述统计方法描述统计就是用描述的数字或图表来判断数据是否符合正态分布。常用的方法有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点击“阅读原文”入职数据分析
    展开全文
  • matlab 判断是否符合正态分布 lillietest

    万次阅读 多人点赞 2018-08-19 11:37:36
    lillietest  Lilliefors检验 常用语法  [h,p]=lillietest(X) ... 返回值h为假设,只有0和1两种情况,h=0假设符合正态分布,h=1假设不符合正态分布  返回值p为方差概率,也可以说事情的发生概率,p&...

    lillietest

                       Lilliefors检验

    常用语法

                      [h,p]=lillietest(X)

    说明

                       返回值h为假设,只有0和1两种情况,h=0假设符合正态分布,h=1假设不符合正态分布

                       返回值p为方差概率,也可以说事情的发生概率,p<0.05(显著性水平通常取0.05,还有0.025和0.01三种情况)为不可能事件,拒绝;p>0.05,接受

                        参数X为要检测的数据

    示例

    判断下组数据是否符合正态分布

    62.7 80.3 80.4 68.6 73.3 72.2 71.5 72.3 81.5 74.2 70.1 53.9 74.6 73 58.7 74.9 79.3 59.9 78.6 78.6 77.1 77.2 85.6 78 69.2 73.8 73  

    解: 程序代码如下

    X=[62.7 80.3 80.4 68.6 73.3 72.2 71.5 72.3 81.5 74.2 70.1 53.9 74.6 73 58.7 74.9 79.3 59.9 78.6 78.6 77.1 77.2 85.6 78 69.2 73.8 73];
    [h,p]=lillietest(X)
    
    h =
    
         0
    
    
    p =
    
        0.0819
    

    结果分析: h=0 表示假设为符合正态分布,p>0.05表示接受h=0, 即接受符合正态分布这个假设

                     所以该组数据符合正态分布

    换句话说就是h是用来假设的, 不一定成立, 成不成立这还要看p的心情, p心情好(p>0.05)就接受h这个假设, p心情不好(p<0.05)就是拒接h这个假设; 如果h=0, 这时p心情不好, 就拒接h=0 , 也就是说h变成1了( !0=1 ). 然后再根据(经历p认可的)h确定是否符合正态分布.(规定:h=0符合正态分布,h=1不符合正态分布)

    那p心情好不好的标准是什么呢? 也就是说0.05怎么来的? 0.05称为显著性水平, 一般用\alpha表示 , \alpha有三个值 0.01、 0.025、 0.05 , 通常取0.05

    展开全文
  • 主要介绍了python 如何判断一组数据是否符合正态分布,帮助大家更好的利用python分析数据,感兴趣的朋友可以了解下
  • 正态分布:若随机变量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开发者其它相关文章!

    展开全文
  • 数据分布python实战使用 Python 验证数据集中的体温是否符合正态分布。正态分布 正态分布可视化之后就像是一个小山包,中间高两头低,大部分数据集中在平均值小部分在两端,密度函数如下:那正态分布是用来做什么的...
  • 判断数据是否符合正态分布的方法总结描述统计方法Q-Q图P-P图直方图茎叶图统计检验方法SW检验KS检验AD检验W检验 在很多模型及假设检验中都需要满足一个假设条件:数据需服从正态分布。这篇文章主要讲讲如何判断数据...
  • 1.根据偏度系数和峰度系数判断。SPSS 菜单栏,Analyze...0.05,服从正态分布。查看Q-Q图进一步确认。若偏度系数Skewness=-0.333;峰度系数Kurtosis=0.886;两个系数都小于1,可认为近似于正态分布。 或者通过Analyze—D
  • 数据不符合正态分布怎么处理呢

    万次阅读 多人点赞 2019-04-28 16:37:38
    在实际研究中,很多时候都需要数据满足正态分布才可以。比如说回归分析,其实做回归分析有一个前提条件即因变量需要满足正态分布性。也比如说方差分析,其有一个潜在的前提假定即因变量Y需要满足正态分布。还有很多...
  • 如何使用Python生成正态分布的人员身高体重信息?下面是生成的数据的分布情况,身高数据在各个区间大致呈正态分布。对应的代码如下,先用pd.cut进行各个区间分桶,然后使用sort_index按照区间名排序。f = pd.read_...
  • 给定序列X=(x1,x2,x3,...,xn),判断是否该数据序列X符合正态分布。 二、方法 常见已知分布的检验方法:kstest、jbtest、lillietest、chi2gof等,这里使用使用Lilliefors检验进行描述。 语法: 1:h =...
  • 标准正态分布的概率密度公式正态分布概率密度公式多元正态分布的概率密度公式上式为 x 服从 k 元正态分布,x 为 k 维向量;|Σ| 代表协方差矩阵的行列式。二维正态分布概率密度函数为钟形曲面,等高线是椭圆线族,...
  • 判断数据正态性常用的function: 1、QQ-PLOT(quantile-quantile plot): p-value观测值和p-value期望值的比较,用于判断统计模型的合理性。 参考文献:QQ-PLOT原理详解 ...观测值分布(蓝点)和正态分布线(红色直线
  • 正态分布: 若随机变量x服从有个数学期望为μ,方差为σ2的正态分布,记为N(μ,σ) 其中期望值决定密度函数的位置,标准差决定分布的幅度,当υ=0,σ=0 时的正态分布是标准正态分布 判断方法有画图/k-s检验 画图...
  • 正态分布(平均值为0,标准差为1)的ndarraynormal(size=(N,M,...)) 生成一个NM...的正态(高斯)分布的ndarray>>> import numpy as np>>> np.random.normal(size=(3,4))array([[-0.80403424, -2.26403495, 1....
  • 根据平均值和标准差生成符合正态分布的随机数
  • SPSS如何验证是否符合正态分布

    千次阅读 2018-11-22 22:57:48
    SPSS如何验证是否符合正态分布 正态分布是T检验等统计分析的前提交通,本经验将介绍如何使用SPSS验证是否符合正态分布。 工具/原料 SPSS Statistics 测试数据集 方法/步骤 1 首先准备测试数据集,...
  • 使用Excel生成符合正态分布的随机数

    万次阅读 2016-05-10 11:27:03
    正态分布的应用非常广泛,自然科学和社会科学研究中很多对象都符合正态分布。本文介绍如何使用Excel的随机数生成器获得满足正态分布的随机数据。 1. 使用Excel的随机数生成器 2. 如图获得一个均值为0,标准差为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,335
精华内容 7,334
关键字:

如何判断符合正态分布