[R-es] PRUEBAS DE NORMALIDAD

Pablo Emilio Verde PabloEmilio.Verde en uni-duesseldorf.de
Vie Nov 6 17:08:14 CET 2009


John,

Estoy de acuerdo con Kjetil, un "qqplot es mucho mas efectivo
para mirar normalidad, que el test de "kolmogorov-smirnov".

En realidad estos tests estadisticos estan obsoletos. Es mas, la
idea es que con el R podes analizar y entender mucho mejor tus datos!

Te mando un script que tengo sobre el tema y lo aplico a tus datos.
La idea es simular datos, e.g. en tu caso normales con la media
y el desvio iguales a los estimados, y luego comparar caracteristicas
importantes de tus datos con estas simulaciones.

En este script hago un qq-plot de normalidad con los datos y las
simulaciones. Y despues comparo 3 caracteristicas de los datos,
el maximo, el minimo  y la diferencia intercuartil.

Espero que te sirva.

#########################################################################
# qq-plot para normalidad

qqnorm(Puntaje)

# qq-plot para normalidad y
# comarar datos simulados con datos reales

set.seed(123)
m.p <- mean(Puntaje)
sd.p <- sd(Puntaje)
n.p <- length(Puntaje)

sim.data <- matrix(rnorm(n.p*500, mean = m.p, sd =sd.p), nrow=500, ncol=n.p)
qqnorm(Puntaje, ylim =c(min(sim.data), max(sim.data)), cex=3, col="red",
pch="*")

# primeros 50 simulaciones
for(i in 1: 50){
    points(qqnorm(sim.data[i,], plot=F),
     cex=0.5, col="blue")
               }
#########################################################################

# de otras caracteristicas de los datos
# comparar minimos, maximos y differencia entre cuartiles
# maximos y minimos
max.sim <- apply(sim.data, 1, max)
min.sim <- apply(sim.data, 1, min)

# diferencia entre el cuantile del 75% y 25%
dif <- function(x){
    a <- quantile(x)
    a[4]-a[2]
    }

dif.sim <- apply(sim.data, 1, dif)

par(mfrow=c(3,1))
  hist(max.sim, breaks = 20)
    abline(v = max(Puntaje), lwd=3, lty=2, col="red")
  hist(min.sim, breaks = 20)
    abline(v = min(Puntaje), lwd=3, lty=2, col="red")
  hist(dif.sim, breaks = 20)
    abline(v = dif(Puntaje), lwd=3, lty=2, col="red")
par(mfrow=c(1,1))

#########################################################################

Pablo













----- Original Message -----
From: "Kjetil Halvorsen" <kjetil1001 en gmail.com>
To: "Olivier Nuñez" <onunez en iberstat.es>
Cc: <r-help-es en r-project.org>; "John Miguel Jacho Vera"
<jjacho en mednet.com.ec>
Sent: Friday, November 06, 2009 3:16 PM
Subject: Re: [R-es] PRUEBAS DE NORMALIDAD


mire abajo.

2009/11/6 Olivier Nuñez <onunez en iberstat.es>:
> 1. función KSd del paquete "sfsmisc"
>
> 2.
>
>> qqnorm(Puntaje)
>> qqline(Puntaje, col = 2)
>
>
> Un saludo. Olivier
> -- ____________________________________
>
> Olivier G. Nuñez
> Email: onunez en iberstat.es
> Tel : +34 663 03 69 09
> Web: http://www.iberstat.es
>
> ____________________________________
>
>
>
>
> El 06/11/2009, a las 14:12, John Miguel Jacho Vera escribió:
>
>> Estimados todos:
>>
>> Me es grato escribir a esta lista de ayuda para R, ya que comparto 100%
la
>> filosofía de Software libre en especial software en Estadística ya que es
la
>> carrera que estoy siguiendo.
>>
>> El motivo de este mensaje es por un par de dudas que no pude resolver:
>>
>>
>> 1. He utilizado las funciones para realizar pruebas de normalidad
>> (kolmogorov-smirnov, cuando n>50) y (Shapiro, cuando n<50); y he obtenido

Este criterio es extraño. ¿Que es el problema en usar Shapiro cuando
n>50 ? En R se puede usar Shapiro para n < 5000. Y si tienes más que 5000
observaciones no necesitas un test, sabes de antomano que el resultado será
"rechazar". Un qq-plot es más útil.

Kjetil

>> los resultados ("D observado" en el caso de kolmogorov) pero no he podido
>> hallar una función que me genere los valores de "D tabulado" para hacer
el
>> contraste y tomar la decisión de rechazar/no rechazar la hipótesis de
>> normalidad. ¿Alguien sabe unafunción que me pueda ayudar?.
>>
>> 2. Además alguien me puede ayudar para graficar estos datos
>> contrastándolos con la curva de normalidad teórica (he visto que en spss
los
>> datos de la muestra están representados en un histograma y a esos se les
>> añade la curva de normalidad teórica). También esto es posible en r?
>> Puntaje <- c (21, 23, 37, 48, 22, 29, 38, 30, 46, 26, 25, 46, 21, 34, 31,
>> 43, 40, 46, 33, 44)
>>
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



--
"... an entire human genome would fit on a music CD."

--- www.thinkgene.com

_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es



Más información sobre la lista de distribución R-help-es