2017-07-15 4 views
2

現在、MLEによるカットオフ分布のべき乗則を計算する方法を見つけることを試みています。次のように分布が見える:電力法poweRlawパッケージによるカットオフ分布の適合

Image1

あなたが見ることができるように、私は別に全体の分布(べき乗則フィット)とも下限(EXP-フィット)をフィットすることができました。私が把握していないのは、分布の上限にどのようにフィットするか(fx < 100)です。

poweRlawパッケージまたは他のRパッケージでこれを行う方法はありますか?私は何のために期待していますと、このように見ているものです(注:それだけでランダムな分布である):

Image2

コード(必要な場合):あなたがこのタイプに合うことができない

#Power-Law 
library("poweRlaw") 
xmin1 <- 8 
xmin2 <- 100 
plf0 <- displ$new(deg) 
plf0$setXmin(xmin1) 
plf0_pars <- estimate_pars(plf0) 
plf0$setPars(plf0_pars) 

#Exponential 
exp1 <- disexp$new(deg) 
exp1$setXmin(xmin2) 
exp1_pars <- estimate_pars(exp1) 
exp1$setPars(exp1_pars) 
plot(plf0) 
lines(plf0, col="green") 
lines(exp1, col="red") 

答えて

0

poweRlawパッケージ(私はパッケージの著者です)のモデルです。

パッケージに近いパッケージには追加されない可能性があります。

+0

迅速な回答ありがとうございます。あなたはこのトピックに対処する方法を念頭に置いて他の方法もありますか? – Max

+0

申し訳ありませんが、私には分かりません。 – csgillespie

0

次のソリューションは、rpy2を使用してPythonで実行できるRコードを提供します。

answer by Kelvinによって示唆されるように、powerlawライブラリによってソースコードに基づく指示が提供され、主にhttps://github.com/jeffalstott/powerlaw/blob/master/testing/pli-R-v0.0.3-2007-07-25/powerexp.Rファイルから提供されます。

  1. のDebianでGnu Scientific Library (GSL)

    をインストールします。apt-get install libgl2

  2. はgithubのからpowerlaw Pythonライブラリのコードをダウンロードしてください。
  3. 解凍して、先にダウンロードしたライブラリのtesting/pli-R-v0.0.3-2007-07-25/フォルダにあるexponential-integral.tgzファイルをビルドします。

    tar xzf exponential-integral.tgz 
    cd exponential-integral 
    make 
    
  4. にここからyourexecutablepathという名前の実行可能ファイルのパス、に移動exp_intファイルを。 powerexp.Rから

    mv exp_int yourexecutablepath

  5. 変更exp_int_function_filename変数は、実行可能ファイル、すなわちyourexecutablepath/exp_intをexp_intするために完全なパスとファイル。

  6. eval exp.Rpareto.Rpowerexp.R必要なすべての機能を含むソースコード。

    data <- list(5, 3, ...) 
    powerexp.fit(unlist(data)) 
    

最後のコマンドの出力は、それらexponentの中で、いくつかの出力値を提供するパワーを与える:

  • には、以下のRコールを評価する指数カットオフを有するpowerlawにデータをフィット法律α値およびrateであり、これは指数的カットオフパラメータを与える。

  • +0

    このリンクは質問に答えるかもしれませんが、回答の重要な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 - [レビューから](/レビュー/低品質の投稿/ 17098894) – Zabuza

    関連する問題