1 ACTIVIDAD 5.1

El conjunto de datos “survey” se encuentra alojado en el paquete MASS. Cargue este paquete y, a continuación, active dicho conjunto de datos en el ordenador. Este dataframe contiene las respuestas de varios estudiantes a una serie de cuestiones.

library(MASS)       
data(survey)
head(survey)        
##      Sex Wr.Hnd NW.Hnd W.Hnd    Fold Pulse    Clap Exer Smoke Height      M.I
## 1 Female   18.5   18.0 Right  R on L    92    Left Some Never 173.00   Metric
## 2   Male   19.5   20.5  Left  R on L   104    Left None Regul 177.80 Imperial
## 3   Male   18.0   13.3 Right  L on R    87 Neither None Occas     NA     <NA>
## 4   Male   18.8   18.9 Right  R on L    NA Neither None Never 160.00   Metric
## 5   Male   20.0   20.0 Right Neither    35   Right Some Never 165.00   Metric
## 6 Female   18.0   17.7 Right  L on R    64   Right Some Never 172.72 Imperial
##      Age
## 1 18.250
## 2 17.583
## 3 16.917
## 4 20.333
## 5 23.667
## 6 21.000
help(survey) 
## starting httpd help server ... done

La variables sex corresponde al sexo del encuestado, smoke informa de cuánto fuma cada uno de esos estudiantes, mientras que la variable Exer reproduce la frecuencia con la que realiza ejercicio físico. Mediante los comandos oportunos, muestre los niveles de cada una de esas variables.

levels(survey$Exer)
## [1] "Freq" "None" "Some"
levels(survey$Smoke)
## [1] "Heavy" "Never" "Occas" "Regul"
levels(survey$Sex)
## [1] "Female" "Male"

Cree una tabla que resuma las frecuencias absolutas entre la variable smoke y la variable sex

tabla1 <- table(survey$Smoke, survey$Sex) 
tabla1
##        
##         Female Male
##   Heavy      5    6
##   Never     99   89
##   Occas      9   10
##   Regul      5   12

Represente mediante un gráfico de barras apiladas las frecuencias de las variables anteriores. En este gráfico incluya las etiquetas del eje x (“Sexo”) y del eje y (“Número de respuestas”), y ajuste los valores del eje y a los valores de las barras para que éstas no sobresalgan respecto al eje.

barplot(tabla1,  
        legend = rownames(tabla1), 
        beside=F, 
        axis.lty = 1,
        xlab = "Sexo",
        ylab = "Número de respuestas",
        ylim = c(0,120))

Cree un gráfico de mosaico para examinar la relación entre ambas variables.

mosaicplot(tabla1, 
           color=TRUE, 
           main="Gráfico de mosaico")

Cree otra tabla de frecuencias absolutas entre las variables fumadores (Smoke) y la variable ejercicio (Exer).

tabla2 <- table(survey$Smoke, survey$Exer) 
tabla2 
##        
##         Freq None Some
##   Heavy    7    1    3
##   Never   87   18   84
##   Occas   12    3    4
##   Regul    9    1    7

Represente mediante un gráfico de barras adyacentes las frecuencias de ambas variables. En este gráfico incluya las etiquetas del eje x (“Frecuencia de uso del tabaco”) y del eje y (“Número de respuestas”), y ajuste los valores del eje y a los valores de las barras para que éstas no sobresalgan respecto al eje. Haga corresponder a la categoría Heavy el color rojo, a Neverel color verde, a Occasel color amarillo y a Regulel color naranja.

barplot(tabla2,  
        legend = rownames(tabla2), 
        beside= TRUE, 
        axis.lty = 1,
        col = c("red", "green", "yellow", "orange"),
        xlab = "Frecuencia del uso del tabaco",
        ylab = "Número de respuestas",
        ylim = c(0,100))

Cree un gráfico de mosaico para examinar la relación entre la variable fumadores y la variable ejercicio.

mosaicplot(tabla2, 
           color=TRUE, 
           main="Plot de mosaico")

Aplique la prueba de Chi cuadradro para verificar la independencia entre variables a ambas tablas de contingencia. A partir de los resultados, señale si existe relación entre variables.

chisq.test(tabla1)
## 
##  Pearson's Chi-squared test
## 
## data:  tabla1
## X-squared = 3.5536, df = 3, p-value = 0.3139
chisq.test(tabla2)
## Warning in chisq.test(tabla2): Chi-squared approximation may be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  tabla2
## X-squared = 5.4885, df = 6, p-value = 0.4828

2 ACTIVIDAD 5.2

En ese ejericico vamos a utilizar el conjunto de datos iris. Importe ese conjunto de datos y conviértalo en un objeto denominado ``flores.

data(iris)
flores <- iris
str(flores)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

Crea una nueva variable (variable cualitativa nominal) que recodifique la variable longitud de pétalo (Petal.Length) en dos categorías (pequeñay mediana), en función del valor de la mediana.

mediana <- median(flores$Petal.Length)

flores$longitud_petalo [flores$Petal.Length <= mediana] <- "pequeña"
flores$longitud_petalo [flores$Petal.Length > mediana] <- "grande"

Cree otra tabla de frecuencias absolutas entre la variable Species y la variable longitud_pétalo creada en la línea anterior.

tabla3 <- table(flores$Species, flores$longitud_petalo) 
tabla3  
##             
##              grande pequeña
##   setosa          0      50
##   versicolor     25      25
##   virginica      50       0

Represente mediante un gráfico de barras apiladas las frecuencias de las variables Species y longitud_pétalo. Deberá combinar los colores rojo, verde y amarillo en las barras, e incluir las etiquetas “Tamaño del pétalo” (eje X) y “Número de ejemplares” (eje Y).

barplot(tabla3,  
        legend = rownames(tabla3), 
        beside= FALSE, 
        axis.lty = 1,
        col = c("red", "green", "yellow"),
        xlab = "Tamaño del pétalo",
        ylab = "Número de ejemplares",
        ylim = c(0,100))

Aplique la prueba de Chi cuadradro para verificar la independencia entre

chisq.test(tabla3)
## 
##  Pearson's Chi-squared test
## 
## data:  tabla3
## X-squared = 100, df = 2, p-value < 2.2e-16

3 ACTIVIDAD 5.3

El dataset “mtcars” contiene los detalles técnicos de los conches disponibles en un concesionario de automóviles. De ese dataset nos interesan las siguientes variables: - vs: tipo de motor (0 = en V, 1 = lineal) - ame: tipo de transmisión (0 = automática, 1 = manual). - gear: número de marchas (excluyendo la marcha atrás). - carb: número de carburadores.

A partir de esos datos

data(mtcars)
str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
help(mtcars)

Elabora unas tablas de frecuenica que relacionen las parejas vs-am, gear-carb y cyl-gear.

vsAm <- table(mtcars$vs, mtcars$am)  
vsAm
##    
##      0  1
##   0 12  6
##   1  7  7
gearCarb <- table(mtcars$gear,mtcars$carb)
gearCarb
##    
##     1 2 3 4 6 8
##   3 3 4 3 5 0 0
##   4 4 4 0 4 0 0
##   5 0 2 0 1 1 1
cylGear <- table(mtcars$cyl,mtcars$gear)
cylGear
##    
##      3  4  5
##   4  1  8  2
##   6  2  4  1
##   8 12  0  2

Somete cada una de esas parejas a una prueba de Chi-cuadrado para determinar la independencia de las relaciones:

chisq.test(vsAm) 
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  vsAm
## X-squared = 0.34754, df = 1, p-value = 0.5555
chisq.test(gearCarb) 
## Warning in chisq.test(gearCarb): Chi-squared approximation may be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  gearCarb
## X-squared = 16.518, df = 10, p-value = 0.08573
chisq.test(cylGear) 
## Warning in chisq.test(cylGear): Chi-squared approximation may be incorrect
## 
##  Pearson's Chi-squared test
## 
## data:  cylGear
## X-squared = 18.036, df = 4, p-value = 0.001214