Skip to content

[R-es] PRUEBAS DE NORMALIDAD

4 messages · John Miguel Jacho Vera, Olivier Nuñez, Kjetil Halvorsen +1 more

#
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 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 una funció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)



Gracias de antemano.

Saludos Cordiales,

  John Jacho
  DEPARTAMENTO DE OPERACIONES
  Av. 6 de Diciembre N33-42 e Ignacio Bossano,
  Torre Constitución, Piso 9 
  PBX: (593-2) 3982080 Ext: 2605
  jjacho en mednet.com.ec
#
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ó:
#
mire abajo.

2009/11/6 Olivier Nuñez <onunez en iberstat.es>:
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

  
    
#
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>:
la
la
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
el
los
--
"... 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