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}} $$

entonces tenemos la función de distribución acumulada 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 grafico ff

 plot(df$x,ff)

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

Entonces mi pregunta es:

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

6voto

bheklilr Puntos 113

Al usar ecdf y density, en realidad no estás realizando los cálculos de Pareto, sino que estás utilizando estimaciones basadas en una muestra que, por su naturaleza no paramétrica, no están garantizadas (es decir: no van a) tener la propiedad deseada.

Intenta 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)

Obtendrás una bonita línea recta:

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