SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
“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
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
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
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
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
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
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
[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
[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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
[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

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Exposicion de anatomia
Exposicion de anatomiaExposicion de anatomia
Exposicion de anatomia
 
Huesos y articulaciones del tronco
Huesos y articulaciones del troncoHuesos y articulaciones del tronco
Huesos y articulaciones del tronco
 
Region glutea, muslo anterior y posterior
Region glutea, muslo anterior y posteriorRegion glutea, muslo anterior y posterior
Region glutea, muslo anterior y posterior
 
Anatomia del miembro inferior
Anatomia del miembro inferiorAnatomia del miembro inferior
Anatomia del miembro inferior
 
Anatomia arcos plantares y palmares
Anatomia arcos plantares y palmaresAnatomia arcos plantares y palmares
Anatomia arcos plantares y palmares
 
Hueso hioides
Hueso hioides Hueso hioides
Hueso hioides
 
Musculos de la cabeza
Musculos de la cabezaMusculos de la cabeza
Musculos de la cabeza
 
Plexo lumbo sacro
Plexo lumbo sacroPlexo lumbo sacro
Plexo lumbo sacro
 
Articulación atlanto axoidea
Articulación atlanto axoideaArticulación atlanto axoidea
Articulación atlanto axoidea
 
Arcos arteriales de la mano y de los pies
Arcos arteriales de la mano y de los piesArcos arteriales de la mano y de los pies
Arcos arteriales de la mano y de los pies
 
Palancas en el aparato locomotor
Palancas en el aparato locomotorPalancas en el aparato locomotor
Palancas en el aparato locomotor
 
TEMA # 9 TIANGULOS DEL CUELLO.pdf
TEMA # 9 TIANGULOS DEL CUELLO.pdfTEMA # 9 TIANGULOS DEL CUELLO.pdf
TEMA # 9 TIANGULOS DEL CUELLO.pdf
 
NEUROANATO
NEUROANATONEUROANATO
NEUROANATO
 
Cintura pelvica
Cintura pelvicaCintura pelvica
Cintura pelvica
 
Mímica Facial
Mímica FacialMímica Facial
Mímica Facial
 
Kinesiologia columna-vertebral
Kinesiologia columna-vertebralKinesiologia columna-vertebral
Kinesiologia columna-vertebral
 
Seminario tobillo pie
Seminario tobillo pieSeminario tobillo pie
Seminario tobillo pie
 
MúSculos De La Caja ToráCica Completo
MúSculos De La Caja ToráCica CompletoMúSculos De La Caja ToráCica Completo
MúSculos De La Caja ToráCica Completo
 
ARTICULACIONES CERVICALES
ARTICULACIONES CERVICALESARTICULACIONES CERVICALES
ARTICULACIONES CERVICALES
 
Apunte de biomecánica
Apunte de biomecánicaApunte de biomecánica
Apunte de biomecánica
 

Similar a Minimanual r commander

Minimanual de r
Minimanual de rMinimanual de r
Minimanual de rerick_s22
 
Minimanual de r commander
Minimanual de r commanderMinimanual de r commander
Minimanual de r commanderESPOCH
 
Presentacion_de_R_para_el_Congreso.ppt
Presentacion_de_R_para_el_Congreso.pptPresentacion_de_R_para_el_Congreso.ppt
Presentacion_de_R_para_el_Congreso.pptRobertoMarciano6
 
Cristian vasquez manual de r comander en prueba de hipotesis
Cristian vasquez manual de r comander en prueba de hipotesisCristian vasquez manual de r comander en prueba de hipotesis
Cristian vasquez manual de r comander en prueba de hipotesisChristian Vasquez
 
Mini manual R commander kathy moya dual
Mini manual R commander kathy moya dualMini manual R commander kathy moya dual
Mini manual R commander kathy moya dualJean Hidalgo Bourgeat
 
Mini manual de rcomander
Mini manual de rcomanderMini manual de rcomander
Mini manual de rcomanderJhony Tacuri
 
Programacion En Mat Lab
Programacion En Mat LabProgramacion En Mat Lab
Programacion En Mat LabFreelance
 
Mini manual R commander
Mini manual R commanderMini manual R commander
Mini manual R commanderAndrés M-g
 
003- Clas- Lenguajes de programación.pptx
003- Clas- Lenguajes de programación.pptx003- Clas- Lenguajes de programación.pptx
003- Clas- Lenguajes de programación.pptxPierreAlexanderSiuVe2
 
Minimanualrcomander
MinimanualrcomanderMinimanualrcomander
Minimanualrcomanderxavier-1990
 
Escuela superior politécnica de chimborazo
Escuela superior politécnica de chimborazoEscuela superior politécnica de chimborazo
Escuela superior politécnica de chimborazoIrvin Ortega
 
Mini manual r commander en prueba de hipotesis
Mini manual r commander en prueba de hipotesisMini manual r commander en prueba de hipotesis
Mini manual r commander en prueba de hipotesisDenny Damian
 
Curso taller minitab-aplicado_al_control
Curso taller minitab-aplicado_al_controlCurso taller minitab-aplicado_al_control
Curso taller minitab-aplicado_al_controlJavier Rodriguez
 

Similar a Minimanual r commander (20)

Minimanual de r
Minimanual de rMinimanual de r
Minimanual de r
 
Minimanual de r commander
Minimanual de r commanderMinimanual de r commander
Minimanual de r commander
 
R commander
R commanderR commander
R commander
 
Presentacion_de_R_para_el_Congreso.ppt
Presentacion_de_R_para_el_Congreso.pptPresentacion_de_R_para_el_Congreso.ppt
Presentacion_de_R_para_el_Congreso.ppt
 
Manual de R
Manual de RManual de R
Manual de R
 
Cristian vasquez manual de r comander en prueba de hipotesis
Cristian vasquez manual de r comander en prueba de hipotesisCristian vasquez manual de r comander en prueba de hipotesis
Cristian vasquez manual de r comander en prueba de hipotesis
 
Mini manual R commander kathy moya dual
Mini manual R commander kathy moya dualMini manual R commander kathy moya dual
Mini manual R commander kathy moya dual
 
Mini manual de rcomander
Mini manual de rcomanderMini manual de rcomander
Mini manual de rcomander
 
Manual r comander
Manual r comanderManual r comander
Manual r comander
 
Programacion En Mat Lab
Programacion En Mat LabProgramacion En Mat Lab
Programacion En Mat Lab
 
Mini manual R commander
Mini manual R commanderMini manual R commander
Mini manual R commander
 
Articulo en r
Articulo en rArticulo en r
Articulo en r
 
Manual rcmdr
Manual rcmdrManual rcmdr
Manual rcmdr
 
003- Clas- Lenguajes de programación.pptx
003- Clas- Lenguajes de programación.pptx003- Clas- Lenguajes de programación.pptx
003- Clas- Lenguajes de programación.pptx
 
Minimanualrcomander
MinimanualrcomanderMinimanualrcomander
Minimanualrcomander
 
Escuela superior politécnica de chimborazo
Escuela superior politécnica de chimborazoEscuela superior politécnica de chimborazo
Escuela superior politécnica de chimborazo
 
Mini manual r commander en prueba de hipotesis
Mini manual r commander en prueba de hipotesisMini manual r commander en prueba de hipotesis
Mini manual r commander en prueba de hipotesis
 
Matlab
MatlabMatlab
Matlab
 
Curso taller minitab-aplicado_al_control
Curso taller minitab-aplicado_al_controlCurso taller minitab-aplicado_al_control
Curso taller minitab-aplicado_al_control
 
Tp1 2006
Tp1 2006Tp1 2006
Tp1 2006
 

Minimanual r commander

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