¿cómo puedo generar un exponencial Q-Q plot en R? Para un normal Q-Q plot yo uso

qqnorm(sample)
Generar la distribución exponencial y el uso qqplot .

OriginalEl autor stochazesthai | 2014-04-21

3 Comentarios

  1. 7

    EDITAR (Para reflejar @Dason de la entrada).

    Como este:

    ¿Cómo puedo generar un exponencial Q-Q plot en R?

    set.seed(1)          # for reproducibility 
    Z <- rexp(1000)      # random sample from exponential distribution
    p <- ppoints(100)    # 100 equally spaced points on (0,1), excluding endpoints
    q <- quantile(Z,p=p) # percentiles of the sample distribution
    plot(qexp(p) ,q, main="Exponential Q-Q Plot",
         xlab="Theoretical Quantiles",ylab="Sample Quantiles")
    qqline(q, distribution=qexp,col="blue", lty=2)
    ppoints es útil aquí. Cualquier razón usted eligió sólo para uso 100 puntos y estimación de la muestra de cuantiles de los datos en lugar de utilizar directamente los datos?
    Ver ediciones. Así ppoints(n) genera n puntos equidistantes excluyendo los extremos (0,1), que es mejor. No entiendo tu referencia a «la utilización de los datos directamente». ¿Por qué no publicar una respuesta que hace que.
    En lugar de utilizar los cuantiles para obtener el 100 de los cuantiles – ¿por qué no utilizar TODOS los datos como es común en un qqplot? Para un ejemplo de echar un vistazo en el último ejemplo en ?qqplot
    Sí, como dije en el primer comentario :-).
    El uso de la muestra de puntos, conduce a una incorrecta estimación de la velocidad de la distribución exponencial.

    OriginalEl autor jlhoward

  2. 5

    Aquí es un ggplot2 solución.

    Z <- rexp(1000, rate = 2)
    library(MASS)
    params <- as.list(fitdistr(Z, "exponential")$estimate)
    
    library(ggplot2)
    qplot(sample = Z, geom = 'blank') +
      stat_qq(distribution = qexp, dparams = params)

    OriginalEl autor Ramnath

  3. 3

    R tiene la qqplot función. jlhoward hace «manual» y calcula los cuantiles de los datos con quantile función. Pero en R no necesita hacerlo.

    set.seed(1)
    data = rnorm(100, mean=5, sd=2)
    qqplot(x=qexp(ppoints(100)), y=data, main="Exponential Q-Q Plot",
           xlab="Theoretical Quantiles", ylab= "Your Data Quantiles")
    qqline(data, distribution=qexp)

    haga clic aquí para ver R Trama (No tengo 10 reputación a publicar imágenes)

    Yo no veo el motivo de por qué jlhoward sólo se lleva 100 puntos pero no 1000 como la longitud de los datos de su ejemplo. O tal vez es sólo un error de escritura?

    OriginalEl autor z4.

Dejar respuesta

Please enter your comment!
Please enter your name here