Varians jalan acak 2D
biarkan mendefinisikan jalan acak 2D dengan
$$ \sum_i A_i X_i $$
dimana $A=[\cos(\theta)\ \sin(\theta)]^T$, $\theta$ adalah variabel acak dalam rentang tersebut $[0,2\pi]$ dan $X$ adalah variabel acak skalar antara $[-1,1]$. $\theta$ dan $X$ memiliki distribusi seragam dan mereka independen.
Jalan acak dapat dibagi menjadi dua jalan acak $x$ dan $y$. Kemudian, kami menghasilkan dua varian$\sigma_x^2$ dan $\sigma_y^2$. Bagaimana kita bisa menghitung varians berjalan 2D berdasarkan$\sigma_x$ dan $\sigma_y$? Mungkin$\sqrt{\sigma_x ^2 + \sigma_y ^2}$?
Jika kita menghitung varians dari vektor $A$, kami berakhir dengan a $2 \times 2$matriks kovarians. Saya berasumsi ini akan berakhir dengan hasil yang sama. Tapi bagaimana caranya?
Jawaban
Satu realisasi dari perjalanan ini ditunjukkan di kiri. Warna titik berkembang dari merah menjadi biru seiring berjalannya waktu. Segmen garis pendek menghubungkan titik-titik yang berurutan untuk membuat kemajuan lebih terlihat.
Untuk menentukan momennya, tulis
$$AX = (x, y)^\prime.$$
Karena $\theta$ seragam, distribusi vektor $AX$ sama dengan distribusi vektor $-AX = (\cos(\theta+\pi),\sin(\theta+\pi))^\prime X,$ darimana
$$E[(x,y)] = E[AX^\prime] = (0,0).$$
Karena $\theta$ memiliki distribusi yang sama dengan $\pi/2 - \theta$ modulo $2\pi,$
$$(y,x)= (\sin(\theta),\cos(\theta))X = (\cos(\pi/2-\theta), \sin(\pi/2-\theta)X \sim (x,y)$$
didistribusikan dengan sama, dari mana $x$ dan $y$ memiliki varian yang sama $\sigma^2.$ Tapi
$$2\sigma^2 = E[x^2+y^2] = E[||AX||^2] = E[||A||^2 |X|^2] = E[|X|^2] = \int_{-1}^1 x^2 \left(\frac{1}{2}\,\mathrm{d}x\right) = \frac{1}{3}$$
tunjukkan itu
$$\sigma^2 = 1/6.$$
Dalam perjalanan acak, jumlah $n$ iid $x_i$ karena itu akan memiliki harapan $0$ dan varians $n/6$ dan juga untuk $y_i.$ Panel tengah dari gambar memplot varian $x_i$ dan $y_i,$ $i=1,2,\ldots, 100$ untuk $10^4$simulasi jalan-jalan. Garis merah memiliki kemiringan$1/6.$
Argumen simetri serupa dengan mudah menunjukkan kovariansi $x$ dan $y$adalah nol. (Distribusi$(x,y)$ sama dengan distribusi $(-x,y)$dan itu segera menyiratkan bahwa kovarians sama dengan negatifnya sendiri. Sejak$x$ dan $y$ dibatasi, mereka memiliki kovarian yang terbatas, dari mana mereka harus sama dengan nol.)
Panel sebelah kanan pada gambar memplot koefisien korelasi yang diamati pada gambar tersebut $10^4$ simulasi jalan kaki, mengonfirmasi bahwa mereka cenderung nol.
Salah satu cara untuk memahami ini adalah dengan memplot titik kedatangan untuk sejumlah besar jalan acak setelahnya $n$Langkah. Ini dia untuk 10.000 simulasi jalan kaki yang dirangkum dalam rangkaian gambar pertama:
Nilai $\sqrt{n\sigma^2 + n\sigma^2} = \sqrt{n/3}$adalah jarak tipikal yang ditempuh dari asalnya. Jari-jari lingkaran merah pada gambar ditetapkan ke nilai-nilai ini untuk referensi. Kovarians nol mencerminkan simetri melingkar: tidak ada korelasi yang terbukti dalam diagram sebar ini.
Berikut adalah Rkode untuk simulasi dan gambarnya.
#
# Generate a random walk of length `n`.
#
rWalk <- function(n) {
theta <- runif(n)
X <- runif(n, -1, 1)
x <- cos(2 * pi * theta)
y <- sin(2 * pi * theta)
cbind(cumsum(x*X), cumsum(y*X))
}
set.seed(17)
n <- 1e3
walk <- rWalk(n) # One realization
#
# The figures.
#
par(mfrow=c(1,3))
plot(walk, type="l", asp=1, xlab="x", ylab="y", main="One Realization")
points(walk, pch=19, cex=0.5, col=hsv(3/4 * seq_len(n)/n, .8, .8, .5))
#
# The simulation.
#
n <- 1e2
X <- replicate(1e4, rWalk(n))
#
# Compute the covariance matrices for each time.
#
Sigma <- array(apply(X, 1, function(y) cov(t(y))), c(2,2,dim(X)[1]))
#
# Plot the variances and correlations.
#
plot(Sigma[1,1,], ylab="Variance", main="Variance")
points(Sigma[2,2,], pch=2)
abline(c(0,1/6), col="Red", lwd=2)
plot(Sigma[1,2,] / sqrt(Sigma[1,1,] * Sigma[2,2,]), ylim=c(-1,1),
ylab=expression(rho), main="Correlation")
abline(h=0, col="Red", lwd=2)
par(mfrow=c(1,1))
#
# Plot a set of simulated endpoints.
#
lim <- max(abs(X))
a <- sapply(c(cos, sin), function(f) f(seq(0, 2*pi, length.out=361)))
par(mfrow=c(1,3))
for (k in c(1,floor(sqrt(n)), n)) {
plot(t(X[k,,]), xlim=c(-1,1)*lim, ylim=c(-1,1)*lim, asp=1,
xlab="x", ylab="y",
main=paste("After Step", k),
pch=19, cex=0.5, col="#00000010")
lines(a * sqrt(k/3), col="Red")
}
par(mfrow=c(1,1))