Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×

Minimanual r commander

Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
“ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO”
ESCUELA DE INGENIERÍA ELECTRÓNICA EN CONTROL Y REDES INDUSTRIALES
JAVIER RAMÍ...
En la ventana R Console cada línea en que el usuario puede introducir información se inicia
con el carácter “>” que pone e...
La barra en la parte superior debajo del título, que usaremos para iniciar nuestras actividades,
presenta varios menús:
Me...
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Próximo SlideShare
Pilas Colas
Pilas Colas
Cargando en…3
×

Eche un vistazo a continuación

1 de 26 Anuncio

Más Contenido Relacionado

Presentaciones para usted (20)

Similares a Minimanual r commander (20)

Anuncio

Minimanual r commander

  1. 1. “ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZO” ESCUELA DE INGENIERÍA ELECTRÓNICA EN CONTROL Y REDES INDUSTRIALES JAVIER RAMÍREZ Elabora un mini manual de R-COMMANDER, comandos, ventanas y aplicaciones del software en la prueba de hipótesis. 1. Entorno básico R y lenguaje de programación El software estadístico R aporta un entorno de trabajo orientado a resolver problemas de Estadística. A estos sistemas se les denomina a veces PSE, Problem Solving Environments, como Matlab, Mathematica, etc.). Es de uso libre en el dominio público, y resulta del esfuerzo cooperativo de personas e instituciones académicas relevantes relacionadas con la Estadística y la Computación en todo el mundo. Permite trabajar con una ventana de interacción con usuario, R Console. Trabaja con un lenguaje de programación, y variables con diversos tipos (numéricas, cualitativas-factor, lógicas, carácter), y estructuras (escalar, vector, matriz, data.frame, lista), con constantes y con llamadas a funciones. El lenguaje utiliza elementos clásicos de programación, con funciones, instrucciones, expresiones aritméticas, lógicas, estructuras for, if, etc. Se puede trabajar tanto en modo programa, con un conjunto de instrucciones, como en modo de comandos interactivos. Ofrece un entorno básico interactivo a través de una ventana de diálogo llamada R Console, y otro paquete, R Commander, que ofrece más interactividad en sus menús para las aplicaciones estadísticas. 2. Entorno Gráfico Aplicación R Console Operando en R Console, para elegir una carpeta (directorio) de trabajo, lo que es cómodo si se concentran los archivos en una carpeta de trabajo: > Archivo > Cambiar dir… También puede ser cómodo restablecer un área de trabajo (conjunto de recursos e información) que se guardó en otra sesión anterior: > Archivo > Cargar área de trabajo… Al abrir el programa R, aparece la R-consola (ventana de órdenes) para trabajo interactivo en modo comando 10/26
  2. 2. En la ventana R Console cada línea en que el usuario puede introducir información se inicia con el carácter “>” que pone el sistema R. Las instrucciones en una misma línea se separan por ‘;’ y para ejecutar las instrucciones que están en una línea, se pulsa la tecla Retorno o la Intro. Para visualizar en la ventana el valor de una variable se escribe su nombre como instrucción. El operador de asignación puede ser “=” o “<-“ o “->”. Se pueden recuperar líneas de instrucciones introducidas anteriormente pulsando la tecla con la flecha ascendente del teclado, a fin de reejecutarlas o modificarlas. Lanzamiento de la aplicación R Commander En la barra de menús en la parte superior de R Console se encuentran: Archivo (Salir), Editar (seleccionar, limpiar), Paquetes (en el cual aparece la primera operación que debemos emprender cada vez que usamos el programa R: Cargar el paquete ’Rcmdr’). Vamos al menú > Paquetes > Cargar paquete… buscamos el paquete Rcmdr dando a OK para cargarle. Automáticamente aparece la ventana R-Commander (interfaz gráfica) Es una herramienta con facilidades para gestión de procesos con menús y ventanas. Esta utilidad se dirige a procesar información dada con la estructura de datos llamada data.frame, a la que se debe adaptar el conjunto de datos a tratar. La aplicación R Console siempre está activa además de la R Commander. El R Commander aparece en una ventana con el nombre R Commander con 3 ventanas: De arriba abajo, cada una de las 3 ventanas se destina a: 1) instrucciones, 2) resultados; 3) mensajes de error o aclaratorios. 10/26
  3. 3. La barra en la parte superior debajo del título, que usaremos para iniciar nuestras actividades, presenta varios menús: Menú “Fichero”: Empezaremos con el menú “Fichero” desde donde podemos abrir un fichero para las instrucciones y guardarlas, guardar los resultados, salir, etc. Menú “Editar”: limpiamos las ventanas de instrucciones y resultados, copiamos, pegamos, cortamos, seleccionamos, borramos, etc. Menú “Datos”: En él podemo seleccionar: Nuevo conjunto de datos…: esta orden nos sirve par introducir los datos dando al conjunto de ellos, sin contener espacios ni caracteres especiales, en una ventana tipo hoja de datos o de cálculo, en la que los tecleamos. Menú “Estadísticos”: Para hacer diversos cálculos estadísticos con los datos. Entre ellos, definir modelos estadísticos aplicados a los datos (regresión,…). Estos modelos se pueden tratar con el menú Modelos, también en la cabecera de menús del R Commander. Menú “Distribuciones”: Para calcular valores de funciones de densidad, distribución, generar muestras simuladas de las variables aleatorias más conocidas. Menú “Herramientas”: Para cargar paquetes de R (también se puede hacer desde la R Console de manera más general). Tambiés se pueden seleccionar opciones (formatos, etc.) para la ventana del R Commander. Menú “Ayuda”: Ayudas diversas relativas al entorno R Commander. Vamos a ver más detalles del menú “Datos” de RCommander Importar datos Para leer datos contenidos en un fichero, que puede haberse creado con diversas aplicaciones: editor de texto puro, hoja electrónica Excel, u otros programas (SPSS, Minitab, Stata. Access) que provienen de varios formatos: desde Excel, Acces,…. Conjunto de datos en paquetes: Podemos acceder a una colección de datos de ejemplos propios de R, para utilizar. Hay dos opciones: 10/26
  4. 4. Lista de conjuntos de datos: Muestra una relación de conjuntos de datos ligados a paquetes, como los llamados car y datasets. Leer conjunto de datos: Para seleccionar unos datos determinados como conjunto de datos activo para el RCommander Selecciones en el menú del Conjunto de datos activo de R Commander Veamos acciones desde el menú >Datos>Conjunto de datos activo> Se pueden hacer diversas gestiones sobre el conjunto de datos activo. Seleccionar conjunto de datos activo… Elegir el conjunto de datos activo entre los que hay disponibles en la sesión. Ayuda sobre el conjunto….Contiene una descripción de los datos activos. Variables del conjunto de…. En la ventana de resultados muestra los nombres de las variables (columnas) implicadas.. 10/26
  5. 5. Filtrar el conjunto de datos activo…: Podemos elegir de entre las variables aquellas que necesitamos para trabajar, un subgrupo de ellas o todas, pudiéndose aplicar condiciones de selección o filtrado. Se genera un nuevo conjunto (data.frame) de datos activos. Ejemplo1: Queremos trabajar con los pulsos1 de los hombres, en el archivo de Pulsea: I)Si sólo nos interesan los pulsos de los hombres, no otros datos de la tabla, dejamos sin seleccionar el cuadrado “Incluir todas las variables”. Entre las variables elegimos Pulse1, y en la caja para la Expresión de selección, escribimos la expresión lógica. La instrucción R que se ha lanzado al hacer la selección en el cuadro de diálogo es: > Pulse1Male <- subset(Pulsea1, subset=Gender=="Male", select=c(Pulse1)) II)Si queremos generar un conjunto de datos que incluya todas las variables pero referidas sólo a los hombres, marcaremos la opción “Incluir todas las variables” y no marcaremos ninguna variable. La Expresión de selección será la misma e impondremos un “Nombre del nuevo conjunto de datos” que será el del nuevo conjunto activo. 3. Comandos El entorno R ofrece ayuda al usuario mediante el menú Ayuda en la barra de la ventana R Console o en otras ventanas específicas. También se puede buscar ayuda mediante comandos: > ?help > help(package="splines") > help("for") > ?summary > ?mean 10/26
  6. 6. Para limpiar la ventana de R Console, se puede seleccionar ese comando en el menú Editar de R Console, o teniendo el cursor en dicha ventana, pulsar el botón derecho del ratón y elegir “Limpiar pantalla”. Se pueden construir vectores. Construyamos un vector de nombre v y escribimos su valor en la ventana de R Console. La expresión c() significa el conjunto de valores dados entre paréntesis. > v=c(2.1,1.4,6,3.5,8);v # desde el carácter # al fin de línea es un comentario [1] 2.1 1.4 6.0 3.5 8.0 En ocasiones dentro de una secuencia de datos ocurre que hay huecos, es decir, que faltan algunos y se desea reflejar dicha ausencia. El entorno R lo hace con el texto <NA> (Non Available, No Accesible). Y tiene mecanismos para gestionar su presencia. Citemos dos y su propio uso explica el funcionamiento: > v1=c(2.1,1.4,NA,6,3.5,8);v1 [1] 2.1 1.4 NA 6.0 3.5 8.0 > is.na(v1) # función is.na [1] FALSE FALSE TRUE FALSE FALSE FALSE > sum(v1,na.rm=TRUE) # atributo na.rm [1] 21 > sum(v1) [1] NA Operadores: Aritméticos + Suma - Resta * Multiplicación / División ^ Potencia %/% División entera Comparativos == igualdad != Diferente de < Menor que > Mayor que <= Menor o igual >= Mayor o igual Funciones: Raíz cuadrada de x sqrt(x) Exponencial de x exp(x) Logaritmo neperiano log(x) Nº de elementos de un vector x length(x) Suma los elementos del vector x sum(x) Seno de x sin(x) Coseno de x cos(x) Tangente de x tan(x) Para ver la longitud del vector x > length(v1) [1] 6 10/26 Lógicos & Y lógico ! No lógico | O lógico Media Desv. Típica Varianza Mediana Quantiles Máximo y Mínimo Ordenación Resumen de todos mean(x) sd(x) var(x) median(x) quantile(x,p) range(x) sort(x) summary
  7. 7. Para construir una matriz de 8 números, en 2 filas y 4 columnas: > M=array(c(2,7,5,9,3,1,6,4),dim=c(2,4)) ; M # la matriz se va llenando por columnas [,1] [,2] [,3] [,4] [1,] 2 5 3 6 [2,] 7 9 1 4 Para acceder al elemento sub 2-3 de M, que vale 1: > M[2,3] [1] 1 > M[2,3:4] [1] 1 4 > M[1,c(1,3,4)] [1] 2 3 6 La fila 1: > M[1,] [1] 2 5 3 6 La columna 4: > M[,4] [1] 6 4 > M[2,c(2,4)] [1] 9 4 > M[2,c(2,4)]=c(17,18);M [,1] [,2] [,3] [,4] [1,] 2 5 3 6 [2,] 7 17 1 18 Número de filas: > nrow(M) [1] 2 Número de columnas: > ncol(M) [1] 4 Para ver las dimensiones de una matriz: > dim(M) [1] 2 4 Para definir una matriz de ‘ceros’ y otra de con un mismo valor, 1, por ejemplo: > Z=array(0,c(4,3));Z;U=array(1,c(4,3));U [,1] [,2] [,3] [1,] 0 0 0 [2,] 0 0 0 [3,] 0 0 0 [4,] 0 0 0 [,1] [,2] [,3] [1,] 1 1 1 [2,] 1 1 1 10/26
  8. 8. [3,] 1 1 1 [4,] 1 1 1 Para ver los nombres de los objetos presentes en el espacio de trabajo R ls() o bien objects() Borrar objetos (variables) del espacio de trabajo (rm : Iniciales de remove): rm(x, Z) Operaciones algebraicas con matrices: > M+3 [,1] [,2] [,3] [,4] [1,] 5 8 6 9 [2,] 10 20 4 21 > M*2 [,1] [,2] [,3] [,4] [1,] 4 10 6 12 [2,] 14 34 2 36 Trasposición de una matriz > Mt=t(M);Mt [,1] [,2] [1,] 2 7 [2,] 5 17 [3,] 3 1 [4,] 6 18 > M1=array(2.5,c(2,4));Suma=M+M1;Suma [,1] [,2] [,3] [,4] [1,] 4.5 7.5 5.5 8.5 [2,] 9.5 19.5 3.5 20.5 Producto de matrices (operador %*% para producto): > Producto=M1%*%array(1,c(4,2));Producto [,1] [,2] [1,] 10 10 [2,] 10 10 > y=c(2,3,1);A=array(c(3,2,5,7,8,2.3,6,9.1,12),dim=c(3,3));h=A%*%y;A;h;y [,1] [,2] [,3] [1,] 3 7.0 6.0 [2,] 2 8.0 9.1 [3,] 5 2.3 12.0 [,1] [1,] 33.0 [2,] 37.1 [3,] 28.9 10/26
  9. 9. [1] 2 3 1 #Solución de un sistema de ecuaciones lineales > sol=solve(A,h);sol [,1] [1,] 2 [2,] 3 [3,] 1 #Inversión matricial > solve(A);solve(A)%*%A [,1] [,2] [,3] [1,] 0.4596779 -0.42985733 0.09613618 [2,] 0.1316515 0.03673994 -0.09368685 [3,] -0.2167657 0.17206540 0.06123324 [,1] [,2] [,3] [1,] 1.000000e+00 1.591744e-16 1.665335e-16 [2,] -1.249001e-16 1.000000e+00 -1.665335e-16 [3,] 3.469447e-17 5.082198e-18 1.000000e+00 4. Graficas Gráfica secuencial…: representa una secuencia de observaciones de una variable cuantitativa mediante barras o puntos. Para los datos de Chile, se muestra la gráfica secuencial del número de habitantes de la poblaciónde residencia de los individuos encuestados. 10/26
  10. 10. Las instrucciones R: > plot(Chile$population, type="h") > abline(h=0, col="gray") Histograma… en la gráfica cuantitativa el número rectángulos se puede fijar o dejar al programa de forma automática. El eje Y cuenta las frecuencias, porcentajes, densidades, observadas en la muestra. Para los datos de Chile, el histograma de Rentas: La instrucción R: > Hist(Chile$income, scale="density", breaks="Sturges", col="darkgray") Gráfica de tallos y hojas... Permite la descripción de los datos agrupados en filas y columnas donde recuenta la frecuencia hasta la fila donde se encuentra la mediana, señalada por medio de paréntesis (). Para los Pulse1 de los datos de Pulsos: Instrucción R y resultado: > stem.leaf(Pulsea1$Pulse1) 1 | 2: represents 12 leaf unit: 1 n: 92 10/26
  11. 11. 1 4. | 8 3 5* | 44 6 5. | 888 24 6* | 000012222222224444 40 6. | 6666688888888888 (17) 7* | 00000022222244444 35 7. | 6666688888 25 8* | 0002224444 15 8. | 67888 10 9* | 0000224 3 9. | 66 1 10* | 0 Diagrama de caja… El diagrama de caja (box plot) consiste en una caja cuyos bordes inferior y superior son los cuartiles 1º y 3º y la línea central representa la mediana. Los bigotes desde la caja indican el rango de los datos. Además de elegir una variable cuantitativa, numérica, permite considerar un factor para comparar la primera respecto de los niveles del factor. Para los datos de Pulsos , la variable Pulse1 con el factor Gender (Género , Mujer/Hombre, Female/ Male) La instrucción R: > boxplot(Pulse1~Gender, ylab="Pulse1", xlab="Gender",data=Pulsea1) 10/26
  12. 12. Diagrama de dispersión…: Muestra conjuntamente datos de dos variables (en X y en Y) para ver su correlación, y permite considerar grupos (niveles de un factor) Por ejemplo queremos buscar la correlación entre el peso y la altura (Weight y Height) entre los hombres y mujeres del archivo Pulso: La instrucción R: > scatterplot(Weight~Height | Gender,reg.line=lm, smooth=TRUE, labels=FALSE, boxplots='xy', span=0.5, by.groups=TRUE, data=Pulsea1) 10/26
  13. 13. Gráfica de barras... Gráfico usado para recoger las frecuencias de los niveles en las variables cualitativas (factores) En el ejemplo de Pulsos, la gráfica de barras para las frecuencias de niveles Elevado, Moderado, Ligero en los individuos se obtiene con la instrucción R: > barplot(table(Pulsea1$Activity), xlab="Activity", ylab="Frequency") Gráfica de sectores…: Representación de variables cualitativas por medio de una gráfica circular: La distribución de frecuencias vista en la gráfica de barras se muestra ahora en una gráfica de sectores. 10/26
  14. 14. La instrucción R correspondiente: pie(table(Pulsea1$Activity), labels=levels(Pulsea1$Activity), main="Activity", col= rainbow(length(levels(Pulsea1$Activity))) Gráfica XY…: Permite comparar datos de dos variables cuantitativas, admitiendo la selección de niveles de factores cualitativos. Para los datos de Pulsos, comparando Weight y Height, distinguiendo según Gender, Male/Female > xyplot(Weight ~ Height | Gender, auto.key=TRUE,scales=list(x=list(relation='same'), y=list(relation='same')), data=Pulsea1) 65 Female 220 200 Weight 180 160 140 120 100 65 70 Male 70 75 Height 10/26 75
  15. 15. Gráfica de las medias…: Permite comparar el efecto de los niveles de uno o dos factores en el comportamiento de una variable cuantitativa. Junto a las medias se añade a cada lado una desviación típica muestral, que se ha elegido en las opciones Ejemplo de Pulsos, comparar los pulsos según se sea o no fumador y según la actividad. Instrucción en R: > plotMeans(Pulsea1$Pulse1, Pulsea1$Activity, Pulsea1$Smokes, error.bars="sd") 95 Plot of Means Pulsea1$Smokes 85 80 75 70 65 60 ALot Moderate Slight Pulsea1$Activity Matriz de diagrama de dispersión…: En una matriz de gráficas representa por parejas los datos asociados a un conjunto de variables cuantitativas. Extiende los Diagramas de dispersión a más de 2 variables. Permite considerar un factor cualitativo asociado a las variables cuantitativas. En el ejemplo de Pulsos, consideramos las variables: 60 70 80 90 100 74 50 100 62 64 66 68 70 72 Height Height, Pulse1 y Weight, y el Factor Gender con sus niveles Female/Male, Hombre/Mujer. 80 90 Pulse1 W eight Female Male 62 64 10/26 66 68 70 72 74 100 120 140 160 180 200 100 120 140 160 180 200 > scatterplot.matrix (~Height+Pulse1+Weight | Gender, reg.line=lm, smooth=TRUE, span=0.5, diagonal= 'histogram', by.groups=TRUE, data=Pulsea1) 60 70 La instrucción R asociada: 50 mean of Pulsea1$Pulse1 90 NonSmoker Smoke
  16. 16. Gráfico 3D > Diagrama de dispersión 3D…: Representa en 3D el comportamiento de una variable explicada (eje vertical) a partir de los datos de otras 2 (ejes horizontales), tomadas como explicativas de la primera. Permite considerar la presencia de un factor. Y representar superficies de regresión, entre ellas el plano de regresión. Para los datos de Pulsos, la dependencia de Pulse1 respecto Height y Weight, con el factor Género (Female/Male, Hombre/Mujer). Las mujeres tienen en media mayor ritmo de pulsaciones. La instrucción R: > scatter3d(Pulsea1$Height, Pulsea1$Pulse1, Pulsea1$Weight, fit="quadratic", residuals=TRUE, groups=Pulsea1$Gender, parallel=TRUE, bg="white", axis.scales=TRUE, grid=TRUE, ellipsoid=FALSE, xlab="Height", ylab="Pulse1", zlab="Weight") 10/26
  17. 17. Gráfica de comparación de cuantiles…: Esta gráfica se aplica a una muestra de datos cuantitativos, y compara los cuantiles de la muestra con los correspondientes de una distribución poblacional teórica. Es una herramienta interesante para valorar si el comportamiento de los datos se ajusta a un modelo determinado de variable aleatoria. Vamos a ver si la altura Height de los individuos de los datos de Pulsos se puede considerar que procede de una v.a. normal. La inclusión de los puntos de la muestra en la banda de confianza del gráfico, indica que los datos proceden de la distribución considerada. La instrucción R: > qq.plot(Pulsea1$Height, dist= "norm", labels=FALSE) 68 66 64 62 Pulsea1$Height 70 72 74 Se puede comparar los datos con las diversas distribuciones que admite R. -2 -1 0 1 2 norm quantiles 10/26
  18. 18. Intervalos de Confianza y Contraste de Hipótesis INTERVALOS DE CONFIANZA Para poder realizar el cálculo de los intervalos de confianza, así como de los contrastes de hipótesis referentes a las distribuciones de probabilidad para representar el comportamiento estadístico de poblaciones, se supone que la muestra de datos recogida es representativa del comportamiento de la población, y una de las formas más usuales de garantizar esa representatividad es mediante muestras aleatorias simples. Intervalo de confianza de la media poblacional Vamos a comenzar por hallar el intervalo de confianza para la media poblacional. Existen dos tipos de estimación, la puntual se halla calculando la media de la muestra, y es de cálculo sencillo, pero es difícil que esta estimación coincida con el verdadero valor de la media poblacional, aparte de no informar sobre el error que cometemos. Otra forma es la estimación por intervalos que consiste en calcular a partir de la muestra, un intervalo con una probabilidad dada (nivel de confianza), de contener el valor de la media poblacional, informándonos del error. Ejemplo: Queremos estudiar la altura media de todos los individuos con un nivel de confianza de =0.05. Utilizamos como conjunto de datos activo el de Pulso. Lo hemos asociado al data.frame Pulsea1. Caso de desconocida: Para calcular el intervalo de confianza empleamos la secuencia:se hace la secuencia: >Estadísticos >Medias >Test t para una muestra… Para el intervalo de confianza bilateral hay que marcar. En Hipótesis alternativa >Media poblacional = 0, Aunque hay un error y debería mostrar el texto Media poblacional <> 0, como hipótesis alternativa. Hay que elegir la Variable Height para altura, y dar un nivel de confianza, aquí del 95% 10/26
  19. 19. 5. Aplicación de los Intervalos de Confianza para contrastar hipótesis Ejemplo: Con el conjunto de datos de Pulsos, queremos estudiar la altura media de los hombres solamente, por medio de un intervalo de confianza al nivel de significación =0.05, o de confianza del 95%, y utilizarlo para contrastar la hipótesis de si la altura media de los hombres es de 171 cms. Vamos a generar un conjunto de datos con las alturas de los hombres. En principio debemos filtrar la altura por medio del Género para separar los hombres de las mujeres con la secuencia:: >Datos >Conjunto de datos activos>Filtrar datos. Como marcamos Incluir todas las variables, va a generar un Data.frame con todos los datos referidos sólo a Hombres: Gender==”Male”. El nuevo conjunto de datos activo, que tiene siempre el tipo data.frame, se llamará Alturahombres. El intervalo de confianza para la media de altiras, Emplando el R Commander, lo producen los menús: >Estadísticos > Medias >Test para una muestra…. Resultando en la Ventana de resultados de R Commander One Sample t-test data: Alturahombres$Height t = 206.8254, df = 56, p-value < 2.2e-16 alternative hypothesis: true mean is not equal to 0 95 percent confidence interval: 70.06908 71.43969 sample estimates: mean of x 70.75439 10/26
  20. 20. Basándonos en el intervalo de confianza para la media de alturas de hombres: (70.06908 71.43969) consideremos ahora el contraste de hipótesis sobre que la altura media es 171 cms. Pasando esta altura media a pulgadas, que es la información extraída de la tabla: 171/2.54= 67.3228 pulgadas. Se concluye afirmando con el 95% de confianza que la altura media no es 171 cms, pues 67.3228 pulgadas no está contenido en el intervalo de confianza calculado. Ejemplo: Calcular el intervalo de confianza de la media del pulse1 de los hombres que fuman en los datos de Pulsos. Vamos a filtrar los datos de de Pulsos generando un nuevo data.frame que recoja la variable Pulse1 con la restricción de que se refiera a Hombres (“Male”) que Fuman.(“Smoke”) . La secuencia de filtrado_ > Datos >Conjunto de datos activo > Filtrar conjunto de datos activo… Llamamos al conjunto de dato activo resultante: Pulso1HombresFuman, que tiene 1 sola Variable (columna) con Pulse1, con tantos datos como hombres fumadores. La instrucción R asociada al filtrado: > Pulso1HombresFuman <subset(Pulsea1, subset=(Gender=="Male")&(Smokes=="Smoke"), select=c(Pulse1)) Con el menu. > Estadísticos > Medias > Test t para una muestra… se genera la instrución R y el resultado con el intervalo de confianza bilateral de la media de pulsos con el 95% de confianza:: > t.test(Pulso1HombresFuman$Pulse1, alternative='two.sided', mu=0.0, conf.level=.95) Ventana de resultados de R Commander: data: Pulso1HombresFuman$Pulse1 t = 25.777, df = 19, p-value = 3.026e-16 alternative hypothesis: true mean is not equal to 0 95 percent confidence interval: 65.41875 76.98125 sample estimates: mean of x 71.2 10/26
  21. 21. Intervalo de confianza para una proporción Ejemplo: En los datos de Pulsos, calcular el intervalo de confianza para la proporción de los individuos que no fuman, con un nivel de confianza del 95%, (nivel de significación =0.05) El programa realiza el intervalo de la proporción de los individuos con un valor del factor atendiendo al orden alfabético de la denominación de los niveles del factor. Aquí realizará el análisis sobre los NonSmoker y no sobre los Smoke. Si quisiéramos calcular el intervalo de los fumadores, tendríamos que cambiar el nombre a los campos: Smoke=Fumador, NonSmoker= Nofumador. La secuencia de menús es: > Estadísticos > Proporciones >Test de proporciones para una muestra… Para hacer el intervalo bilateral, se marca Proporción de la población=p0, (R debería escribir <> (distinto) en vez de = (igual). El valor para la Hipótesis nula: p=0.5 por defecto, no importa para intervalo de confianza, pero sí para test. Se elige Aproximación normal si se considera admisible. Se generan las siguientes instrucciones y respuestas en que incluimos nuestros comentarios: #Genera una tabla de frecuencias > .Table <- xtabs(~ Smokes , data= Pulsea1 ) > .Table Smokes NonSmoker Smoke 64 28 # La function rbind agrupa la fila numérica 64 28 como iun vector fila para aplicarle la # función prop.test para test de proporciones. > prop.test(rbind(.Table), alternative='two.sided', p=.5, conf.level=.95, correct=FALSE) 1-sample proportions test without continuity correction 10/26
  22. 22. data: rbind(.Table), null probability 0.5 X-squared = 14.087, df = 1, p-value = 0.0001746 alternative hypothesis: true p is not equal to 0.5 95 percent confidence interval: 0.5953573 0.7802631 sample estimates: p 0.6956522 estimador puntual - Con corrección de continuidad, intervalo con el 95% de confianza: 0.5897050 0.7850303 > prop.test(rbind(.Table), alternative='two.sided', p=.5, conf.level=.95, correct=TRUE) - Con la distribución binomial exacta, con el 95% de confianza: 0.5909669 0.7873276 > binom.test(rbind(.Table), alternative='two.sided', p=.5, conf.level=.95) Intervalo de confianza para la varianza R no da con un menú específico el intervalo de confianza para la varianza, aunque permite comparar varianzas de dos poblaciones a partir de sendas muestras de cada una. Admitiendo la hipótesis de normalidad en la población de partida, se puede calcular el intervalo de confianza para la varianza: [(n-1)*s2/χ2(n-1, 1-α/2) ; (n-1)*s2/χ2(n-1, α/2) ], calculando cada componente de las fórmulas. 370 360 ResiProp$Resis 350 340 330 > n=length(ResiProp$Resis);s=sd(ResiProp$Resis);s [1] 18.11387 > chi_iz=qchisq(c(0.975), df=n-1, lower.tail=TRUE) > chi_der=qchisq(c(0.025), df=n-1, lower.tail=TRUE) > iz=(n-1)*s^2/chi_iz;der=(n-1)*s^2/chi_der;iz;der [1] 155.2355 [1] 1093.549 > izDtipica=sqrt(iz); > derDtipica=sqrt(der);izDtipica;derDtipica [1] 12.45935 [1] 33.06886 > print(c(iz,der));print(c(izDtipica,derDtipica)) [1] 155.2355 1093.5493 [1] 12.45935 33.06886 380 Ejemplo.- Para el caso de las 10 probetas de hormigón sometidas a un ensayo de rotura, con los datos de resistencia en el vector columna Resis del data.frame ResiProp, se obtienen el intervalo de confianza de nivel 95% para la varianza y el de la desviación típica (los extremos son raíz cuadrada de los de la varianza), como sigue: -1.5 -1.0 -0.5 0.0 0.5 1.0 norm quantiles Para valorar la normalidad de los datos, podemos utilizar la gráfica de comparación de cuantiles con el modelo normal, al 95% de confianza, que nos señala que es admisible. 10/26 1.5
  23. 23. También podemos valorar la normalidad de los datos mediante el test de Shapiro-Wilk: >Estadísticos > Resúmenes > Test de normalidad de Shapiro-Wilk… > shapiro.test(ResiProp$Resis) Shapiro-Wilk normality test data: ResiProp$Resis W = 0.8833, p-value = 0.1425 Como el valor de p-value es mayor que el nivel de significación 0.05 por ejemplo, se puede admitir la normalidad de los datos con un nivel de confianza del 95%. Intervalos de confianza y contraste para la diferencia de dos medias. Se puede realizar la comparación del comportamiento de dos variables aleatorias (de una característica cuantitativa presente en dos poblaciones diferentes), basándose en comparar sus medias a partir de los datos. Puede ocurrir que se parta de dos muestras aleatorias simples de cada una, obtenidas independientemente una de otra. Es el caso de DATOS INDEPENDIENTES, como las alturas (Height) de mujeres y hombres en los datos de Pulsos. Otro caso es que los DATOS estén EMPAREJADOS o APAREADOS, y aunque la obtención de cada pareja es independiente de la obtención de las otras, los dos datos de cada pareja sí están relacionados y hay una dependencia entre ellos. Ejemplo1: Queremos saber ahora si hay diferencia significativa entre la altura media de hombres y mujeres con un nivel de significación =0.05. La secuencia a seguir sería: >Estadísticos >Medias >Test t para muestras independientes… Dejamos por defecto la opción de contraste bilateral y de no suponer varianzas iguales: Ventana de resultados: > t.test(Height~Gender, alternative='two.sided', conf.level=.95, var.equal=FALSE, data=Pulsos) 10/26
  24. 24. Welch Two Sample t-test data: Height by Gender t = -9.7007, df = 72.514, p-value = 9.778e-15 alternative hypothesis: true difference in means is not equal to 0 95 percent confidence interval: -6.454559 -4.254213 sample estimates: mean in group Female mean in group Male 65.40000 70.75439 Conclusión: El p-value 9.778e-15 es más pequeño que =0.05 que habíamos fijado, luego no se acepta la igualdad de alturas, la misma conclusión que hubiéramos tenido si nos fijamos en el intervalo de confianza que nos dice que la 2ª media es mayor que la primera. Téngase en cuenta que R que ha hecho la diferencia de medias entre Female (Mujeres) y Male (Hombres), atendiendo al orden alfabético del factor Gender de los datos. Intervalo de confianza y contraste para la diferencia de dos proporciones. Se puede realizar la comparación del comportamiento de dos variables aleatorias (de una característica CUALITATIVA presente en dos poblaciones diferentes), basándose en comparar sus proporciones a partir de los datos. Queremos determinar en los datos de Pulsos si hay diferencia significativa entre la proporción de mujeres y hombres que no fuman con un nivel del =0.05. La secuencia para el caso sería: Observar en la ventana de diálogo que aparece Diferencia: Female – Male, es decir, se va a considerar diferencia de proporciones entre mujeres y hombres en relación con la variable Smokes (Fumar). La secuencia de instrucciones R y respuestas es: > .Table <- xtabs(~Gender+Smokes, data=Pulsea1) > rowPercents(.Table) Smokes 10/26
  25. 25. Gender NonSmoker Smoke Total Count Female 77.1 22.9 100 35 Male 64.9 35.1 100 57 > prop.test(.Table, alternative='two.sided', conf.level=.95, correct=FALSE) 2-sample test for equality of proportions without continuity correction data: .Table X-squared = 1.5321, df = 1, p-value = 0.2158 alternative hypothesis: two.sided 95 percent confidence interval: -0.06398087 0.30859240 sample estimates: prop 1 prop 2 0.7714286 0.6491228 > remove(.Table) La diferencia (prop 1 - prop 2) será el estimador puntual de la diferencia de proporciones: ˆ ˆ p1 p 2 = 0.7714286- 0.6491228=0.1223058 Observar que R ha calculado la diferencia entre proporciones de Mujeres y Hombres que NO FUMAN (NonSmoker), dando prioridad al nivel NonSmoker que está alfabéticamente antes que Smoke. Si se quisiera estudiar la diferencia de proporciones de fumadores , habría que asignar otros valores a los niveles NonSmoker y Smoke, de manera que esté alfabéticamente antes el de Fumador, por ejemplo: Fuma y NoFuma. Esto se puede hacer con el RCommander con el menú Recodificar variables... Más sencillo desde los resultados anteriores: cambiar el signo de los extremos del intervalo y complementar a 1 las proporciones calculadas. Intervalo de confianza para el cociente de dos varianzas (datos independientes) En este proceso, que es muy sensible a la hipótesis de normalidad de los datos, se quiere valorar si las varianzas de dos poblaciones son iguales o no a partir de la evidencia de dos muestras. Llamando teta= 12/ 22 , se puede calcular un intervalo de este cociente de varianzas empleando la distribución F de Snedecor, haciéndose notar que el proceso es poco robusto, es decir, muy sensible a la hipótesis de normalidad d e los datos. (Luceño&González, expresión 7.20, pg 328). El intervalo es: (teta/F(n1-1,n2-1,1- /2), teta*F(n2-1,n1-1,1- /2) siendo teta el cociente de cuasivarianzas muestrales. Se calcula con las intrucciones R: > cv1=sd(Pulsea1$Height[Pulsea1$Gender=="Female"])^2; > cv2=sd(Pulsea1$Height[Pulsea1$Gender=="Male"])^2 > alfa=0.05 > n1=sum(Pulsea1$Gender=="Female");n2=sum(Pulsea1$Gender=="Male") > print(c(n1,n2));print(c(cv1,cv2)) 10/26
  26. 26. [1] 35 57 [1] 6.566912 6.670739 > teta=cv1/cv2; > Fiz=qf(c(1-alfa/2), df1=n1-1, df2=n2-1, lower.tail=TRUE); > Fder=qf(c(0.975), df1=n2-1, df2=n1-1, lower.tail=TRUE) > iz=teta/Fiz;der=teta*Fder;print(c(iz,der)) [1] 0.5467021 1.8561761 # este es el intervalo de confianza Por otra parte, con el menu de RCommander: > Estadísticos > Varianzas > Test F para 2 varianzas… > tapply(Pulsea1$Height, Pulsea1$Gender, var, na.rm=TRUE) #calcula varianzas de datos Female Male 6.566912 6.670739 > var.test(Height ~ Gender, alternative='two.sided', conf.level=.95, data=Pulsea1) F test to compare two variances data: Height by Gender F = 0.9844, num df = 34, denom df = 56, p-value = 0.9796 alternative hypothesis: true ratio of variances is not equal to 1 95 percent confidence interval: 0.5467021 1.8561761 sample estimates: ratio of variances 0.9844354 La conclusión es que se acepta la igualdad de varianzas, pues el valor ‘1’ está en el intervalo. 10/26

×