精华内容
下载资源
问答
  • 如何判断分布类型
    千次阅读 多人点赞
    2019-11-12 17:42:31

    思考:输入到NN模型中的特征要做归一化处理,我看到airbnb对特征归一化的方式因特征而异,这点惊讶到我,我当前的工作中,对特征归一化处理方式是同一种。然而并不知道特征服从什么分布,或许选择了一个大家通用的归一化方法?这个不得而知。言归正传,airbnb根据不同特征做不一样的归一化,因为他们对数据进行了观察,发现了部分长尾数据,因此做了log的归一化处理[1],这点很惊喜。在我刚工作的时候,也有人问过我,一些特征的分布,当时基于人工统计做了一些表格直方图,能看出一个大概,但是真说不上来是什么分布,只是一个统计而已。

    随后查阅了一些资料,主题是:如何确定一组数据的分布。

    查阅到了一个博客[2],里面汇总了一些判断该分布为什么分布的方法及代码,这里我补充了一些原理及概念解释(因为我不太明白这些方法是什么,使用范围是什么)。首先我们先看下有哪些分布,然后再研究有哪些方法可以去确定一组数据符合什么分布。

    (1) 离散分布:
     伯努利分布(零一分布,两点分布),二项分布,几何分布,泊松分布(Poisson分布)

    (2) 连续分布:
     指数分布,正态分布(高斯分布),均匀分布

    (3) 抽样分布:
     卡方分布(X2分布),F分布,T分布

    (4) 其它分布:
     多项分布,Beta分布,Dirichlet分布

    方法1:夏皮罗维尔克检验(Shapiro-Wilk test)

    概念:是一种在频率上统计检验中检验正态性的方法。它在1965年由夏皮罗和威尔克发表。

    适用范围:检验小样本数据是否服从正态分布,数据量大于5000时不适用。

    代码:这里需要生成一组正态分布的数据,待验证的数据跟它进行对比。

    ##生成40个服从N(2,1)的随机数
    import numpy as np
    np.random.seed(0)
    mu = 2 ; sigma = 1; sampleNo = 40;
    testData = np.random.normal(mu, sigma, sampleNo)
     
    ##利用Shapiro-Wilk test检验其是否服从正态分布
    import scipy.stats as stats
    print(stats.shapiro(testData))
    ##输出(统计量W的值,P值)=(0.9782678484916687, 0.6254357695579529)
    ##W的值越接近1就越表明数据和正态分布拟合得越好,P值>指定水平,不拒绝原假设,可以认为样本数据服从正态分布
     

    方法2:科尔莫戈罗夫检验(Kolmogorov-Smirnov test)

    概念:来分析变量是否符合某种分布或比较两组之间有无显著性差异。 检验单一样本是否来自某一特定分布的方法。

    适用范围:

        1)用于检验X的分布G(x)是否服从给定分布F(x),仅适用于连续分布的检验;

        2)检验两组数据是否来自统一分布。

    代码:

       1)这里stats.kstest()的第二个参数是Defines the distribution used for calculating the p-value.意思是你想看看你的数据符合啥分布,则将该参数设置为啥分布。

    ##生成随机数
    import numpy as np
    np.random.seed(0)
    testData = np.random.normal(0,1,100)
     
    ##利用Kolmogorov-Smirnov test检验testData是否服从正态分布
    import scipy.stats as stats
    stats.kstest(testData,'norm')
    ##输出(统计量D的值,P值)=(0.058248638723832402, 0.88658843653019392)
    ##统计量D的值越接近0就越表明数据和标准正态分布拟合得越好,P值>指定水平,不拒绝原假设,可以认为样本数据服从正态分布。

       2)

    import numpy as np
    chi2 = np.random.chisquare(98, size=100)
    norm = np.random.normal(0,1,100)
    ##检验norm和chi2是否服从同一分布
    import scipy.stats as stats
    print(stats.ks_2samp(norm, chi2))
    ##输出Ks_2sampResult(statistic=1.0, pvalue=1.5505547466854487e-45)
    

    方法3:安德森-达令检验(Anderson-Darling test)

    概念:检验样本数据是否来自特定分布,包括分布:'norm', 'expon', 'gumbel', 'extreme1' or 'logistic'. 

    适用范围:它可用於试验分布是否适合,它可以用于建基於最小距离估计程序的参数估计。

    代码:

    import numpy as np
    np.random.seed(0)
    data_norm = np.random.normal(0,1,100)
     
    ##用Anderson-Darling检验生成的数组是否服从正态分布
    import scipy.stats as stats
    stats.anderson(data_norm, dist='norm')
    

    方法4:Lilliefors检验

    概念:检验样本数据是否来自正态总体

    适用范围:当总体均值和方差未知时,用样本的均值和方差代替后 再用K-S检验法。据说效果不如Anderson-Darling test

    代码:

    #代码有点问题,后续会修正
    ##生成1000个服从N(0,1)的随机数
    import numpy as np
    np.random.seed(0)
    norm_Data = np.random.normal(0,1,1000)
    #生成100个服从lambda=10的指数分布exp(10)
    exp_Data = np.random.exponential(scale=0.1, size=1000) #scale=1/lambda
     
     
    from statsmodels.stats.diagnostic import lilliefors
    lilliefors(norm_Data)
    ##输出(统计量的值,P值)=(0.019125294462402076, 0.48168672320192013),P值>指定水平0.05,接受原假设,可以认为样本数据服从正态分布
     
    lilliefors(exp_Data)
    

    方法5:基于偏度和峰度的检验

    概念:偏度是判断样本左边长尾(峰度)还是右边长尾,峰度是判断样本的分布是瘦高还是矮胖。

    适用范围:可用于检验样本数据是否来自正态分布(偏度=0,峰度=3),易受异常值影响,不能用于小样本。

    代码:

    ##生成1000个服从N(0,1)的随机数
    import numpy as np
    np.random.seed(0)
    norm_Data = np.random.normal(0,1,1000)
    #生成100个服从lambda=10的指数分布exp(10)
    exp_Data = np.random.exponential(scale=0.1, size=1000) #scale=1/lambda
     
    import scipy.stats as stats
    stats.jarque_bera(norm_Data)
    ##输出(统计量JB的值,P值)=(0.28220016508625245, 0.86840239542814834),P值>指定水平0.05,接受原假设,可以认为样本数据在5%的显著水平下服从正态分布
    
    stats.jarque_bera(exp_Data)
    ##输出(统计量JB的值,P值)=(1117.2762482645478, 0.0),P值<指定水平0.05,拒绝原假设,认为样本数据在5%的显著水平下不服从正态分布
     

    参考:

    1.https://zhuanlan.zhihu.com/p/51173605

    2.https://blog.csdn.net/qq_20207459/article/details/80331805

    3.https://www.jianshu.com/p/04cc140e1127

    4.https://www.jianshu.com/p/c675e3f67843

    更多相关内容
  • 判断一组数据是否符合正态分布、泊松分布、指数分布、威布尔分布等。
  • 例如为:1006.1,1014,1001.6,996.4,997.8,981.6,996.4,991.9,993.3,1000.6,987.3,1015.6,981.6,996.2,999.2,994.5,1005.9,1001.9,986.4,1007.6,1001.4,1014.6,1010.2,993.9,1001.4这组数据是否满足正态分布呢?...

    问题描述

    有一组已知的数据,例如为:

    1006.1,1014,1001.6,996.4,997.8,981.6,996.4,991.9,993.3,1000.6,987.3,1015.6,981.6,996.2,999.2,994.5,1005.9,1001.9,986.4,1007.6,1001.4,1014.6,1010.2,993.9,1001.4

    这组数据是否满足正态分布呢?如果满足的话,在后续的处理过程中,就可以用相应的数学表达式来描述其规律了,即已知散点数据,求其概率分布的问题。

    实现方法

    [noway]1.首先,用normplot()函数来简单拟合一下。[/noway]

    对于上面的例子,首先设:

    m=[1006.1,1014,1001.6,996.4,997.8,981.6,996.4,991.9,993.3,1000.6,987.3,1015.6,981.6,996.2,999.2,994.5,1005.9,1001.9,986.4,1007.6,1001.4,1014.6,1010.2,993.9,1001.4]

    normplot(m)

    385ff89e40620ddacc1151bdb4731321.png

    看结果,发现散点基本都可以在红色的直线附近,说明这组数据有很大的可能性符合正态分布。

    这里需要说明的是,这其实就是一张“正太概率纸”,即横坐标是等间隔的,而纵坐标却为按照标准正态分布给出的点。以上图举例,横坐标为1001.6时(这组已知数据中的任意值),其在红线上对应的点,就恰好为标准正态分布的纵坐标。因此,当实际散点与红线举例跃进,这组数据就越接近于标准正态分布。

    如果已知数据符合正态分布规律的话,那散点就会在直线附近,呈线性分布,如果有“拐弯”的情况,就不是正态分布了。

    但是呢,绘图法还不足以证明这组数据一定符合正态分布,还需要用另外的函数

    [noway]2.用lillietest函数或jbtest函数进行正态分布的拟合优度测试[/noway]

    进行假设检验,格式:[H,P,LSTAT,CV] = lillietest(X,alpha)

    其中,P为接受假设的概率值,P越接近于0,则可以拒绝是正态分布的原假设;LSTAT为测试统计量的值,CV为是否拒绝原假设的临界值。

    对于本例,则为

    [H,P,LSTAT,CV] = lillietest(m,0.05)

    H =

    0

    P =

    0.5000

    LSTAT =

    0.1028

    CV =

    0.1730

    h=0说明接受假设,该组数据符合正态分布;p=0.5说明符合正态分布的概率很大;LSTAT小于接受假设的临界值0.173,因此接受假设。

    至此,判断结束。

    其实,除了正态分布以外,还可以对其他的概率分布类型进行假设检验,以后有空一一列举出来。

    展开全文
  • 如何判断一维数据集服从何种分布

    万次阅读 热门讨论 2019-08-18 11:00:48
    KL散度 KL 散度是一种衡量两个概率分布的匹配程度的指标,两个分布...第一组:数据集为采集100个人的年龄,为以下表格所示,我们使用KL散度去研究最符合的分布类型。 age 0 1 2 3 4 5 6 ...

    KL散度

    KL 散度是一种衡量两个概率分布的匹配程度的指标,两个分布差异越大,KL散度越大。

    定义:

    其中 p(x) 是真实分布,q(x)是目标分布(建模目标分布),如果两个分布完全匹配,那么

     

     第一组:数据集为采集100个人的年龄,为以下表格所示,我们使用KL散度去研究最符合的分布类型。

    age012345678910总数
    count3671113181511754100

    尝试1:使用均匀分布建立模型

    可视化为:黄色的为建立的目标均匀分布模型,与蓝色真实分布的对比。

     

    尝试2:使用高斯分布建立模型

    可视化为:(红色虚线是相同\sigma\mu拟合的一条正态分布曲线,蓝色条形图为概率密度):

    计算分析 :

    如何判断真实分布更接近均匀分布还是高斯分布,用肉眼看是很不准确的,用KL散度来衡量真实分布去匹配目标分布所损失的信息量。所以能够将模型量化去比较从而判断出接近哪种分布。

    1、计算与均匀分布的KL散度:

    import numpy as np
    import math
    count=np.array([3,6,7,11,13,18,15,11,7,5,4])
    count_rate=count/100
    balance_rate=1/11
    sum=0
    for i in range(11):
        sum+=count_rate[i]*math.log(count_rate[i]/balance_rate)
    print(sum)

    计算结果为:0.12899493763053263

     

    2、计算与高斯分布的KL散度:

    
    def gaosi(x):
        mu=5.03
        sigma=2.4349743325135895
        t1=1/(sigma*math.sqrt(2*math.pi))
        t2=((x-mu)**2)/(2*sigma*sigma)
        return math.exp(-1*t2)*t1
    
    count=np.array([3,6,7,11,13,18,15,11,7,5,4])
    count_rate=count/100
    
    sum=0
    for i in range(11):
        sum+=count_rate[i]*math.log(count_rate[i]/gaosi(i))
    print(sum)

    计算结果为:0.03997441345364968

     

    结论:

    在只考虑均匀分布模型与高斯分布模型的情况下,用本身去拟合目标模型时,匹配高斯分布所损失的信息量最少,计算发现该数据集的分布更符合高斯分布。

    展开全文
  • 世界气候类型分布、成因、特征及判断.doc
  • 离散型随机变量有很多重要的分布,今天我们介绍两种最常用的概率分布,即二项分布和泊松分布。 (1)二项分布 实际问题中,很多实验与掷硬币的试验有共同的性质,他们只包含两个结果。这类试验有些共同的性质可...

    离散型随机变量有很多重要的分布,今天我们介绍两种最常用的概率分布,即二项分布和泊松分布。

    (1)二项分布

    实际问题中,很多实验与掷硬币的试验有共同的性质,他们只包含两个结果。这类试验有些共同的性质可总结如下:

    • 试验包含了n个相同的试验。
    • 每次试验只有两个可能的结果:“成功”或者“失败”。这里成功和失败是指广义的含义。
    • 出现成功的概率p对每一次试验是相同的;失败的概率q也不变。
    • 试验是相互独立的。
    • 试验“成功”或“失败”可以计数,即试验结果对应于一个离散型随机变量。

    通常具有上述特征的n次重复独立试验为n重贝努利试验。

    P\left \{ X=x \right \} = C\binom{n}{x} p^{x}q^{n-x} ,

    显然:

    P\left \{ X = x \right \} \geq 0, x=0,1,2,...,n

    并且注意到:n重贝努力概率公式的右边部分正好是二项式(p+q)的展开式的第x+1项,故我们称随机变量X服从二项分布,参数为n,p,并记作 X \sim B\left ( n,p \right )。二项分布的期望和方差分别为:

    E\left ( X \right ) = n p

    D\left ( X \right ) = n p q

    (2)泊松分布

    泊松分布是用来描述在一指定时间范围内或在指定的面积或体积之内某一事件出现的次数

    的分布。下面是一些典型的服从破松分布的随机变量的例子。

    • 在某企业中每月发生事故的次数。
    • 单位时间内到达某一服务柜台(诊所,超市结账台)需要服务的顾客人数。

    破松分布的公式为:

    P\left ( X \right ) = \frac{\lambda ^{x} exp\left ( -\lambda \right ) }{x!}

    期望和方差是:

    E\left ( X \right ) = \lambda

    D\left ( X \right ) = \lambda

    (3)正态分布

    在连续型随机变量中,最重要的一种随机变量是具有钟型概率分布的随机变量,人们称之为正态随机变量,相应的分布成为正态分布(normal distribution)。

    分布函数如下:

    记作:X \sim N\left ( \mu ,\sigma ^{2} \right )

    <正态分布的总结点非常多,包括数理统计常用推导,python代码,应用场景,所以本次只简单给出概率分布公式,待下次详细更新>

     

    大数定律

    大数定律是以严格的数学形式表现了随机现象的一个性质,平稳结果的稳定性(或者说频率的稳定性)

    大数定律从理论上解决:用频率近似代替概率的问题:P\left ( A \right ) \approx \frac{nA}{n}

     

    展开全文
  • 如何判断某一数据服从何种分布

    千次阅读 2021-03-30 09:52:22
    1.夏皮罗维尔克检验(Shapiro-Wilk test) ...1)用于检验X的分布G(x)是否服从给定分布F(x),仅适用于连续分布的检验; 2)检验两组数据是否来自统一分布。 https://blog.csdn.net/qq_20207459/article/details/102617
  • 根据系统函数快速判断滤波器类型 (1)死办法,用傅里叶变换求出H(f),在画出幅频特copy性曲线,看高频部分是不是“通” (2)用拉氏变换求出H(s),然后记住一句话:分子上有什么就通什么! 举个例子: H(s)=as/(bs+c...
  • R——判断数据是否符合某一分布

    千次阅读 2021-11-08 04:03:08
    首先这篇文章判断数据是否服从某一分布(二)——简单易用fitdistrplus包 - ywliao - 博客园 (cnblogs.com) ...如果想预测一年总损失,那就需要对这些损失的分布进行判断,选择最适合的分布。 这
  • (1)地带性分布:13种气候类型分布具有显著的地带性规律。如下图所示:(2)非地带性分布①四处(非洲马达加斯加岛东部、澳大利亚东北部、巴西高原东南部和中美洲东北部)热带雨林气候——远离赤道的热带雨林气候——...
  • 由于空间分布类型划分依据和方法的不同,空间分布类型也有多种形式。Clark 和 Hosking 将空间分布划分为7个基本类型。 Clark 和Hosking 划分的空间分布的基本类型 1 2 3 4 5 6 7 分布...
  • 如何判断数据是否符合正态分布

    千次阅读 2020-12-20 23:14:59
    原标题:如何判断数据是否符合正态分布?在前面的文章中讲过,很多模型的假设条件都是数据是服从正态分布的。这篇文章主要讲讲如何判断数据是否符合正态分布。主要分为两种方法:描述统计方法和统计检验方法。描述...
  • 因为总体基本不可获得,所以总体的真实分布类型基本靠“猜”。但这里有些经验性判断方法可供参考。1. 极限值思考法正态分布曲线形状如一口钟,故又称钟形曲线。从正态分布曲线形状,我们会有一个很直观的印象,大...
  • 如何使用SPSS判断数据的正态分布

    万次阅读 2021-10-11 19:37:56
    当我们应用统计方法对数据进行分析时,会发现许多计量资料的分析方法,例如常用的T检验、方差分析、相关分析以及线性回归等等,都要求数据服从正态分布或者近似正态分布,但这一前提条件往往被使用者所忽略。...
  • 如何判断一组数据是否符合正态分布呢?

    万次阅读 多人点赞 2021-03-04 14:21:28
    判断数据是否符合正态分布的方法总结描述统计方法Q-Q图P-P图直方图茎叶图统计检验方法SW检验KS检验AD检验W检验 在很多模型及假设检验中都需要满足一个假设条件:数据需服从正态分布。这篇文章主要讲讲如何判断数据...
  • SPSS学习笔记(一)判断是否服从正态分布

    千次阅读 多人点赞 2020-11-19 11:12:45
    可以看出绘制的直方图与对应的正态分布曲线形状大致相同,基本可以判断资料服从正态分布。 2、P-P图和Q-Q图 P-P图(频率-频率图)反映了实际观测值的累积频率(横坐标)与正态分布的理论累积概率(纵坐标)的...
  • 偏度与峰度的正态性分布判断

    千次阅读 2019-01-04 09:57:00
    偏度与峰度的正态性分布判断  用统计方法对数据进行分析,有很多方法如T检验、方差分析、相关分析以及线性回归等。都要求数据服从正态分布或近似正态分布。上篇博客用Q-Q图验证数据集符合正态分布。这篇博客先介绍...
  • matlab判断一组数据符合什么概率分布的代码? matlab中: function f=p_judge(A,alpha) % 本程序用于判别所给数据源在置信率为0.05时的概率分布形式。A的形式为n×1。 [mu,sigma]=normfit(A); p1=normcdf(A,mu,sigma...
  • SPSS 分布类型的检验

    千次阅读 2019-10-04 09:28:41
    分析者可以直接使用K-S检验对样本数据进行正态分布的检验,但值得推荐的第一步是对样本数据进行图形描述,图形可以给分析者一个直观的印象:该数据可能服从什么样的分布类型。 文彤老师的书中对消费者信心指数进行...
  • 世界主要气候类型分布模式图39330

    千次阅读 2021-02-05 08:08:02
    《世界主要气候类型分布模式图39330》由会员分享,可在线阅读,更多相关《世界主要气候类型分布模式...各气候因子相互关联,共同影响气候的形成3、判断气候类型的方法:口诀法:以“温”定带、以“水”定型第一步:...
  • 随机变量之常见分布

    千次阅读 2022-04-24 16:23:54
    0、概述 统计分析是可以帮助人们认清、刻画不确定性的方法。总体是某一特定事物可能发生结果的集合, 随机变量(Random ...常用的离散型随机变量分布包括:0-1分布、二项分布、泊松分布和二项式分布等。常用的连续...
  • 数据分布的一些检验方法

    千次阅读 2022-03-07 21:24:16
    数据分布的一些检验方法1.KS检验2.幂律分布检验 1.KS检验 Kolmogorov–Smirnov 检验,简称KS检验,是统计学中的一种非参数假设检验,用来检测单样本是否服从某一分布,或者两样本是否服从相同分布。当p值>=0.5时...
  • Python fitter包:拟合数据样本的分布安装fitterFitter方法参数详解HistFit类:适合密度函数本身Python拟合数据样本的分布 github项目:https://github.com/cokelaer/fitter fittle 说明文档: ...
  • 简单的说 伯努利是扔一次硬币;...泊松分布是一个重要的离散概率分布,常用于描述一个时间或空间间隔内事件发生的次数。 1.2 公式表述 P(x=k)=λkk!,k=0,1,...P(x=k) = \frac{\lambda^k}{k!}, k=0,1,...
  • 为便于实际应用,研究还建立了以通过抽样调查易获取的因子即林分密度(公顷株数)和判断林木水平分布格局类型的平均角尺度为自变量的距离分布均值和标准差的预测模型。所建模型均具有很高的精度。
  • 正态分布检验 方法1:描述性统计 打开SPSS,输入变量名称和数据,点击分析--描述统计--频率 将需要检验的变量选入 在图表中选择直方图,并且勾选方框内容,点击继续 点击确定后,会出现以下的结果,...
  • 根据极图判断织构类型

    千次阅读 2021-05-12 17:52:12
    本文是《金属材料织构及分析方法》课程结束后,对本人自己初学的一些疑惑自行做出的解释,并不完全正确。若有理解不对的地方,希望朋友们能帮我指出,能加个...1.1取向定义:晶体坐标系相对于参考坐标系的分布结构称
  • scipy 中统计相关的 api:https://docs.scipy.org/doc/scipy/reference/stats.html https://zhuanlan.zhihu.com/p/24635014 ... 1. t 检验:两个分布的差异 多维数据集的每一个属...
  • 随机变量同分布

    千次阅读 2022-02-20 21:28:39
    随机变量同分布

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 148,673
精华内容 59,469
关键字:

如何判断分布类型