Die kurze Antwort ist, dass Ihr in Ordnung ist, aber Ihr γ falsch ist. Um die positive stabile Verteilung zu erhalten, die durch Ihre Formel in R gegeben ist, müssen Sie
γ = | setzen 1 - i tan ( π α / 2 ) | - 1 / α .δγ
γ=|1−itan(πα/2)|−1/α.
Das früheste Beispiel, das ich für die von Ihnen angegebene Formel finden konnte, war in (Feller, 1971), aber ich habe dieses Buch nur in physischer Form gefunden. (Hougaard, 1986) gibt jedoch dieselbe Formel zusammen mit der Laplace-Transformation
Aus dem Handbuch ( wird in verwendet ), die
L (s)= E [ exp( - s X.) ] = exp( - sα) .
stabledist
stabledist
fBasics
pm=1
Die Parametrisierung stammt von (Samorodnitsky und Taqqu, 1994), einer anderen Ressource, deren Online-Reproduktion mir entgangen ist. (Weron, 2001) gibt jedoch die charakteristische Funktion in Samorodnitsky und Taqqus Parametrisierung für
als
φ ( t ) = E [ exp ( i t X ) ] = exp [ i δ t - γ α | an t | α ( 1 - i β s i g n ( t )α ≠ 1
Ich habe einige Parameter von Werons Papier in Coinside mit der von uns verwendeten Notation umbenannt. Er benutzt
μfür
δund
σfür
γ. In jedem Fall erhaltenwir durch
Einstecken von
β=1und
δ=0φ(t)=exp[-γα| t| α(1-isign(t)tanπαφ ( t ) = E [ exp( i t X.) ] = exp[ i δt - γα| t |α( 1 - i βs i g n (t)tanπα2) ] .
μδσγβ= 1δ= 0φ ( t ) = exp[ - γα| t |α( 1 - i s i g n ( t ) tanπα2) ] .
( 1 - ich tan( πα / 2 ) ) / | 1 - ich tan( πα / 2 ) | = exp( - i πα / 2 )α ∈ ( 0 , 1 )ichα= exp( i πα / 2 )L (s)=φ(is)γ= | 1 - ich tan( πα / 2 ) |- 1 / αφ ( t )
φ ( i s ) = exp( - sα) = L ( s ) .
γα=1/21/2γ=αγ=1−αα=1/2
Hier ist ein Beispiel in R, um die Richtigkeit zu überprüfen:
library(stabledist)
# Series representation of the density
PSf <- function(x, alpha, K) {
k <- 1:K
return(
-1 / (pi * x) * sum(
gamma(k * alpha + 1) / factorial(k) *
(-x ^ (-alpha)) ^ k * sin(alpha * k * pi)
)
)
}
# Derived expression for gamma
g <- function(a) {
iu <- complex(real=0, imaginary=1)
return(abs(1 - iu * tan(pi * a / 2)) ^ (-1 / a))
}
x=(1:100)/100
plot(0, xlim=c(0, 1), ylim=c(0, 2), pch='',
xlab='x', ylab='f(x)', main="Density Comparison")
legend('topright', legend=c('Series', 'gamma=g(alpha)'),
lty=c(1, 2), col=c('gray', 'black'),
lwd=c(5, 2))
text(x=c(0.1, 0.25, 0.7), y=c(1.4, 1.1, 0.7),
labels=c(expression(paste(alpha, " = 0.4")),
expression(paste(alpha, " = 0.5")),
expression(paste(alpha, " = 0.6"))))
for(a in seq(0.4, 0.6, by=0.1)) {
y <- vapply(x, PSf, FUN.VALUE=1, alpha=a, K=100)
lines(x, y, col="gray", lwd=5, lty=1)
lines(x, dstable(x, alpha=a, beta=1, gamma=g(a), delta=0, pm=1),
col="black", lwd=2, lty=2)
}
- Feller, W. (1971). Eine Einführung in die Wahrscheinlichkeitstheorie und ihre Anwendungen , 2 , 2. Aufl. New York: Wiley.
- Hougaard, P. (1986). Überlebensmodelle für heterogene Populationen, abgeleitet aus stabilen Verteilungen , Biometrika 73 , 387-396.
- Samorodnitsky, G., Taqqu, MS (1994). Stabile nicht-Gaußsche Zufallsprozesse , Chapman & Hall, New York, 1994.
- Weron, R. (2001). Überarbeitete abgabenstabile Verteilungen: Der Endindex> 2 schließt das abgabenstabile Regime nicht aus , International Journal of Modern Physics C, 2001, 12 (2), 209-223.
Was meiner Meinung nach passiert, ist, dass in der Ausgabe
delta
möglicherweise ein interner Standortwert gemeldet wird, während in der Eingabedelta
die Verschiebung beschrieben wird. [Es scheint ein ähnliches Problem mitgamma
wann zu gebenpm=2
.] Wenn Sie also versuchen, die Verschiebung auf 2 zu erhöhenDann addieren Sie 2 zum Standortwert.
Mit
beta=1
und habenpm=1
Sie eine positive Zufallsvariable mit einer Verteilungsuntergrenze bei 0.Verschiebung um 2 und die Untergrenze steigt um den gleichen Betrag
Wenn Sie jedoch möchten, dass die
delta
Eingabe der interne Standortwert und nicht die Verschiebung oder Untergrenze ist, müssen Sie eine andere Spezifikation für die Parameter verwenden. Wenn Sie beispielsweise Folgendes versuchen (mitpm=3
und versuchendelta=0
und das, wasdelta=0.290617
Sie zuvor gefunden haben), scheinen Sie dasselbedelta
rein und raus zu bekommen . Mitpm=3
und erhaltendelta=0.290617
Sie die gleiche Dichte von 0,02700602, die Sie zuvor gefunden haben, und eine Untergrenze bei 0. Mitpm=3
und erhaltendelta=0
Sie eine negative Untergrenze (tatsächlich -0,290617).Sie können es einfacher , einfach zu ignorieren ,
delta
in den Ausgang, und so lange , wie Sie haltenbeta=1
dann mitpm=1
Hilfedelta
der Eingabe ist die Verteilung untere Grenze, die es Ihnen 0 sein wollen scheint.quelle
Ebenfalls zu beachten: Martin Maechler hat gerade den Code für den verteilten Stall überarbeitet und einige Verbesserungen hinzugefügt.
Sein neues Paket stabledist wird auch von fBasics verwendet, daher möchten Sie vielleicht auch einen Blick darauf werfen.
quelle