6 votos

Problema con la distribución de Pareto y R

Estoy tratando de probar esta propiedad de la distribución de pareto: Sea f(x) una distribución de pareto

$$ f(x)=\alpha \frac{x_m^\alpha}{x^{\alpha+1}} $$

por lo que tenemos la fdc que es

$$ CDF(x)=\int_{x_m}^{x}\alpha \frac{t_m^\alpha}{t^{\alpha+1}}dt=1-\frac{x_m^\alpha}{x^\alpha} $$

entonces la probabilidad de que $x>x_0$ es

$$ P(x>x_0)=1-CDF(x)=\frac{x_m^\alpha}{x^\alpha} $$

y así tenemos

$$ \frac{P(x>x_0)}{f(x)}=\frac{x}{\alpha} $$

Ahora estoy tratando de probarlo con R.

 library(PtProcess)
 dd<-rpareto(10000,1.5,0.01)
 cdf<-ecdf(dd)
 df<-density(dd)
 ff<-(1-cdf(df$x))/df$y

Si se traza ff

 plot(df$x,ff)

No obtengo la línea recta correcta. Supongo que esto se debe a la forma en que funciona density() y ecdf(). Necesito esta forma de la prueba (una evaluación a posteriori de fd y cdf) para realizar la misma prueba sobre una muestra de datos de origen desconocido. Supongo que necesito una forma de binar la función ecdf() de la misma manera que hist() es la versión de binar de la densidad.

Así que mi pregunta es:

  • ¿Existe una función binada equivalente a ecdf() como hist() es la función binada de density()?
  • ¿o puedo simular ecdf() con hist()?

6voto

bheklilr Puntos 113

Utilizando ecdf y density En realidad, no estás haciendo los cálculos de Pareto, sino que utilizas estimaciones basadas en una muestra que, por su naturaleza no paramétrica, no garantiza (léase: no va a) tener la propiedad deseada.

Prueba lo siguiente:

x <- seq(0.1,10,by=0.1)
fx <- dpareto(x, 1.5, 0.05)
Fx <- ppareto(x, 1.5, 0.05)
plot((1-Fx)/fx ~ x)

Tendrás una bonita línea recta hacia fuera: 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