完全を期すために、ガウス関数を生成しています。これが私の実装です。
from numpy import *
x=linspace(0,1,1000)
y=exp(-(x-0.5)**2/(2.0*(0.1/(2*sqrt(2*log(2))))**2))
0.5
とfwhm=0.1
にピークがあります。これまでのところ面白くない。次のステップでは、numpys
random.poisson 実装を使用して、データセットのポアソン分布を計算します。
poi = random.poisson(lam=y)
私は2つの大きな問題を抱えています。
編集:3。質問:このコンテキストで使用される「サイズ」変数は何ですか?私はさまざまな種類の使用法を見てきましたが、最終的には異なる結果は得られませんでしたが、間違って選択すると失敗しました...
EDIT2:OK、私が得た答えから、私は十分に明確ではなかったと思います(それは私がした他のいくつかの愚かなエラーを修正するのにすでに役立ちましたが、それをありがとう!)。私がやりたいのは、関数yにポアソン(ホワイト)ノイズを適用することです。以下の投稿でMSeifertが説明しているように、期待値をlamとして使用します。しかし、これは私にノイズを与えるだけです。私は、このノイズがどのように適用されるかというレベルで、いくつかの理解上の問題があると思います(そして、おそらくそれはより物理学に関連していますか?!)。
まず、_import numpy as np
_を想定してこの回答を記述します。これは、numpy
関数を組み込み関数またはmath
およびrandom
パッケージの関数と明確に区別するためです。 Python。
基本的な仮定が間違っているため、指定された質問に答える必要はないと思います。
はい、ポアソン統計には分散に等しい平均がありますが、定数lam
を使用することを前提としています。しかし、あなたはしません。ガウス分布のy値を入力するため、それらが一定であるとは期待できません(定義上、ガウス分布です!)。
np.random.poisson(lam=0.5)
を使用して、ポアソン分布から1つのランダム値を取得します。ただし、このポアソン分布はガウス分布とほぼ同じではないので注意してください。これは、これらの両方が大幅に異なる「低平均」区間にあるためです。たとえば、 ポアソン分布に関するウィキペディアの記事 を参照してください。 =。
また、乱数を作成しているので、実際にそれらをプロットするのではなく、それらの_np.histogram
_をプロットする必要があります。統計分布はすべて確率密度関数に関するものであるため( 確率密度関数 を参照)。
前に、定数lam
でポアソン分布を作成することをすでに述べたので、今度はsize
について説明します。乱数を作成するので、必要な実際のポアソン分布を概算します。たくさんの乱数を描きます。サイズは次のとおりです。np.random.poisson(lam=0.5, size=10000)
は、たとえば、平均値_0.5
_のポアソン確率密度関数からそれぞれ抽出された10000個の要素の配列を作成します。
そして、前に述べたウィキペディアの記事でそれを読んでいない場合、ポアソン分布は定義上、結果として符号なし(> = 0)整数のみを与えます。
したがって、あなたがやりたかったのは、1000個の値を含むガウス分布とポアソン分布を作成することだと思います。
_gaussian = np.random.normal(0.5, 2*np.sqrt(2*np.log(2)), 1000)
poisson = np.random.poisson(0.5, 1000)
_
次に、それをプロットするには、ヒストグラムをプロットします。
_import matplotlib.pyplot as plt
plt.hist(gaussian)
plt.hist(poisson)
plt.show()
_
または、代わりに _np.histogram
_ を使用してください。
ランダムサンプルから統計を取得するには、ガウスサンプルとポアソンサンプルで_np.var
_と_np.mean
_を使用できます。そして今回(少なくとも私のサンプル実行では)、それらは良い結果をもたらします:
_print(np.mean(gaussian))
0.653517935138
print(np.var(gaussian))
5.4848398775
print(np.mean(poisson))
0.477
print(np.var(poisson))
0.463471
_
ガウス値がパラメーターとして定義したものとほぼ同じであることに注意してください。一方、ポアソン平均と変数はほぼ同じです。上記のsize
を増やすことで、平均と変数の精度を上げることができます。
元の信号には0〜1の値しか含まれていないため、ポアソン分布では正の整数のみが許可され、標準偏差は平均値にリンクされます。ガウス分布の平均からこれまでのところ、信号は約0であるため、ポアソン分布はほとんどの場合0になります。ガウス分布の最大値は1です。1のポアソン分布は次のようになります(左が信号+ポアソン)右側では、1)の値の周りのポアソン分布
そのため、その領域では0と1が多く、2がいくつか得られます。しかし、7までの値を描く可能性もあります。これはまさに私が述べた反対称です。ガウス分布の振幅を変更すると(たとえば、1000を掛ける)、ポアソン分布がほぼ対称であるため、「適合」ははるかに優れています。