精华内容
下载资源
问答
  • 数据整体服从正态分布,那样本均值和方差则相互独立。正太分布具有很多好的性质,很多模型假设数据服从正态分布。例如线性回归(linear regression),它假设误差服从正态分布,从而每个样本点出现的概率就可以表示成...

            数据整体服从正态分布,那样本均值和方差则相互独立。正太分布具有很多好的性质,很多模型假设数据服从正态分布。例如线性回归(linear regression),它假设误差服从正态分布,从而每个样本点出现的概率就可以表示成正态分布的形式,将多个样本点连乘再取对数,就是所有训练集样本出现的条件概率,最大化这个条件概率就是LR要最终求解的问题。这里这个条件概率的最终表达式的形式就是我们熟悉的误差平方和。

            ML中很多model都假设数据或参数服从正态分布,但是如果数据不服从正态分布怎么办?搜罗到这篇文章:http://udel.edu/~mcdonald/stattransform.html,是关于处理生物领域数据的handbook,很不错,里面用data transformations 方式来解决数据分布的这个问题。这里列举两种,有兴趣的可以看链接文章或继续搜索文章来研究。(希望哪个网友搜罗到好文章也给俺分享下)

        data transformations步骤如下,
    (1)首先根据数据样本画出均值和方差曲线
    (2)如果均值和方差不相关,则不需要转换
    (3)如果方差正比于均值,则进行square root transformation转换
    (4)如果标准差正比于均值,则进行logarithmic transformation转换

        检验数据正态性的方法有几大类,其中最为直观计算量也最小的就是图示法,里面有QQ图(分位数图)(@敲代码的张洋 说这个是最屌丝的方法,哈哈)、PP图(百分位数图)、SP图(稳定化概率图)。先不深入研究了,用到了再好好研究下吧。

    展开全文
  • 在样本量比较大时,可根据直方图及对应的正态概率密度曲线的形状大致判断资料是否服从正态分布。 操作:图形-旧对话框-直方图 结果与分析 上图中横坐标为猪崽体重,纵坐标为猪崽频数。可以看出绘制的直方图与...

    目录

    一、正态性检验:图形定性判断

    1、直方图

    2、P-P图和Q-Q图

    二、正态性检验:偏度(Skewness)和峰度(Kurtosis)定量判断,最实用

    三、正态性检验:非参数检验分析法


    一、正态性检验:图形定性判断

    1、直方图

    样本量比较大时,可根据直方图及对应的正态概率密度曲线的形状大致判断资料是否服从正态分布。

    操作:图形-旧对话框-直方图

    结果与分析

    上图中横坐标为猪崽体重,纵坐标为猪崽频数。可以看出绘制的直方图与对应的正态分布曲线形状大致相同,基本可以判断资料服从正态分布。

     

    2、P-P图和Q-Q图

    • P-P图(频率-频率图)反映了实际观测值的累积频率(横坐标)与正态分布的理论累积概率(纵坐标)的符合程度,Q-Q图(分位数-分位数图)反映了实际观测值的分位数(横坐标)与正态分布的理论分位数(纵坐标)的符合程度。
    • 两者意义相似,都可以用来考察数据资料是否服从某种分布类型。若检验的分布类型为正态分布,数据点与理论直线(即对角线)基本重合,则基本认为数据服从正态分布。若偏离直线,认为数据可能不服从正态分布。

    操作:分析—描述统计—P-P图/Q-Q图

    结果与分析

    P-P图/Q-Q图中,各点近似围绕着直线,大致能够判断数据呈近似正态分布

     

    具体证明资料是否符合正态分布还要用正态分布指标检验来判定,如峰度、偏度Z-score检验,K-S、S-W检验等。

    二、正态性检验:偏度(Skewness)和峰度(Kurtosis)定量判断,最实用

    http://img.mp.itc.cn/upload/20170516/c31078005a574375b03f72c61bdb928e_th.jpg  http://img.mp.itc.cn/upload/20170516/2a5c0630d4d8460cad80d8be39bf4370_th.jpg

    • 当偏度≈0时,可认为分布是对称的,服从正态分布;
    • 当偏度>0时,拖尾在右边,峰尖在左边,也称为正偏态;
    • 当偏度<0时,拖尾在左边,峰尖在右边,也称为负偏态;

     

    • 当峰度≈0时,可认为分布的峰态合适,服从正态分布(不胖不瘦);
    • 当峰度>0时,分布的峰态陡峭(高尖);
    • 当峰度<0时,分布的峰态平缓(矮胖);

    偏度、峰度同时≈0时,才认为资料服从正态分布

     

    用偏度和峰度进行正态性检验时,可以同时计算其相应的Z评分(Z-score),即:偏度Z-score=偏度值/标准误,峰度Z-score=峰度值/标准误。α=0.05的检验水平下,若Z-score都在±1.96之间,则可认为服从正态分布,若一个不满足则认为不服从正态分布。

     

    操作:分析-描述统计-频率/-描述

    结果与分析

    在结果输出的Statistics部分,对变量猪崽数进行了基本的统计描述

    同时给出了其分布的偏度值-0.096(标准误0.241),Z-score =-0.096/0.241 =-0.398,峰度值-0.126(标准误0.478),Z-score = -0.126/0.478 = -0.264。

    标准误是样本均值(X拔)的标准差。

    偏度值和峰度值均≈0,Z-score均在±1.96之间,可认为数据服从正态分布。

     

    三、正态性检验:非参数检验分析法

    • 原假设为“样本来自的总体与正态分布无显著性差异,即符合正态分布”,也就是说P>0.05才能说明资料符合正态分布
    • 正态分布的检验方法有两种,一种是Shapiro-Wilk检验,S-W检验适用于小样本资料(SPSS规定样本量≤5000),另一种是Kolmogorov–Smirnov检验,K-S检验适用于大样本资料(SPSS规定样本量>5000)。
    • 当样本量较少的时候,检验结果不够敏感,即使数据分布有一定的偏离也不一定能检验出来;而当样本量较大的时候,检验结果又会太过敏感

     

    操作:分析-描述统计-探索

    结果及分析

    在结果输出的Tests of Normality部分,给出了Shapiro-Wilk检验及Kolmogorov-Smirnov检验的结果,考虑到样本量≤5000,属于小样本资料,Shapiro-Wilk检验的P值为0.147,在α=0.05的检验水准下,P>0.05,不拒绝原假设,可认为资料服从正态分布

    展开全文
  • 看SPSS如何检验数据是否服从正态分布微生物生态学研究往往是“三分靠实验,七分靠分析”,很多分析的前提是需要你的数据服从正态分布。如何检验数据是否服从正态分布呢?在SPSS中,正态分布的检验方法有:计算偏度...

    看SPSS如何检验数据是否服从正态分布

    微生物生态学研究往往是“三分靠实验,七分靠分析”,很多分析的前提是需要你的数据服从正态分布。

    如何检验数据是否服从正态分布呢?

    在SPSS中,正态分布的检验方法有:计算偏度系数(Skewness)和峰度系数(Kurtosis)、Kolmogorov-Smirnov检验(KS检验或D检验)、Shapiro-Wilk(SW检验或W检验)、直方图、QQ图等。

    下面本葱通过具体例子给大家介绍如何用SPSS检验数据是否为正态分布:

    首先需要有一组数据,如:74 75 78 77 80 80 90 76 62 79,按下述格式输入SPSS中。

    依此点击分析-描述统计-描述

    sg_trans.gif

    就会看到下述图片,点击绘制,我们可以选择输出图片(茎叶图、直方图),如果想要输出图片,在输出应该选择两者都。选择确定,就可以看到结果了。

    sg_trans.gif

    输出结果如何解读?

    sg_trans.gif

    此表,是对数据的统计描述,我们可以关注下最下方的偏度(Skewness)和峰度(Kurtosis)。

    偏度SK越趋近0,数据越服从正态分布,众数=中位数=平均数;SK>0,为正偏态或左偏,众数<中位数<平均数;SK<0,为负偏态或右偏,众数>中位数>平均数。

    峰度KG越趋近3,数据越服从正态分布;KG>3,峰度尖锐;KG<3,峰度扁平。(或exceess_KG=KG-3,exceess_KG越趋近0,数据越服从正态分布)

    但是仅根据偏度和峰度还不足以判断数据是否服从正态分布,需要做进一步的检验。

    sg_trans.gif

    上表是生成的KS检验(D检验)和SW检验(W检验)的检验结果,此处我们关注的显著性是Sig.即P值。当P>0.05时,可以认为数据是呈正态分布的。

    由上表可以看出,KS检验和SW检验显著性均>0.05。

    由于样本数量为10,小样本时关注SW检验的结果,所以此处显著性0.145,可以认为数据是正态分布的。

    在输出结果部分还可以生成直方图、茎叶图、QQ图等,可以根据图形做出观测,若要检验是否服从正态分布还是需要用算法进行检测。

    sg_trans.gif

    展开全文
  • Python检验样本是否服从正态分布

    千次阅读 2020-09-06 16:41:10
    我们可以通过将样本可视化,看一下样本的概率密度是否是正态分布来初步判断样本是否服从正态分布。 代码如下: import numpy as np import pandas as pd import matplotlib.pyplot as plt # 使用pandas和numpy...

    在进行t检验、F检验之前,我们往往要求样本大致服从正态分布,下面介绍两种检验样本是否服从正态分布的方法。

    1 可视化

    我们可以通过将样本可视化,看一下样本的概率密度是否是正态分布来初步判断样本是否服从正态分布。

    代码如下:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    # 使用pandas和numpy生成一组仿真数据
    s = pd.DataFrame(np.random.randn(500),columns=['value'])
    print(s.shape)      # (500, 1)
    
    # 创建自定义图像
    fig = plt.figure(figsize=(10, 6))
    # 创建子图1
    ax1 = fig.add_subplot(2,1,1)
    # 绘制散点图
    ax1.scatter(s.index, s.values)
    plt.grid()      # 添加网格
    
    # 创建子图2
    ax2 = fig.add_subplot(2, 1, 2)
    # 绘制直方图
    s.hist(bins=30,alpha=0.5,ax=ax2)
    # 绘制密度图
    s.plot(kind='kde', secondary_y=True,ax=ax2)     # 使用双坐标轴
    plt.grid()      # 添加网格
    
    # 显示自定义图像
    plt.show()

     可视化图像如下:

    从图中可以初步看出生成的数据近似服从正态分布。为了得到更具说服力的结果,我们可以使用统计检验的方法,这里使用的是.scipy.stats中的函数。

    2 统计检验

    1)kstest

    scipy.stats.kstest函数可用于检验样本是否服从正态、指数、伽马等分布,函数的源代码为:

    def kstest(rvs, cdf, args=(), N=20, alternative='two-sided', mode='approx'):
        """
        Perform the Kolmogorov-Smirnov test for goodness of fit.
    
        This performs a test of the distribution F(x) of an observed
        random variable against a given distribution G(x). Under the null
        hypothesis the two distributions are identical, F(x)=G(x). The
        alternative hypothesis can be either 'two-sided' (default), 'less'
        or 'greater'. The KS test is only valid for continuous distributions.
    
        Parameters
        ----------
        rvs : str, array or callable
            If a string, it should be the name of a distribution in `scipy.stats`.
            If an array, it should be a 1-D array of observations of random
            variables.
            If a callable, it should be a function to generate random variables;
            it is required to have a keyword argument `size`.
        cdf : str or callable
            If a string, it should be the name of a distribution in `scipy.stats`.
            If `rvs` is a string then `cdf` can be False or the same as `rvs`.
            If a callable, that callable is used to calculate the cdf.
        args : tuple, sequence, optional
            Distribution parameters, used if `rvs` or `cdf` are strings.
        N : int, optional
            Sample size if `rvs` is string or callable.  Default is 20.
        alternative : {'two-sided', 'less','greater'}, optional
            Defines the alternative hypothesis (see explanation above).
            Default is 'two-sided'.
        mode : 'approx' (default) or 'asymp', optional
            Defines the distribution used for calculating the p-value.
    
              - 'approx' : use approximation to exact distribution of test statistic
              - 'asymp' : use asymptotic distribution of test statistic
    
        Returns
        -------
        statistic : float
            KS test statistic, either D, D+ or D-.
        pvalue :  float
            One-tailed or two-tailed p-value.

    2)normaltest

    scipy.stats.normaltest函数专门用于检验样本是否服从正态分布,函数的源代码为:

    def normaltest(a, axis=0, nan_policy='propagate'):
        """
        Test whether a sample differs from a normal distribution.
    
        This function tests the null hypothesis that a sample comes
        from a normal distribution.  It is based on D'Agostino and
        Pearson's [1]_, [2]_ test that combines skew and kurtosis to
        produce an omnibus test of normality.
    
    
        Parameters
        ----------
        a : array_like
            The array containing the sample to be tested.
        axis : int or None, optional
            Axis along which to compute test. Default is 0. If None,
            compute over the whole array `a`.
        nan_policy : {'propagate', 'raise', 'omit'}, optional
            Defines how to handle when input contains nan. 'propagate' returns nan,
            'raise' throws an error, 'omit' performs the calculations ignoring nan
            values. Default is 'propagate'.
    
        Returns
        -------
        statistic : float or array
            ``s^2 + k^2``, where ``s`` is the z-score returned by `skewtest` and
            ``k`` is the z-score returned by `kurtosistest`.
        pvalue : float or array
           A 2-sided chi squared probability for the hypothesis test.

    3)shapiro

    scipy.stats.shapiro函数也是用于专门做正态检验的,函数的源代码为:

    def shapiro(x):
        """
        Perform the Shapiro-Wilk test for normality.
    
        The Shapiro-Wilk test tests the null hypothesis that the
        data was drawn from a normal distribution.
    
        Parameters
        ----------
        x : array_like
            Array of sample data.
    
        Returns
        -------
        W : float
            The test statistic.
        p-value : float
            The p-value for the hypothesis test.

    下面我们使用第一部分生成的仿真数据,用这三种统计检验函数检验生成的样本是否服从正态分布(p > 0.05),代码如下:

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    
    # 使用pandas和numpy生成一组仿真数据
    s = pd.DataFrame(np.random.randn(500),columns=['value'])
    print(s.shape)      # (500, 1)
    
    # 计算均值
    u = s['value'].mean()
    # 计算标准差
    std = s['value'].std()  # 计算标准差
    print('scipy.stats.kstest统计检验结果:----------------------------------------------------')
    print(stats.kstest(s['value'], 'norm', (u, std)))
    print('scipy.stats.normaltest统计检验结果:----------------------------------------------------')
    print(stats.normaltest(s['value']))
    print('scipy.stats.shapiro统计检验结果:----------------------------------------------------')
    print(stats.shapiro(s['value']))

    统计检验结果如下:

    scipy.stats.kstest统计检验结果:----------------------------------------------------
    KstestResult(statistic=0.01596290473494305, pvalue=0.9995623150120069)
    scipy.stats.normaltest统计检验结果:----------------------------------------------------
    NormaltestResult(statistic=0.5561685865675511, pvalue=0.7572329891688141)
    scipy.stats.shapiro统计检验结果:----------------------------------------------------
    (0.9985257983207703, 0.9540967345237732)

    可以看到使用三种方法检验样本是否服从正态分布的结果中p-value都大于0.05,说明服从原假设,即生成的仿真数据服从正态分布。

    参考

    python数据分析----卡方检验,T检验,F检验,K-S检验

    python使用scipy.stats数据(正态)分布检验方法

    python 如何判断一组数据是否符合正态分布

    展开全文
  • 服从正态分布随机数的生成生成单变量正态分布随机数Box-Muller 算法Accept/Reject 算法(接受/拒绝算法)附录Box-Muller 算法的简要证明参考 生成单变量正态分布随机数 Box-Muller 算法 Box-Muller算法是利用两个i.i...
  • 可以应用变量变换的方法,将不服从正态分布的资料转化为非正态分布或近似正态分布。常用的变量变换方法有对数变换、平方根变换、倒数变换、平方根反正玄变换等,应根据资料性质选择适当的变量变换方法。1、对数变换 ...
  • 也就是两个人同时来决定一个事,而最终的决定权在2,2决定是不是服从正态分布。 比如1说,h=0假设符合正态分布。而2说,p<0.05。那么就拒绝了1的说法,那么就不服从正态分布。 比如说,h=1假设不
  • 最近上通信建模这门课时范平志老师布置的这个作业,我做好后传上来方便后人参考,包括了三个C语言程序,分别产生服从正态分布、瑞利分布、泊松分布的随机数。程序是是用的C语言编写,备有大量注释,浅显易懂,且全部...
  • 1 可视化我们可以通过将样本可视化,看一下样本的概率密度是否是正态分布来初步判断样本是否服从正态分布。代码如下:import numpy as npimport pandas as pdimport matplotlib.pyplot as plt# 使用pandas和numpy...
  • 数据是否服从正态分布

    千次阅读 2018-11-26 11:47:29
    1 SPSS详细操作:正态转换的多种方法 2 SPSS教程:判断数据正态分布的超多方法!
  • 是指两个变量均要服从正态分布吗?类似的问题比如:请问使用皮尔逊相关系数描述两变量关系时,要求满足X、Y呈双变量正态分布。这里的双变量正态分布是什么意思?是说X和Y都分别满足正态分布么?【统计咨询】微信...
  • 1)生成随机数 import numpy as np #导入库 random3 = numpy.random.randn(10000) #随机生成10000个服从正态分布的随机数 2)结果验证 import seaborn as sn...
  • Javascript 产生服从均匀分布随机数 大家都知道Math.random是 javascript 中返回伪随机数的方法,但Math.random()产生 [0,1...Box-Muller变换是通过服从均匀分布的随机变量,来构建服从正态分布的随机变量的一种方法。
  • 在数据分析中如果某个数据服从正态分布的话,我们可以利用正态分布的性质做出很多有意义的分析,例如t-检验。。如何检验样本是否服从正态分布? 可以使用Q-Q图来进行检验,Q-Q图是一个散点图,点(x, y)表示数据x的...
  • python 服从正态分布下概率密度函数

    千次阅读 2019-10-11 00:13:40
    python 服从正态分布下概率密度函数和累积密度函数 服从正太分布下,概率密度函数公式 公式解释: f(x): 是某样本(样本以数值形式表现)为某数值时发生的概率 0<f(x)<1 x: 是随机抽样的数值,取值范围从负...
  • 线性回归要求因变量服从正态分布

    万次阅读 2017-04-27 11:31:03
    对于线性回归模型,当因变量服从正态分布,误差项满足高斯–马尔科夫条件(零均值、等方差、不相关)时,回归参数的最小二乘估计是一致最小方差无偏估计.解释一:我们假设线性回归的噪声服从均值为0的正态分布。 当...
  • 样本大,服从正态分布起源于中心极限定律,中心极限定律的发现是根据一代人一代人的实验与理论证明,从中看出数据服从正态分布是一个多么好的性质!
  • 而今天学习的jbtest()函数就可以判断数据是否服从正态分布 Jarque-Bera检验简单理论 在统计学中,Jarque-Bera检验是对样本数据是否具有符合正态分布的偏度和峰度的拟合优度的检验,其统计测试结果总是非负的。其结果...
  • 产生服从正态分布随机数(转载)

    万次阅读 2016-10-31 18:58:29
    一、为什么需要服从正态分布的随机函数 一般我们经常使用的随机数函数 Math.random() 产生的是服从均匀分布的随机数,能够模拟等概率出现的情况,例如 扔一个骰子,1到6点的概率应该相等,但现实生活中更多的随机...
  • 利用微积分和矩阵代数的基本知识,证明了n维正态随机变量各分量的线性组合一定服从正态分布的结论。
  • 分布检验问题)假设有n个随机数,检验这些随机数是否由高斯分布产生,方法如下: 1. 计算n个随机变量的平均值u; 2. 对n个随机变量排序,并计算相邻两个数的差dx; 3. 对第2个数到第n个数,计算z[i]=(x[i]-u)/...
  • 服从正态分布的数据进行狄利克雷聚类

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,399
精华内容 9,359
关键字:

如何判断服从正态分布