python 拟合分布,python数据概率分布拟合

  python 拟合分布,python数据概率分布拟合

  我希望使用Python 3.4为一组数据找到最合适的(统计学家)威伯尔(或韦布尔)参数。

  将scipy.stats作为悬浮物导入

  list1=[]

  list2=[]

  对于范围(0,10)内的x:

  清单1。追加(ss。expon weib。pdf(x,a=1,c=2.09,scale=10.895,loc=0))

  清单2。追加(ss。Weibull _ min。pdf(x,c=2.09,loc=0,scale=10.895))

  如果列表1[x]列表2[x] .000000001:

  列表1[x]=列表2[x]

  如果列表1==列表2:

  打印("真")

  打印(不锈钢。分发。Weibull _ min。fit(列表1,floc=0))

  打印(不锈钢。分发。Weibull _ min。fit(列表1,loc=0))

  打印(不锈钢。分发。Weibull _ min。fit(列表1,floc=0))

  打印(不锈钢。分发。expon weib。fit(列表1,1,1))

  打印(不锈钢。分发。expon weib。fit(列表1,floc=0,f0=1))

  打印(不锈钢。分发。expon weib。fit(列表1,floc=0,a=1,f0=1))

  我尝试过的所有内容都没有产生输入参数,我无法弄清楚原因。

  此代码的输出是:

  真实的

  (2.8971366871403661, 0, 0.065615284314998634)

  (0.71134622938358294, 0.014105558832066645, 0.076662586739229072)

  (2.8971366871403661, 0, 0.065615284314998634)

  (0.27753056922336583,3.1962672780921197,-3.4780711110631162 e-27,0.19626445。38645

  (1, 2.8971366871403661, 0, 0.065615284314998634)

  (1, 2.8971366871403661, 0, 0.065615284314998634)

  这些都不是正确的输入参数。(2.09和10.895.)任何帮助表示赞赏。谢谢。

  解决方法:

  适合()方法的第一个参数是要适合的分布的值的样本(不是便携文档格式值).所以你应该使用rvs()方法来生成数据,而不是pdf()方法。

  这是一个简单的例子,我从exponweib发行版中生成250个值的样本,然后在该样本上使用适合()。我假设当我拟合数据时,我知道形状参数a必须为一且通信线路(通信线路)参数必须为0:

  在[178]:来自scipy.stats导入导出

  在[179]:样本=指数weib。RVs(a=1,c=2.09,scale=10.895,loc=0,size=250)

  In [180]: exponweib.fit(sample,floc=0,fa=1)

  Out[180]: (1,2.082583185068915,0,10)56586。58676767667

  标签:python,python-3-x,scipy

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: