2017-04-10 10 views
0

私は現在、Kernal Estimationについてthis SciPy exampleを使っています。特に、「単変量推定」と名付けられたもの。ランダムなデータを作成するのではなく、資産リターンを使用しています。私の第二の推定は、しかし(と私はと比較するために作成しても、単にノルムPDF)は意味をなさない20でピーク密度を、示している...次のように私のコードは次のとおりです。Python - SciPy Kernal推定例 - 密度>> 1

x1 = np.array(data['actual'].values)[1:] 
xs1 = np.linspace(x1.min()-1,x1.max()+1,len(x1)) 
std1 = x1.std() 
mean1 = x1.mean() 

x2 = np.array(data['log_moves'].values)[1:] 
xs2 = np.linspace(x2.min()-.01,x2.max()+.01,len(x2)) 
#xs2 = np.linspace(x2.min()-1,x2.max()+2,len(x2)) 
std2 = x2.std() 
mean2 = x2.mean() 

kde1 = stats.gaussian_kde(x1) # actuals 
kde2 = stats.gaussian_kde(x1, bw_method='silverman') 

kde3 = stats.gaussian_kde(x2) # log returns 
kde4 = stats.gaussian_kde(x2, bw_method='silverman') 

fig = plt.figure(figsize=(10,8)) 
ax1 = fig.add_subplot(211) 
ax1.plot(x1, np.zeros(x1.shape), 'b+', ms=12) # rug plot 
ax1.plot(xs1, kde1(xs1), 'k-', label="Scott's Rule") 
ax1.plot(xs1, kde2(xs1), 'b-', label="Silverman's Rule") 
ax1.plot(xs1, stats.norm.pdf(xs1,mean1,std1), 'r--', label="Normal PDF") 

ax1.set_xlabel('x') 
ax1.set_ylabel('Density') 
ax1.set_title("Absolute (top) and Returns (bottom) distributions") 
ax1.legend(loc=1) 

ax2 = fig.add_subplot(212) 
ax2.plot(x2, np.zeros(x2.shape), 'b+', ms=12) # rug plot 
ax2.plot(xs2, kde3(xs2), 'k-', label="Scott's Rule") 
ax2.plot(xs2, kde4(xs2), 'b-', label="Silverman's Rule") 
ax2.plot(xs2, stats.norm.pdf(xs2,mean2,std2), 'r--', label="Normal PDF") 

ax2.set_xlabel('x') 
ax2.set_ylabel('Density') 

plt.show() 

マイ結果: results

と参照のために、第一及び第二の瞬間に起こったデータ:私は対数正規PDFを生成する第二のチャートを変更した場合、Y場合

print std1 
print mean1 
print std2 
print mean2 
4.66416718334 
0.0561365678347 
0.0219996729055 
0.00027330546845 

さらには、私は、(フラットラインを取得します - 軸は、上のように正確に縮尺されました、私はsurです

答えて

1

カーネル密度の推定結果は確率密度です。確率は1よりも大きくすることはできませんが、密度は可能です。

確率密度曲線が与えられた場合、その範囲内の確率密度を積分することによって、範囲(x_1, x_2)内の確率を見つけることができます。目で判断すると、両方の曲線の下の積分は約1なので、出力は正しいように見えます。

+0

ああ、あなたを持ってきました。ありがとうございました。私が持っているものをより意味のある結果に変換する方法についての感覚はどれですか?つまり、2番目のサブプロットがほぼ正常に分布しているかどうかを視覚的に比較したいと思います。 – keynesiancross

+0

log-normalと視覚的に比較したい場合、密度の見積もりに最もよく適合した対数正規分布をプロットすることができます。あなたが望むなら、これを定量的に行うこともできます。例えばhttp://stats.stackexchange.com/questions/134924/tests-for-lognormal-distribution – jakevdp

+0

ああ、完璧なありがとう。以前の対数正規化をしようとすると、scipyは "S"形状パラメータを必要とすることに気付きました。ありがとう – keynesiancross

関連する問題