【问题标题】:What is the max and min interval of numpy.random.normal() function?numpy.random.normal() 函数的最大和最小间隔是多少?
【发布时间】:2019-01-12 15:22:30
【问题描述】:

【问题讨论】:

    标签: python numpy


    【解决方案1】:

    基础知识

    如果您不向其提供任何参数,np.random.normal() 将从standard normal distribution 中提取,该mean 具有0std(标准偏差)1.0

    任何给定值位于区间之外的几率

    关于分布参数,您可以使用以下函数计算某个值超出mean +/- z(其中z 是任意值)的几率:

    import scipy.special as sps
    
    def oddsbeyond(z, std=1):
        return 1 - sps.erf((z/std)/2**.5)
    

    有关上述功能的更多详细信息,请参阅wiki article on the error function erf

    这是一个“表格”,其中包含 z = (0, 1, ..., 9) 的值位于 mean +/- z*std 之外的概率:

    print(np.array([np.arange(10), oddsbeyond(np.arange(10))]).T)
    

    输出:

    [[0.00000000e+00 1.00000000e+00]
     [1.00000000e+00 3.17310508e-01]
     [2.00000000e+00 4.55002639e-02]
     [3.00000000e+00 2.69979606e-03]
     [4.00000000e+00 6.33424837e-05]
     [5.00000000e+00 5.73303144e-07]
     [6.00000000e+00 1.97317529e-09]
     [7.00000000e+00 2.55961918e-12]
     [8.00000000e+00 1.22124533e-15]
     [9.00000000e+00 0.00000000e+00]]
    

    因此,95% 加上的值将位于平均值的 2.0 标准偏差范围内,而当您到达平均值的 9.0 标准偏差时,超出该值的值的比例非常小,低于使用 double 值(标准 Numpy float)可以轻松表达的内容的限制。

    【讨论】:

      【解决方案2】:

      对于正态分布,任何与平均值相差超过 10 个标准差的值都是极不可能的,但并非不可能。超过 20 个标准差的值不太可能,但也不是不可能。

      例如,人类的身高与正态分布相似,但并不完全一致,因为不可能低于零。对于正态分布,这是可能的,只是不太可能。

      【讨论】:

        猜你喜欢
        • 2021-10-05
        • 2017-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-09
        • 1970-01-01
        • 2013-02-26
        • 2012-06-30
        相关资源
        最近更新 更多