minimanual r commander

26
“ESCUELA SUPERIOR POLITÉCNICA DE CHIMBORAZOESCUELA 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 dirTambié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 trabajoAl abrir el programa R, aparece la R-consola (ventana de órdenes) para trabajo interactivo en modo comando 10/26

Upload: javito-ramirez

Post on 09-Jul-2015

549 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Minimanual r commander

“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

Page 2: Minimanual r commander

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.

10/26

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.

Page 3: Minimanual r commander

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,….

10/26

Conjunto de datos en paquetes: Podemos acceder a una colección de datos de ejemplos

propios de R, para utilizar. Hay dos opciones:

Page 4: Minimanual r commander

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

10/26

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..

Page 5: Minimanual r commander

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.

10/26

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

Page 6: Minimanual r commander

10/26

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:

Funciones:

Para ver la longitud del vector x

> length(v1)

[1] 6

Aritméticos Comparativos Lógicos

+ Suma == igualdad & Y lógico

- Resta != Diferente de ! No lógico

* Multiplicación < Menor que | O lógico

/ División > Mayor que

^ Potencia <= Menor o igual

%/% División entera >= Mayor o igual

Raíz cuadrada de x sqrt(x) Media mean(x)

Exponencial de x exp(x) Desv. Típica sd(x)

Logaritmo neperiano log(x) Varianza var(x)

Nº de elementos de un vector x length(x) Mediana median(x)

Suma los elementos del vector x sum(x) Quantiles quantile(x,p)

Seno de x sin(x) Máximo y Mínimo range(x)

Coseno de x cos(x) Ordenación sort(x)

Tangente de x tan(x) Resumen de todos summary

Page 7: Minimanual r commander

10/26

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] [,2] [,3]

[1,] 1 1 1

[2,] 1 1 1

[1,] 0 0 0

[2,] 0 0 0

[3,] 0 0 0

[4,] 0 0 0

Page 8: Minimanual r commander

10/26

[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,]

[2,]

[3,]

3 7.0 6.0

2 8.0 9.1

5 2.3 12.0

[,1]

[1,] 33.0

[2,] 37.1

[3,] 28.9

Page 9: Minimanual r commander

[1] 2 3 1

#Solución de un sistema de ecuaciones lineales

> sol=solve(A,h);sol

[,1]

10/26

#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.

[1,] 2

[2,] 3

[3,] 1

Page 10: Minimanual r commander

Las instrucciones R:

> plot(Chile$population, type="h")

> abline(h=0, col="gray")

10/26

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

Page 11: Minimanual r commander

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

10/26

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)

Page 12: Minimanual r commander

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:

10/26

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)

Page 13: Minimanual r commander

Gráfica de barras... Gráfico usado para recoger las frecuencias de los niveles en las variables

cualitativas (factores)

10/26

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.

Page 14: Minimanual r commander

75

Height

Weig

ht

100

120

140

160

180

200

220

65 70

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 70 75

Female Male

10/26

Page 15: Minimanual r commander

Plot of Means

Pulsea1$Activity

me

an

ofP

uls

ea

1$

Pu

lse

1

60

65

70

75

80

85

90

95

ALot Moderate Slight

Pulsea1$Smokes

NonSmoker

Smoke

Height

10/26

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:50 60 70 80 90 100

62

64

66

68

70

72

74

50

60

70

80

90

100

Pulse1

La instrucción R asociada:

62 64 66 68 70 72 74 100 120 140 160 180 200

100

120

140

160

180

200

Weight

Female

Male

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

Height, Pulse1 y Weight, y el

Factor Gender con sus niveles

Female/Male, Hombre/Mujer.

> scatterplot.matrix

(~Height+Pulse1+Weight | Gender,

reg.line=lm, smooth=TRUE, span=0.5,

diagonal= 'histogram', by.groups=TRUE,

data=Pulsea1)

Page 16: Minimanual r commander

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

Page 17: Minimanual r commander

-2 -1 0 1 2

62

64

66

68

70

72

74

norm quantiles

Pu

lse

a1

$H

eig

ht

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)

10/26

Se puede comparar los datos con las diversas distribuciones que admite R.

Page 18: Minimanual r commander

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…

10/26

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%

Page 19: Minimanual r commander

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:

10/26

>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

Page 20: Minimanual r commander

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.

10/26

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

Page 21: Minimanual r commander

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…

10/26

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

Page 22: Minimanual r commander

-1.5 -1.0 -0.5 0.0 0.5 1.0 1.5

330

340

350

360

370

380

norm quantiles

ResiP

rop$R

esis

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)

10/26

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.

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:

> 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

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.

Page 23: Minimanual r commander

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%.

10/26

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)

Page 24: Minimanual r commander

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:

10/26

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

Page 25: Minimanual r commander

10/26

Gender NonSmoker Smoke Total Count

> 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:

1 2p̂ p̂ = 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))

Female 77.1 22.9 100 35

Male 64.9 35.1 100 57

Page 26: Minimanual r commander

[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