python scipy stats帕累托适合:它是如何工作的
…帮助和在线文档说scipy.stats.pareto.fit函数将变量作为要拟合的数据集的变量,并可选择b(指数),loc,scale.
结果是三元组(指数,scale) 从相同分布生成数据应该导致拟合找到用于生成数据的参数,例如,(使用python 3 colsole) $ python Python 3.3.0 (default,Dec 12 2012,07:43:02) [GCC 4.7.2] on linux Type "help","copyright","credits" or "license" for more information. >>> (在下面的代码行中省略了python控制台提示“>>>”) dataset=scipy.stats.pareto.rvs(1.5,size=10000) #generating data scipy.stats.pareto.fit(dataset) 然而这导致了 (1.0,nan,0.0) (指数1,应为1.5)和 dataset=scipy.stats.pareto.rvs(1.1,size=10000) #generating data scipy.stats.pareto.fit(dataset) 结果是 (1.0,应为1.1)和dataset=scipy.stats.pareto.rvs(4,loc=2.0,scale=0.4,size=10000) #generating data scipy.stats.pareto.fit(dataset) 解决方法
拟合方法是一种非常通用且简单的方法,它对分布的非负似然函数(self.nnlf)进行优化.fmin.在像帕累托这样具有可以创建未定义区域的参数的分布中,通用方法不起作用.
特别是,当随机变量的值不适合分布的有效域时,一般的nnlf方法返回“inf”. “fmin”优化器不能很好地使用此目标函数,除非您已经猜测起始值非常接近最终拟合. 通常,.fit方法需要使用约束优化器进行分布,其中对pdf的适用范围有限制. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |