Eine Brownsche Exkursion mit einer Brownschen Brücke simulieren?

11

Ich möchte einen Brownschen Exkursionsprozess simulieren (eine Brownsche Bewegung, die konditioniert ist, ist immer positiv, wenn 0<t<1 bis 0 bei t=1 ). Da ein Brownscher Exkursionsprozess eine Brownsche Brücke ist, die so konditioniert ist, dass sie immer positiv ist, hatte ich gehofft, die Bewegung einer Brownschen Exkursion mit einer Brownschen Brücke simulieren zu können.

In R verwende ich das 'e1017'-Paket, um einen Brownschen Brückenprozess zu simulieren. Wie kann ich diesen Brownschen Brückenprozess verwenden, um eine Brownsche Exkursion zu erstellen?

RPz
quelle
4
Reicht es nicht aus, den absoluten Wert einer Brownschen Brücke zu simulieren?
Alex R.
1
@AlexR. nein [Polsterung]
P. Windridge
1
Es lohnt sich jedoch erneut zu machen, dass eine Brownsche Bewegung, die als positiv konditioniert ist, realisiert werden kann, indem der BM um sein Laufmaximum reflektiert wird, was ein Ergebnis von Pitman ist. Eine andere Möglichkeit, einen BM zu realisieren, der konditioniert ist, um positiv zu bleiben, ist der absolute Wert eines 3D-BM .
P. Windridge
1
@AlexR. - Ich habe meine Antwort unten aktualisiert, um zu zeigen, dass selbst bei einfachen zufälligen Spaziergängen die positiven Konditionierungsergebnisse ein anderes Verhalten hervorrufen, als nur den absoluten Wert zu nehmen. Speziell für Brownsche Brücken, intuitiv für kleine , ist das Verhalten von B B t wie | W t (weil B B t = W t - t W 1 ) und BM das Gesetz des iterierten Logarithmus erfüllen (daher ist " O p ( t ) " für klein genug t irrelevant . Somit ist |tBBt|WtBBt=WttW1Op(t)tist wie ein reflektierter BM für kleine t . Dies hat ein ganz anderes Verhalten als W t konditioniert, um positiv zu bleiben ...|B.B.t|tW.t
P. Windridge

Antworten:

7

Eine Brownsche Exkursion kann von einer Brücke aus mit der folgenden Konstruktion von Vervaat konstruiert werden: https://projecteuclid.org/download/pdf_1/euclid.aop/1176995155

Eine schnelle Annäherung in R unter Verwendung des BB-Codes von @ whuber ist

n <- 1001
times <- seq(0, 1, length.out=n)

set.seed(17)
dW <- rnorm(n)/sqrt(n)
W <- cumsum(dW)

# plot(times,W,type="l") # original BM

B <- W - times * W[n]   # The Brownian bridge from (0,0) to (1,target)

# plot(times,B,type="l")

# Vervaat construction
Bmin <- min(B)
tmin <- which(B == Bmin)
newtimes <- (times[tmin] + times) %% 1
J<-floor(newtimes * n)
BE <- B[J] - Bmin
plot(1:length(BE)/n,BE,type="l")

Geben Sie hier die Bildbeschreibung ein

Hier ist eine weitere Handlung (aus set.seed (21)). Eine Schlüsselbeobachtung mit einem Ausflug ist , dass die Konditionierung tatsächlich manifestiert sich als ein „Abstoßung“ von 0, und Sie sind wahrscheinlich nicht einen Ausflug nahe kommen , um zu sehen im Innern von ( 0 , 1 )0(0,1) . Geben Sie hier die Bildbeschreibung ein


Nebenbei: Die Verteilung des Absolutwertes einer Brownschen Brücke und der Auslenkung ( B B t ) 0 t 1(|B.B.t|)0t1(B.B.t)0t1 als positiv konditionierte sind nicht gleich. Intuitiv wird die Exkursion vom Ursprung abgestoßen, da Brownsche Pfade, die dem Ursprung zu nahe kommen, wahrscheinlich bald danach negativ werden und somit durch die Konditionierung bestraft werden.

Dies kann sogar mit einer einfachen Zufallsbrücke und einem Ausflug auf Stufen veranschaulicht werden. Dies ist ein natürliches diskretes Analogon von BM (und konvergiert zu BM, wenn die Schritte groß werden und Sie neu skalieren).6

Nehmen Sie in der Tat eine symmetrische SRW ab . Betrachten wir zunächst die "Brücken" -Konditionierung und sehen, was passiert, wenn wir nur den absoluten Wert nehmen. Berücksichtigen Sie alle einfachen Pfaden s der Länge 6 , die am Anfang und Ende 0 . Die Anzahl solcher Pfade beträgt ( 60s60. Es gibt2× ( 4(63)=20davon, für die| s2| =0. Mit anderen Worten, die Wahrscheinlichkeit für denAbsolutwertder SRW „Brücke“ (konditionierte Ende bei0bis) Wert 0 beiSchritt weist2ist12/20=0,6.2×(42)=12|s2|=00212/20=0.6

Zweitens werden wir die "Exkursions" -Konditionierung betrachten. Die Anzahl der nicht negativen einfachen Pfade der Länge 6 = 2 3 , die bei 0 enden, ist die katalanische Zahl C m = 3 = ( 2 ms6=230. Genau2dieser Pfade habens2=0. Somit ist die Wahrscheinlichkeit für unsere SRW „Exkursion“ (konditionierte zu bleiben positive und endet bei0) haben Wert 0 im Schritt2ist2/5=0,4<0,6.Cm=3=(2mm)/(m+1)=52s2=0022/5=0.4<0.6

Falls Sie immer noch bezweifeln, dass dieses Phänomen in der Grenze anhält, können Sie die Wahrscheinlichkeit berücksichtigen, dass SRW-Brücken und Exkursionen der Länge in Schritt 2 n 0 treffen .4n2n

P(S2n=0|Sj0,j4n,S4n=0)=Cn2/C2n(42n/πn3)/(42n/(2n)3π)
cn3/2

P(|S2n|=0|S4n=0)=(2nn)2/(4n2n)(4n/πn)2/(42n/2nπ)
cn1/2

0


Hier ist eine alternative Konstruktion, die auf einem 3D-Bessel-Prozess anstelle einer Brownschen Brücke basiert. Ich verwende die in https://projecteuclid.org/download/pdf_1/euclid.ejp/1457125524 erläuterten Fakten

Übersicht - 1) Simulieren Sie einen 3D-Bessel-Prozess. Dies ist wie ein BM, der darauf konditioniert ist, positiv zu sein. 2) Wenden Sie eine geeignete Zeit-Raum-Neuskalierung an, um eine Bessel 3-Brücke zu erhalten (Gleichung (2) in der Arbeit). 3) Verwenden Sie die Tatsache (kurz nach Satz 1 in der Arbeit vermerkt), dass eine Bessel 3-Brücke tatsächlich die gleiche Verteilung hat wie eine Brownsche Exkursion.

Ein kleiner Nachteil ist, dass Sie den Bessel-Prozess eine Weile (T = 100 unten) in einem relativ feinen Raster ausführen müssen, damit die Raum / Zeit-Skalierung am Ende einsetzt.

## Another construction of Brownian excursion via Bessel processes
set.seed(27092017)
## The Bessel process must run for a long time in order to construct a bridge
T <- 100
n <- 100001
d<-3 # dimension for Bessel process
dW <- matrix(ncol = n, nrow = d, data=rnorm(d*n)/sqrt(n/T))
dW[,1] <- 0
W <- apply(dW, 1, cumsum)
BessD <- apply(W,1,function(x) {sqrt(sum(x^2))})

times <- seq(0, T, length.out=n)
# plot(times,BessD, type="l") # Bessel D process


times01 <- times[times < 1]
rescaletimes <- pmin(times01/(1-times01),T)
# plot(times01,rescaletimes,type="l") # compare rescaled times

# create new time index
rescaletimeindex <- sapply(rescaletimes,function(x){max(which(times<=x))} )

BE <- (1 - times01) * BessD[rescaletimeindex]
plot(times01,BE, type="l")

Hier ist die Ausgabe: Geben Sie hier die Bildbeschreibung ein

P. Windridge
quelle
5

Das Reflexionsprinzip behauptet

f(t)f(s)=at=ssa

Wikipedia , abgerufen am 26.09.2017.

a=0(0,0)(T,B(T))BT=1tB(T)tB(t) .)

T>0000

![Zahl

Diese Brownsche Bewegung beginnt und endet mit einem Wert von Null: Es ist eine Brownsche Brücke.

Figur 2

Der rote Graph ist eine Brownsche Exkursion, die aus der vorhergehenden Brownschen Brücke entwickelt wurde: Alle ihre Werte sind nicht negativ. Das blaue Diagramm wurde auf die gleiche Weise entwickelt, indem die Brownsche Brücke zwischen den gepunkteten Linien jedes Mal reflektiert wird, wenn sie auf sie trifft. Das graue Diagramm zeigt die ursprüngliche Brownsche Brücke.

Die Berechnungen sind einfach und schnell: Teilen Sie die Zeit in kleine Intervalle auf, generieren Sie unabhängige, identisch verteilte Normalinkremente für jedes Intervall, akkumulieren Sie sie, subtrahieren Sie den Trend und führen Sie alle erforderlichen Reflexionen durch.

Hier ist RCode. Darin Wist die ursprüngliche Brownsche Bewegung, Bist die Brownsche Brücke und B2ist die Auslenkung, die zwischen zwei angegebenen Werten ymin(nicht positiv) und ymax(nicht negativ) beschränkt ist. Die Technik zur Durchführung der Reflexion unter Verwendung des Moduloperators %%und des komponentenweisen Minimums pminkann von praktischem Interesse sein.

#
# Brownian bridge in n steps from t=0 to t=1.
#
n <- 1001
times <- seq(0, 1, length.out=n)
target <- 0                        # Constraint at time=1
set.seed(17)
dW <- rnorm(n)
W <- cumsum(dW)
B <- W + times * (target - W[n])   # The Brownian bridge from (0,0) to (1,target)
#
# The constrained excursion.
#
ymax <- max(abs(B))/5              # A nice limit for illustration
ymin <- -ymax * 2                  # Another nice limit
yrange2 <- 2*(ymax - ymin)
B2 <- (B - ymin) %% yrange2
B2 <- pmin(B2, yrange2-B2) + ymin
whuber
quelle
0
abs(B)target1
1
(einbs(B.B.t))0t1(B.B.t)0t1konditioniert, um positiv zu sein (dh ein Ausflug) :)
P. Windridge
4
Die Verteilungen sind unterschiedlich, daher stimme ich leider ab.
P. Windridge
2

Sie können eine Ablehnungsmethode verwenden: Simulieren Sie Brownsche Brücken und behalten Sie die positiven bei. Es klappt.

Aber. Es ist sehr langsam, da viele Probenbahnen zurückgewiesen werden. Und je größer die von Ihnen eingestellte "Frequenz" ist, desto weniger wahrscheinlich ist es, dass Sie Flugbahnen finden.

succeeded <- FALSE
while(!succeeded)
{
  bridge <- rbridge(end = 1, frequency = 500)
  succeeded=all(bridge>=0)
}
plot(bridge)

Sie können es auch beschleunigen, indem Sie die negativen Flugbahnen beibehalten.

while(!succeeded)
{
  bridge <- rbridge(end = 1, frequency = 500)
  succeeded=all(bridge>=0)||all(bridge<=0)
}
bridge = abs(bridge)
plot(bridge)

Geben Sie hier die Bildbeschreibung ein

RUser4512
quelle
2
Das Problem bei dieser Methode ist, dass bei einer Simulation mit kleinerer Schrittweite die Wahrscheinlichkeit, dass eine Brownsche Brücke irgendwann negativ ist, auf 1 in der Nähe steigt t=0.
Alex R.
In der Tat gab es einen kleinen Haftungsausschluss;) "Und je größer die von Ihnen eingestellte" Frequenz "ist, desto unwahrscheinlicher ist es, dass Sie Flugbahnen finden." ... Ich bin nur halb zufrieden mit meiner Antwort, aber dies ist das einzige, was ich denken kann ungefähr, wenn ich mit einer Brownschen Brücke beginnen müsste. Suche (und warte) nach einer besseren Antwort!
RUser4512