8 votos

Es la muestra curtosis irremediablemente subjetivo?

Estoy buscando en la muestra curtosis de una bastante sesgada variable aleatoria, y los resultados parecen incompatibles. Simplemente para ilustrar el problema, he mirado la muestra curtosis de una log-normal de RV. En R (de la cual estoy aprendiendo poco a poco):

library(moments); 

samp_size = 2048;
n_trial = 4096;

kvals <- rep(NA,1,n_trial); #preallocate
for (iii in 1:n_trial) {
    kvals[iii] <- kurtosis(exp(rnorm(samp_size)));
}
print(summary(kvals));

El resumen de lo que me sale es

   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  11.87   28.66   39.32   59.17   61.70 1302.00 

De acuerdo a Wikipedia, la curtosis de este log-normal RV debe ser de alrededor de 114. Claramente la muestra curtosis es sesgada.

Hacer un poco de investigación he encontrado que la muestra curtosis es sesgada para tamaños de muestra pequeños. He utilizado el 'G2' estimador proporcionada por el e1071 paquete en CRAN, y obtuvo resultados muy similares para este tamaño de la muestra.

La pregunta: ¿cuál de los siguientes caracterizar lo que está pasando:

  1. El error estándar de la muestra curtosis es simplemente muy grande para este RV (aunque la mano-ondulados común estimación del error estándar es de orden $1/\sqrt{n}$). Alternativamente, la he usado muy pocas muestras (2048) en este estudio.
  2. Estas implementaciones de la muestra curtosis sufren de problemas numéricos que puedan ser corregidas por ejemplo, Terriberry del método (en mucho la misma manera que Welford del método da mejores resultados que el ingenuo método para la varianza de la muestra).
  3. He calculado la población de curtosis incorrectamente. (ouch)
  4. La muestra curtosis es intrínsecamente sesgada, y nunca se puede corregir por el tamaño pequeño de la muestra.

8voto

jldugger Puntos 7490

Hay un sesgo de corrección. No es enorme. Creo que la varianza muestral de la curtosis es proporcional a la octava (!) momento central, que puede ser enorme para una distribución lognormal. Necesitaría millones de ensayos (o mucho más) en una simulación para detectar el sesgo a menos que el CV es muy pequeña. (Trazar un histograma de kvals para ver cómo extraordinariamente sesgada lo están).

La correcta curtosis es, de hecho, acerca de 113.9364.

Tan lejos como R estilo va, puede ser conveniente para encapsular la simulación en una función, así que usted puede modificar fácilmente el tamaño de la muestra o el número de ensayos.

5voto

David J. Sokol Puntos 1730

[Sólo en el Estilo R - @whuber, ha respondido a las Kurtsosis P]

Esto fue un poco demasiado complicado para pegarse en un comentario. Para tal simples bucles como el que usted utilice, podemos combinar @whuber la sugerencia de la encapsulación de la simulación en una función con la replicate() función. replicate() se ocupa de la asignación y ejecución del bucle. Un ejemplo es la siguiente:

require(moments)
foo <- function(size, trials, meanlog = 0, sdlog = 1) {
    replicate(trials,
              kurtosis(rlnorm(size, meanlog = meanlog, 
                              sdlog = sdlog)))
}

La usamos como este:

> set.seed(1)
> out <- foo(2048, 10000)
> summary(out)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  10.93   28.77   39.99   62.53   62.58 1557.00

Tenga en cuenta que yo uso el rlnorm() función para generar el log-normal de la variable aleatoria. Es equivalente a exp(rnorm()) en el bucle, pero utiliza la herramienta correcta, y permitimos que nuestra función para pasar especificado por el usuario parámetros de la log-normal de distribución.

> set.seed(123)
> exp(rnorm(1))
[1] 0.5709374
> set.seed(123)
> rlnorm(1)
[1] 0.5709374

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