...幫助和聯機文檔說函數scipy.stats.pareto.fit將變量數據集作爲擬合參數,並且可選地包括b(指數),loc,scale 。 結果來自三元組(指數,祿,比例)python scipy stats pareto fit:它是如何工作的
從同一分佈生成數據應導致找到用於生成數據的參數(例如, (使用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.
>>>
(在下面留出蟒控制檯提示代碼行 「>>>」)
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, nan, 0.0)
(指數1,應1.1)和
dataset=scipy.stats.pareto.rvs(4,loc=2.0,scale=0.4,size=10000) #generating data
scipy.stats.pareto.fit(dataset)
(指數應該是4,在上述應該是2,尺度應0.4)在
(1.0, nan, 0.0)
在調用擬合函數時給出另一個指數
scipy.stats.pareto.fit(dataset,1.4)
回報總是正是這種指數
(1.3999999999999999, nan, 0.0)
最明顯的問題是:做我完全誤解了這個擬合函數的目的,是用某種方式不同,或者它只是壞了?
備註:在有人提到像Aaron Clauset的網頁(http://tuvalu.santafe.edu/~aaronc/powerlaws/)上給出的專用函數比scipy.stats方法更可靠並且應該用來代替:這可能是事實,但它們也非常非常非常耗費時間,對於10000點的數據集,在普通PC上花費許多小時(可能是幾天,幾周,幾年)。
編輯:哦:擬合函數的參數不分配,但指數減去1的指數(但是這並不能改變上述問題)