3 votos

Teorema del límite central para variables aleatorias no correlacionadas e identicamente distribuidas

Estoy tratando de determinar si una suma de variables aleatorias continuas idénticamente distribuidas pero solo no correlacionadas podría converger a una distribución normal. En primer lugar definimos las variables aleatorias i.i.d. $\theta_i\sim Unif(0,2\pi)$, por lo que una distribución uniforme en el intervalo $(0,2\pi)$, función de densidad dada por: $$ f_{\theta_i}(\theta) = \begin{cases}\frac{1}{2\pi} \mbox{ si $\theta\in(0,2\pi$)} \\ 0 \mbox{ en otro caso} \end{cases} $$ Mi pregunta es: ¿qué podemos decir sobre la suma de variables aleatorias $$ \sum_{i En primer lugar podemos notar que si $i\not = j \not = k \not = s$, entonces $\cos(\theta_i-\theta_j)$ y $\cos(\theta_k-\theta_s)$ son independientes (porque son función de variables aleatorias independientes). El problema principal es que las variables aleatorias no son mutuamente independientes sino "solo" no correlacionadas (o al menos, logro probar que son no correlacionadas pero no creo que puedan ser independientes.. aunque tengo que encontrar un contraejemplo para demostrarlo). Por otro lado $\{\cos(\theta_i-\theta_j)\}_{i son idénticamente distribuidos con $\mathbb{E}(\cos(\theta_i-\theta_j))=0$ y $Var(\cos(\theta_i-\theta_j))=\frac{1}{2}$. Sé que el TCL estándar no se puede aplicar aquí.. pero también sé de la existencia de alguna forma más general de este teorema con hipótesis más débiles.

¿Sabes si, en este caso particular, es posible aplicar alguna de ellas? ¡Gracias de antemano por tu ayuda!

ACTUALIZACIÓN 1

Dado que

$$ |\{(i,j)\in\mathbb{N}^2:i

la suma cuenta $\frac{N(N-1)}{2}$ variables aleatorias y aplicando el TCL (¿en su versión estándar?) tenemos: $$ \frac{\sum_{i donde usamos el hecho de que $\mu = 0$ y $\sigma^2 = \frac{1}{2}$.

Mi pregunta

Me gustaría saber cómo puedo justificar rigurosamente este hecho. En particular, ¿qué versión del TCL debería utilizar?

Observaciones

Observa que si definimos $X_{ij} = \cos(\theta_i-\theta_j)$, nuestra secuencia de variables aleatorias compone un array triangular con entradas $\{X_{ij}\}_{1\leq i\leq j-1,j \geq 2}$ donde estamos interesados en la convergencia de la suma de todas sus entradas: $$ \sum_{i cuando $N\to +\infty$. Además noto que cada fila del triángulo está compuesta por variables aleatorias independientes. Por ejemplo, si $j=5$ entonces: $X_{15},X_{25},X_{35},X_{45}$ son independientes.

Teorema central del límite de Lindeberg-Feller

Nuestro array satisface el TCL de Lindeberg-Feller, lo que implica que si $S_k$ es la suma de la $k-ésima$ fila, entonces $S_k\longrightarrow\mathcal{N}(0,\sigma^2)$.. pero cómo usarlo para el problema de la convergencia de la suma de TODAS las entradas del array?

Dudas

Después de mi respuesta (que puedes encontrar más abajo), donde me referí a algunos papers, de repente gracias a @jd27 entiendo que mi generación con R no parece una distribución normal.. aunque debido a los resultados que cité debería serlo.

Los ingredientes que he utilizado son:

  1. Independencia pareja (es decir, $\forall i_1 y $\forall i_2 con $(i_1,j_1)\not = (i_2,j_2)$ tenemos que $\cos(\theta_{i_1}-\theta_{j_1})$ y $\cos(\theta_{i_2}-\theta_{j_2})$ son independientes);
  2. Simetria de $X_{ij}$ (es decir, $X_{ij}\sim -X_{ij}$);
  3. Las variables aleatorias $X_{ij}$ son idénticamente distribuídas con valor esperado finito y varianza finita.

No entiendo qué hice mal.. ¿Una de estas propiedades es falsa en mi secuencia de variables aleatorias? Gracias de antemano por tu ayuda.

También podemos observar que:

$$ \min {\sum_{i mientras que $$ \max {\sum_{i lo cual es extraño porque produce una distribución.. que no parece ser normal, aunque la distribución límite de $$ \frac{\sum_{i parece tener $\mathbb{E}(W) = 0$ y $Var(W) = 1$ como se puede ver en la salida del código:

library(EnvStats)
nsample <- 20000
n <- 50
mat <- matrix(rep(0,n^2), n, n)
total <- integer(nsample)
for (k in 1:nsample) {
  sample <- runif(n, min = 0, max = 2*pi)
  for(i in 1:n) {
    for(j in 1:n) {
      if(j > i) {
        mat[i,j] <- cos(sample[i]-sample[j])
      }
    }
  }
  total[k] <- (sum(mat))/(sqrt(n*(n-1)/4))
}
T <- total
CDF <- ecdf(T)
par(mfrow=c(1,2))
plot(CDF)
epdfPlot(T, epdf.col = "red")
print(sum(1/nsample*total))
print(var(T))

enter image description here

La distribución límite parece ser una distribución log-normal:

https://es.wikipedia.org/wiki/Distribuci%C3%B3n_log-normal

Pero también recuerda a la distribución de Landau:

https://es.wikipedia.org/wiki/Distribuci%C3%B3n_de_Landau

2voto

jd27 Puntos 366

Esta no es una respuesta completa, pero creo que la conjetura de la simulación R de que un resultado tipo CLT (con una distribución normal) es válido podría no ser precisa.

Si entiendo el problema correctamente, creo que tu código R no está calculando lo correcto. Para muestrear $\sum_{i necesitamos dibujar $\theta_1(\omega) , \dots , \theta_N( \omega)$ para un resultado $\omega$ y luego calcular la suma con esos valores. Pero tú no haces eso. En esta parte del código:

mat <- matrix(0, n, n)
total <- integer(nsample)
for (k in 1:nsample) {
  for(i in 2:n) {
    sample1 = runif(1, min = 0, max = 2*pi)
    for(j in 1:i-1) {
    sample2 = runif(1, min = 0, max = 2*pi) 
    mat[i,j] <- cos(sample1-sample2) 
    }
  }
  total[k] <- (sum(mat))/(sqrt(n*(n-1)/4))
  mat <- matrix(0, n, n)
}

Estás muestreando demasiadas variables i.i.d. Lo que estás calculando es:

Sea $ \theta_2, \dots, \theta_N$ i.i.d. uniformes (correspondiente a sample1 en tu código) y para $i \in \{2 , \dots N \}$ sea $\theta_{ij} $ i.i.d. uniformes para $j \in \{1, \dots, i-1\}$ (correspondiente a sample2 en tu código). Entonces lo que estás muestreando en el código es (ignorando el factor constante): $$ \sum_{i=2}^N \sum_{j=1}^{i-1} \cos ( \theta_i - \theta_{ij}). $$ Lo cual no es lo mismo que el anterior.

Podemos muestrear la expresión correcta en python de esta manera:

import numpy as np
from matplotlib import pyplot as plt
import numba as nb

rng = np.random.default_rng()
N_sum = 70
N_samples = 7500

@nb.njit(fastmath=True)
def Sn(rng):
    """Muestrea la suma (una vez)"""
    thetas = rng.uniform(0,2*np.pi,size=N_sum)
    ps=0.0
    for j in range(N_sum):
        for i in range(j):
            ps+= np.cos(thetas[i]-thetas[j])
    return ps/np.sqrt(N_sum*(N_sum-1)/4)

@nb.njit()
def genSns(rng):
    """Muestrea la suma varias veces"""
    out = np.zeros(shape=N_samples)
    for i in range(N_samples):
       out[i]= Sn(rng)
    return out

sns =genSns(rng)

fig, ax = plt.subplots()
weights, bins, _ = ax.hist(sns,bins=100,density=True)
ax.set_ylabel("Densidad")
ax.set_xlabel("Valor de la Suma")
ax.set_xlim(-1.1,6)
plt.show()

Histograma PDF

Esta es una PDF totalmente diferente y parece (al menos a primera vista) ser esencialmente "inmune" al CTL habitual, ya que aumentar N_sum no parece cambiar mucho.

La limitación de la suma desde abajo (el mínimo está ligeramente por debajo de $-1$ en el gráfico anterior) tiene sentido. Por ejemplo, en el caso $N=3$ tenemos $$ \sum_{i Y si calculamos el mínimo global llegamos a $- 3/2$. Seguramente también es posible encontrar una fórmula recursiva para este mínimo para cualquier $N$ para mostrar que la suma está limitada desde abajo. Parece que en general el mínimo de la suma está en $-N/2$. Lo que lleva a un mínimo de $\approx -1$ en el histograma de la PDF.

0voto

Luca Onnis Puntos 51

Creo que lo entendí. La secuencia de variables aleatorias: $$ \frac{\sum_{i converge a una distribución exponencial de parámetro $\lambda = 1$, como se puede ver claramente en la gráfica:

enter image description here

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X