私は、確率密度が平均から少し離れた後に急速に減少する分布、または私自身の言葉で「プラトー型の分布」を探しています。
ガウスとユニフォームの間の何か。
私は、確率密度が平均から少し離れた後に急速に減少する分布、または私自身の言葉で「プラトー型の分布」を探しています。
ガウスとユニフォームの間の何か。
回答:
一般化された正規(バージョン1)、サブボチン分布、または指数パワー分布の名前で知られている分布を探しているかもしれません。場所、スケールおよび形状\ pdfでpdfでパラメーター化されますσ β
お気づきのとおり、場合はラプラス分布に似て収束し、場合は正規分布に収束し、は一様分布に収束します。
それを実装したソフトウェアを探している場合はnormalp
、Rのライブラリを確認できます(Mineo and Ruggieri、2005)。このパッケージの優れている点は、とりわけ、一般化された正規分布エラーによる回帰を実装していること、つまりノルムを最小化していること。
ミネオ、AM、およびルッジェーリ、M。(2005)。指数分布のソフトウェアツール:normalpパッケージ。Journal of Statistics Software、12(4)、1-24。
「プラトー型」の分布は無限にあります。
「ガウスとユニフォームの中間」よりも具体的な何かを求めていましたか?それはいくぶんあいまいです。
簡単な方法が1つあります。ユニフォームの両端に常に半法線を貼り付けることができます。
法線のスケールに対するユニフォームの「幅」を制御して、プラトーを広くしたり狭くしたりすることができ、ガウス分布とユニフォームを制限ケースとして含む分布のクラス全体を提供できます。
密度は次のとおりです。
ここで、
固定するための、我々は上に均一に近づくとして、および固定するための我々は接近。
以下にいくつかの例を示します(それぞれの場合にを使用):
この密度を「ガウス尾部のユニフォーム」と呼ぶこともあります。
こちらの私の「悪魔の塔」の分布をご覧ください[1]:
| x | < 0.9399 、F (X )= 0.2945 / X 2 0.9399 ≤ | x | < 2.3242 、F (X )= 0 2.3242 ≤ | x |、 ; 場合、 ; そして、のため、。
「スリップドレス」分布はさらに興味深いものです。
希望する形状の分布を作成するのは簡単です。
[1]:Westfallの、PH(2014)
"尖度尖度1905年として- 2014 RIP"
アム。統計 68(3):191–195。doi:10.1080 / 00031305.2014.917055
パブリックアクセスpdf:http : //www.ncbi.nlm.nih.gov/pmc/articles/PMC4321753/pdf/nihms-599845.pdf
たくさんのいい答え。ここで提供されるソリューションには、2つの機能があります。(i)特に単純な機能形式を持つこと、および(ii)結果の分布が必ずプラトー形のpdfを生成すること(特別な場合だけではありません)。これがすでに文献に名前を持っているかどうかはわかりませんが、同じ名前がない場合は、pdfしてプラトー分布と呼びましょう。
ここで:
以下は、パラメーターさまざまな値に対するpdfのプロットです。
。
パラメーターが大きくなると、密度はUniform(-1,1)分布に向かう傾向があります。次のプロットは、標準の標準(灰色の破線)と比較しています。
もう1(EDIT:私は今、それを簡素化。EDIT2:私は、さらにそれを単純化し、今のに絵が本当にこの正確な式を反映していません)。
不器用なのは知っていますが、ここでは、が増加するにつれてが行に近づくという事実を利用しました。x
基本的に、遷移の滑らかさを制御できます()。場合および、私はそれが有効な確率密度(1合計)の保証します。他の値を選択した場合、再正規化する必要があります。a = 2 b = 1
Rのサンプルコードを次に示します。
f = function(x, a, b, alpha){
y = log((cosh(2*alpha*pi*a)+cosh(2*alpha*pi*x))/(cosh(2*alpha*pi*b)+cosh(2*alpha*pi*x)))
y = y/pi/alpha/6
return(y)
}
f
私たちの分布です。のシーケンスについてプロットしましょうx
plot(0, type = "n", xlim = c(-5,5), ylim = c(0,0.4))
x = seq(-100,100,length.out = 10001L)
for(i in 1:10){
y = f(x = x, a = 2, b = 1, alpha = seq(0.1,2, length.out = 10L)[i]); print(paste("integral =", round(sum(0.02*y), 3L)))
lines(x, y, type = "l", col = rainbow(10, alpha = 0.5)[i], lwd = 4)
}
legend("topright", paste("alpha =", round(seq(0.1,2, length.out = 10L), 3L)), col = rainbow(10), lwd = 4)
コンソール出力:
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = 1"
#[1] "integral = NaN" #I suspect underflow, inspecting the plots don't show divergence at all
#[1] "integral = NaN"
#[1] "integral = NaN"
そしてプロット:
a
とをb
それぞれ傾斜の開始点と終了点に変更できますが、その後、さらに正規化が必要になり、計算しませんでした(そのため、プロットで使用a = 2
しb = 1
ています)。
中央のプラトーと三角形の分布の辺を持つ非常に単純なものを探している場合、たとえば、プラトーと降下の間の望ましい比率に応じて、N個の三角形の分布を組み合わせることができます。なぜ三角形なのか、そのサンプリング関数はほとんどの言語に既に存在しているからです。それらの1つからランダムにソートします。
Rでは次のようになります。
library(triangle)
rplateau = function(n=1){
replicate(n, switch(sample(1:3, 1), rtriangle(1, 0, 2), rtriangle(1, 1, 3), rtriangle(1, 2, 4)))
}
hist(rplateau(1E5), breaks=200)