我试图使用scipy.stats在Python中复制R的fitdist()
结果(引用,无法修改R代码)。结果非常接近,但仍然不同(差异处于不可接受的水平)。有人知道为什么结果不同吗?如何减少结果之间的差异
scipy_stats.weibull_min
定义(https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.weibull_min.html)似乎与R的weibull(https://stat.ethz.ch/R-manual/R-devel/library/stats/html/Weibull.html)相同
数据示例:
data = [2457.145, 878.081, 855.118, 1157.135, 1099.82]
R:
parameters <- fitdist(data, 'weibull',"mle")$estimate
R结果:
shape scale
2.30804 1463.88528
Python:
import scipy.stats as st
st.weibull_min.fit(data, floc=0)
Python结果:
(2.307899817944195, 0, 1463.7712925885176)
这种差异似乎是优化器使用的默认相对公差(以及正常浮点不精确)造成的。如果在R计算中收紧公差,则结果更接近SciPy结果:
相关问题 更多 >
编程相关推荐