library(UsingR)
library(MASS)
library(ggplot2)
library(dplyr)
library(tidyr)
  1. Carga (o instala primero y luego carga) el paquete UsingR
  1. ¿Cuantos conjuntos de datos de trabajo contiene el paquete?
datasets = data(package = "UsingR")
nrow(datasets$results)
## [1] 123
  1. Representa gráficamente los datos contenidos en los conjuntos de datos (“datasets”) bumpers, firstchi, math con un histograma y/o un boxplot.
data(bumpers) # Costes de reparación de parachoques de varios automóviles
par(mfrow = c(1, 2)) 
hist(bumpers, main="Histograma de Bumpers", col="lightblue")
boxplot(bumpers, main="Boxplot de Bumpers", col="lightgreen")

data(firstchi) # Edad de la madre al nacer el primer hijo
par(mfrow = c(1, 2)) 
hist(firstchi, main="Histograma de Firstchi", col="lightblue")
boxplot(firstchi, main="Boxplot de Firstchi", col="lightgreen")

data(math) # Puntuaciones normalizadas en matemáticas
par(mfrow = c(1, 2)) 
hist(math, main="Histograma de Math Scores", col="lightblue")
boxplot(math, main="Boxplot de Math Scores", col="lightgreen")

  1. Estima visualmente las medias, medianas y desviaciones estándar de cada conjunto de datos y a continuación calcula los valores anteriores con las funciones adecuadas. ¿Qué gráfico resulta de mayor ayuda para la aproximación?
mean_bumpers = mean(bumpers) 
median_bumpers = median(bumpers)
sd_bumpers = sd(bumpers)

mean_firstchi = mean(firstchi)
median_firstchi = median(firstchi)
sd_firstchi = sd(firstchi)

mean_math = mean(math)
median_math = median(math)
sd_math = sd(math)
## Estadísticas para Bumpers:
## Media: 2122.478 Mediana: 2129 Desviación Estándar: 798.4574
## Estadísticas para Firstchi:
## Media: 23.97701 Mediana: 23 Desviación Estándar: 6.254258
## Estadísticas para Math:
## Media: 54.9 Mediana: 54 Desviación Estándar: 9.746264

El boxplot fue particularmente efectivo para estimar la mediana, mientras que el histograma ayudó a tener una noción general de la dispersión de los datos y, en el caso de distribuciones simétricas, también para la media. Para la desviación estándar, ninguna de las dos visualizaciones la proporciona directamente, pero el histograma permite ver la dispersión de los datos, y el boxplot muestra el IQR, que es una medida relacionada. Por lo tanto, para tener una comprensión completa, ambos gráficos se complementan bien y son útiles para realizar estimaciones visuales antes de proceder con los cálculos exactos.

  1. El conjunto de datos brightness contiene información sobre el brillo de 963 estrellas.
  1. Representa estos datos mediante un histograma y un gráfico de densidad superpuesto
data(brightness)
brightness_df = data.frame(brightness = brightness)
ggplot(brightness_df, aes(x = brightness)) +
  geom_histogram(aes(y = ..density..), binwidth = 1, color = "black", fill = "grey") +
  geom_density(alpha = 0.5, fill = "#377eb8") +
  labs(x = "Brillo", y = "Densidad", title = "Histograma y Gráfico de Densidad del Brillo de Estrellas") +
  theme_minimal()

  1. Representa gráficamente estos datos mediante un diagrama de caja (boxplot). ¿Dirias que los datos presentan “outliers”? Cuál es el segundo menor outlier?
boxplot(brightness, main="Diagrama de Caja del Brillo de Estrellas", col="blue")

Si, los puntos que se encuentran por debajo del bigote inferior y por encima del bigote superior en el boxplot se consideran outliers. Estos son valores que se desvían significativamente de la mayoría de los datos.

# Primer y tercer cuartil, así como el IQR
Q1 = quantile(brightness, 0.25)
Q3 = quantile(brightness, 0.75)
IQR = Q3 - Q1

# Límites para identificar outliers
lower_whisker = Q1 - 1.5 * IQR

# Identificar los outliers
outliers = brightness_df$brightness[brightness < lower_whisker]

# Ordenar los outliers y seleccionamos el segundo menor
outliers_sorted = sort(outliers)
second_lowest_outlier = outliers_sorted[2]
## El segundo menor outlier es: 2.28
  1. Deseamos conservar los datos que de ninguna forma puedan ser considerados atípicos.Crea una nueva variable denominada brightness.sin que contenga tan solo los valores que se encuentren por encima de la primera bisagra y por debajo de la cuarta.
brightness_sin = brightness[brightness > Q1 & brightness < Q3]
boxplot(brightness_sin, main="Diagrama de Caja del Brillo de Estrellas sin Datos Atípicos", col="blue")

  1. El paquete MASS contiene la base de datos UScereal con información relativa a desayunos con cereales.
  1. ¿Cuál es el tipo de datos de cada variable?
data(UScereal)
str(UScereal)
## 'data.frame':    65 obs. of  11 variables:
##  $ mfr      : Factor w/ 6 levels "G","K","N","P",..: 3 2 2 1 2 1 6 4 5 1 ...
##  $ calories : num  212 212 100 147 110 ...
##  $ protein  : num  12.12 12.12 8 2.67 2 ...
##  $ fat      : num  3.03 3.03 0 2.67 0 ...
##  $ sodium   : num  394 788 280 240 125 ...
##  $ fibre    : num  30.3 27.3 28 2 1 ...
##  $ carbo    : num  15.2 21.2 16 14 11 ...
##  $ sugars   : num  18.2 15.2 0 13.3 14 ...
##  $ shelf    : int  3 3 3 1 2 3 1 3 2 1 ...
##  $ potassium: num  848.5 969.7 660 93.3 30 ...
##  $ vitamins : Factor w/ 3 levels "100%","enriched",..: 2 2 2 2 2 2 2 2 2 2 ...

El conjunto de datos UScereal tiene 65 observaciones de 11 variables con los siguientes tipos de datos:

  1. Utiliza los datos de cereales para investigar algunas asociaciones entre sus variables:
  1. La relación entre manufacturer y shelf.
table(UScereal$mfr, UScereal$shelf)
##    
##      1  2  3
##   G  6  7  9
##   K  4  7 10
##   N  2  0  1
##   P  2  1  6
##   Q  0  3  2
##   R  4  0  1

Esta tabla muestra la distribución de la frecuencia de los cereales por cada fabricante en diferentes estantes.

  1. La relación entre fat y vitamins.
table(UScereal$fat, UScereal$vitamins)
##            
##             100% enriched none
##   0            1       18    3
##   0.6666667    0        1    0
##   1            3        7    0
##   1.1363636    0        1    0
##   1.3333333    1        8    0
##   1.4925373    0        4    0
##   1.6          0        1    0
##   2            0        2    0
##   2.6666667    0        3    0
##   2.9850746    0        4    0
##   3.030303     0        2    0
##   4            0        4    0
##   6            0        1    0
##   9.0909091    0        1    0

La tabla muestra la frecuencia de los tipos de vitaminas en los cereales en función de su contenido de grasa. Basado en la tabla:

  1. La relación entre fat y shelf.
table(UScereal$fat, UScereal$shelf)
##            
##              1  2  3
##   0         10  3  9
##   0.6666667  0  1  0
##   1          2  5  3
##   1.1363636  0  0  1
##   1.3333333  2  4  3
##   1.4925373  2  1  1
##   1.6        1  0  0
##   2          0  1  1
##   2.6666667  1  1  1
##   2.9850746  0  1  3
##   3.030303   0  0  2
##   4          0  1  3
##   6          0  0  1
##   9.0909091  0  0  1

La tabla muestra la distribución del contenido de grasa en los cereales en función de su ubicación en diferentes estantes

  1. La relación entre carbohydrates y sugars.
table(UScereal$carbo, UScereal$sugars)
##           
##            0 0.8 1.769912 2 3 4 4.477612 5.681818 6 6.666667 7.462687 8.270677
##   10.52632 0   0        0 0 0 0        0        0 0        0        0        1
##   11       0   0        0 0 0 0        0        0 0        0        0        0
##   12       0   0        0 0 0 0        0        0 0        0        0        0
##   12.5     0   0        0 0 0 0        0        0 0        0        0        0
##   13       1   0        0 0 0 0        0        0 0        0        0        0
##   13.6     0   1        0 0 0 0        0        0 0        0        0        0
##   14       0   0        0 1 0 0        0        0 0        0        0        0
##   14.66667 0   0        0 0 0 0        0        0 0        0        0        0
##   15       0   0        0 0 0 0        0        0 1        0        0        0
##   15.15152 0   0        0 0 0 0        0        0 0        0        0        0
##   15.33333 0   0        0 0 0 0        0        0 0        0        0        0
##   16       1   0        0 0 2 0        0        0 0        0        0        0
##   16.41791 0   0        0 0 0 0        0        0 0        0        0        0
##   17       0   0        0 0 1 0        0        0 0        0        0        0
##   17.04545 0   0        0 0 0 0        0        1 0        0        0        0
##   17.33333 0   0        0 0 0 0        0        0 0        0        0        0
##   17.5     0   0        0 0 0 0        0        0 0        0        0        0
##   17.91045 0   0        0 0 0 0        0        0 0        0        0        0
##   18.66667 0   0        0 0 0 0        0        0 0        0        0        0
##   19.40299 0   0        0 0 0 0        0        0 0        0        1        0
##   20       0   0        0 0 1 0        0        0 0        0        0        0
##   20.35398 0   0        1 0 0 0        0        0 0        0        0        0
##   20.89552 0   0        0 0 0 0        0        0 0        0        0        0
##   21       0   0        0 1 2 0        0        0 0        0        0        0
##   21.21212 0   0        0 0 0 0        0        0 0        0        0        0
##   21.33333 0   0        0 0 0 0        0        0 0        0        0        0
##   22       0   0        0 0 2 0        0        0 0        0        0        0
##   22.38806 0   0        0 0 0 0        0        0 0        0        0        0
##   24       0   0        0 0 0 0        0        0 0        1        0        0
##   25.37313 0   0        0 0 0 0        1        0 0        0        0        0
##   26       0   0        0 0 0 0        0        0 0        0        0        0
##   26.66667 0   0        0 0 0 0        0        0 0        0        0        0
##   27       0   0        0 0 0 0        0        0 0        0        0        0
##   28       0   0        0 0 0 1        0        0 0        0        0        0
##   28.35821 1   0        0 0 0 0        0        0 0        0        0        0
##   29.85075 1   0        0 0 0 0        0        0 0        0        0        0
##   30       0   0        0 0 0 0        0        0 0        0        0        0
##   31.34328 0   0        0 0 0 0        0        0 0        0        0        0
##   39.39394 0   0        0 0 0 0        0        0 0        0        0        0
##   68       0   0        0 0 0 0        0        0 0        0        0        0
##           
##            8.75 8.955224 10.447761 10.666667 11 12 12.121212 13 13.333333
##   10.52632    0        0         0         0  0  0         0  0         0
##   11          0        0         0         0  0  0         0  1         0
##   12          0        0         0         0  1  1         0  2         0
##   12.5        0        0         0         0  0  0         0  0         0
##   13          0        0         0         0  0  2         0  0         0
##   13.6        0        0         0         0  0  0         0  0         0
##   14          0        0         0         0  0  0         0  0         1
##   14.66667    0        0         0         0  0  0         0  0         1
##   15          0        0         0         0  0  0         0  0         0
##   15.15152    0        0         0         0  0  0         0  0         0
##   15.33333    0        0         0         0  0  0         0  0         1
##   16          0        0         0         0  0  0         0  0         0
##   16.41791    0        0         0         0  0  0         0  0         0
##   17          0        0         0         0  0  0         0  0         0
##   17.04545    0        0         0         0  0  0         0  0         0
##   17.33333    0        0         0         0  0  1         0  0         0
##   17.5        1        0         0         0  0  0         0  0         0
##   17.91045    0        1         0         0  0  0         0  0         0
##   18.66667    0        0         0         0  0  0         0  0         0
##   19.40299    0        0         0         0  0  0         0  0         0
##   20          0        0         0         0  0  1         0  0         0
##   20.35398    0        0         0         0  0  0         0  0         0
##   20.89552    0        0         0         0  0  0         0  0         0
##   21          0        0         0         0  0  0         0  0         0
##   21.21212    0        0         0         0  0  0         0  0         0
##   21.33333    0        0         0         1  0  0         0  0         0
##   22          0        0         0         0  0  0         0  0         0
##   22.38806    0        1         0         0  0  0         0  0         0
##   24          0        0         0         1  0  0         0  0         0
##   25.37313    0        0         0         0  0  0         0  0         0
##   26          0        0         0         0  0  0         0  0         0
##   26.66667    0        0         0         0  0  1         0  0         0
##   27          0        0         0         0  0  0         0  0         0
##   28          0        0         0         0  0  1         0  0         0
##   28.35821    0        0         0         0  0  0         0  0         0
##   29.85075    0        0         0         0  0  0         0  0         0
##   30          0        0         0         0  0  1         0  0         0
##   31.34328    0        0         1         0  0  0         0  0         0
##   39.39394    0        0         0         0  0  0         1  0         0
##   68          0        0         0         0  0  1         0  0         0
##           
##            13.432836 14 14.666667 14.925373 15.151515 16 17.045455 17.910448
##   10.52632         0  0         0         0         0  0         0         0
##   11               0  1         0         0         0  0         0         0
##   12               0  0         0         0         0  0         0         0
##   12.5             0  0         0         0         0  0         1         0
##   13               0  0         0         0         0  0         0         0
##   13.6             0  0         0         0         0  0         0         0
##   14               0  0         0         0         0  0         0         0
##   14.66667         0  0         0         0         0  0         0         0
##   15               0  1         0         0         0  0         0         0
##   15.15152         0  0         0         0         0  0         0         0
##   15.33333         0  0         0         0         0  0         0         0
##   16               0  0         0         0         0  1         0         0
##   16.41791         0  0         0         0         0  0         0         0
##   17               0  0         0         0         0  0         0         0
##   17.04545         0  0         0         0         0  0         0         0
##   17.33333         0  0         0         0         0  1         0         0
##   17.5             0  0         0         0         0  0         0         0
##   17.91045         0  0         0         1         0  0         0         0
##   18.66667         0  0         1         0         0  1         0         0
##   19.40299         0  0         0         0         0  0         0         0
##   20               0  1         0         0         0  0         0         0
##   20.35398         0  0         0         0         0  0         0         0
##   20.89552         0  0         0         0         0  0         0         1
##   21               0  0         0         0         0  1         0         0
##   21.21212         0  0         0         0         1  0         0         0
##   21.33333         0  0         0         0         0  0         0         0
##   22               0  0         0         0         0  0         0         0
##   22.38806         1  0         0         0         0  0         0         0
##   24               0  0         0         0         0  0         0         0
##   25.37313         0  0         0         0         0  0         0         0
##   26               0  1         0         0         0  0         0         0
##   26.66667         0  0         0         0         0  0         0         0
##   27               0  0         0         0         0  0         0         0
##   28               0  0         0         0         0  0         0         0
##   28.35821         0  0         0         0         0  0         0         0
##   29.85075         0  0         0         0         0  0         0         0
##   30               0  0         0         0         0  0         0         0
##   31.34328         0  0         0         0         0  0         0         0
##   39.39394         0  0         0         0         0  0         0         0
##   68               0  0         0         0         0  0         0         0
##           
##            18.181818 19.402985 20 20.895522
##   10.52632         0         0  0         0
##   11               0         0  0         0
##   12               0         0  1         0
##   12.5             0         0  0         0
##   13               0         0  0         0
##   13.6             0         0  0         0
##   14               0         0  0         0
##   14.66667         0         0  0         0
##   15               0         0  0         0
##   15.15152         1         0  0         0
##   15.33333         0         0  0         0
##   16               0         0  0         0
##   16.41791         0         0  0         1
##   17               0         0  0         0
##   17.04545         0         0  0         0
##   17.33333         0         0  0         0
##   17.5             0         0  0         0
##   17.91045         0         0  0         0
##   18.66667         0         0  0         0
##   19.40299         0         0  0         0
##   20               0         0  0         0
##   20.35398         0         0  0         0
##   20.89552         0         0  0         0
##   21               0         0  0         0
##   21.21212         0         0  0         0
##   21.33333         0         0  0         0
##   22               0         0  0         0
##   22.38806         0         0  0         0
##   24               0         0  0         0
##   25.37313         0         1  0         0
##   26               0         0  0         0
##   26.66667         0         0  0         0
##   27               0         0  1         0
##   28               0         0  0         0
##   28.35821         0         0  0         0
##   29.85075         0         0  0         0
##   30               0         0  0         0
##   31.34328         0         0  0         0
##   39.39394         0         0  0         0
##   68               0         0  0         0
cor.test(UScereal$carbo, UScereal$sugars, use = "complete.obs")
## 
##  Pearson's product-moment correlation
## 
## data:  UScereal$carbo and UScereal$sugars
## t = -0.32432, df = 63, p-value = 0.7468
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  -0.2819179  0.2051155
## sample estimates:
##         cor 
## -0.04082599

Basado en estos resultados, podemos concluir que no existe una relación lineal significativa entre el contenido de carbohidratos y de azúcares en los cereales del conjunto de datos UScereal.

  1. La relación entre fibre y manufacturer.
table(UScereal$fibre, UScereal$mfr)
##            
##             G K N P Q R
##   0         9 2 0 3 2 2
##   1         0 7 0 0 1 0
##   1.333333  1 2 0 0 0 1
##   1.6       1 0 0 0 0 0
##   2         3 0 0 0 0 0
##   2.666667  2 1 0 0 0 0
##   2.985075  0 0 0 0 1 0
##   3         3 0 0 0 0 0
##   3.409091  0 0 0 1 0 0
##   3.75      0 1 0 0 0 0
##   4         2 1 0 0 1 0
##   4.477612  0 2 1 0 0 1
##   5         1 0 0 0 0 0
##   5.970149  0 0 1 0 0 1
##   6.666667  0 1 0 0 0 0
##   7.462687  0 1 0 2 0 0
##   8         0 1 0 0 0 0
##   8.955224  0 0 0 1 0 0
##   9.090909  0 0 0 1 0 0
##   12        0 0 0 1 0 0
##   27.272727 0 1 0 0 0 0
##   28        0 1 0 0 0 0
##   30.30303  0 0 1 0 0 0

La tabla de contingencia que muestra la relación entre el contenido de fibra y los fabricantes de cereales revela una diversidad notable en la formulación de fibra entre los distintos productores. Fabricantes como N y P se destacan por ofrecer cereales con altos niveles de fibra, con N presentando un producto con hasta 30.30303 unidades de fibra y P con productos que alcanzan los 12 y 9.090909 unidades. Por otro lado, el fabricante G tiende a producir cereales con bajo contenido de fibra, aunque también ofrece algunos con hasta 4 unidades. K y Q muestran una gama más amplia, con K proporcionando cereales con hasta 28 unidades de fibra. Esta variabilidad sugiere que algunos fabricantes pueden especializarse en cereales de alto contenido de fibra, mientras que otros ofrecen una gama más amplia de contenidos.

  1. La relación entre sodium y sugars.
table(UScereal$sodium, UScereal$sugars)
##            
##             0 0.8 1.769912 2 3 4 4.477612 5.681818 6 6.666667 7.462687 8.270677
##   0         3   0        0 0 0 0        0        0 0        0        0        0
##   51.13636  0   0        0 0 0 0        0        0 0        0        0        0
##   90        0   0        0 0 0 0        0        0 0        0        0        0
##   93.33333  0   0        0 0 0 0        0        0 0        0        0        0
##   125       0   0        0 0 0 0        0        0 0        0        0        0
##   135.33835 0   0        0 0 0 0        0        0 0        0        0        1
##   140       0   0        0 0 0 0        0        0 0        0        0        0
##   159.09091 0   0        0 0 0 0        0        1 0        0        0        0
##   173.33333 0   0        0 1 0 0        0        0 0        0        0        0
##   180       0   0        0 0 0 0        0        0 0        0        0        0
##   186.66667 0   0        0 0 0 0        0        0 0        0        0        0
##   190       0   0        0 0 0 0        0        0 0        0        0        0
##   200       0   0        0 0 3 0        0        0 0        0        0        0
##   212.38938 0   0        1 0 0 0        0        0 0        0        0        0
##   220       0   0        0 0 1 0        0        0 1        0        0        0
##   223.8806  0   0        0 0 0 0        0        0 0        0        0        0
##   226.66667 0   0        0 0 0 0        0        0 0        0        0        0
##   227.27273 0   0        0 0 0 0        0        0 0        0        0        0
##   230       0   0        0 0 1 0        0        0 0        0        0        0
##   232       0   1        0 0 0 0        0        0 0        0        0        0
##   238.80597 0   0        0 0 0 0        0        0 0        0        0        0
##   240       0   0        0 0 0 0        0        0 0        0        0        0
##   253.33333 0   0        0 0 0 0        0        0 0        1        0        0
##   266.66667 0   0        0 0 0 0        0        0 0        0        0        0
##   270       0   0        0 0 0 0        0        0 0        0        0        0
##   280       1   0        0 0 1 0        0        0 0        0        0        0
##   283.58209 0   0        0 0 0 0        0        0 0        0        0        0
##   290       0   0        0 1 1 0        0        0 0        0        0        0
##   293.33333 0   0        0 0 0 0        0        0 0        0        0        0
##   298.50746 0   0        0 0 0 0        0        0 0        0        0        0
##   313.43284 0   0        0 0 0 0        0        0 0        0        1        0
##   320       0   0        0 0 1 0        0        0 0        0        0        0
##   328.35821 0   0        0 0 0 0        0        0 0        0        0        0
##   333.33333 0   0        0 0 0 1        0        0 0        0        0        0
##   340       0   0        0 0 0 0        0        0 0        0        0        0
##   343.28358 0   0        0 0 0 0        1        0 0        0        0        0
##   358.20896 0   0        0 0 0 0        0        0 0        0        0        0
##   373.33333 0   0        0 0 0 0        0        0 0        0        0        0
##   393.93939 0   0        0 0 0 0        0        0 0        0        0        0
##   680       0   0        0 0 0 0        0        0 0        0        0        0
##   787.87879 0   0        0 0 0 0        0        0 0        0        0        0
##            
##             8.75 8.955224 10.447761 10.666667 11 12 12.121212 13 13.333333
##   0            1        0         0         0  0  1         0  0         0
##   51.13636     0        0         0         0  0  0         0  0         0
##   90           0        0         0         0  0  1         0  0         0
##   93.33333     0        0         0         0  0  0         0  0         0
##   125          0        0         0         0  0  0         0  1         0
##   135.33835    0        0         0         0  0  0         0  0         0
##   140          0        0         0         0  0  1         0  0         0
##   159.09091    0        0         0         0  0  0         0  0         0
##   173.33333    0        0         0         0  0  0         0  0         0
##   180          0        0         0         0  0  1         0  2         0
##   186.66667    0        0         0         0  0  0         0  0         1
##   190          0        0         0         0  0  0         0  0         0
##   200          0        0         0         0  0  0         0  0         0
##   212.38938    0        0         0         0  0  0         0  0         0
##   220          0        0         0         0  1  0         0  0         0
##   223.8806     0        1         0         0  0  0         0  0         0
##   226.66667    0        0         0         0  0  1         0  0         0
##   227.27273    0        0         0         0  0  0         1  0         0
##   230          0        0         0         0  0  0         0  0         0
##   232          0        0         0         0  0  0         0  0         0
##   238.80597    0        0         0         0  0  0         0  0         0
##   240          0        0         0         0  0  0         0  0         1
##   253.33333    0        0         0         0  0  0         0  0         0
##   266.66667    0        0         0         1  0  0         0  0         0
##   270          0        0         0         0  0  1         0  0         0
##   280          0        0         0         1  0  1         0  0         0
##   283.58209    0        0         0         0  0  0         0  0         0
##   290          0        0         0         0  0  0         0  0         0
##   293.33333    0        0         0         0  0  0         0  0         0
##   298.50746    0        1         0         0  0  0         0  0         0
##   313.43284    0        0         0         0  0  0         0  0         0
##   320          0        0         0         0  0  0         0  0         0
##   328.35821    0        0         1         0  0  0         0  0         0
##   333.33333    0        0         0         0  0  0         0  0         1
##   340          0        0         0         0  0  0         0  0         0
##   343.28358    0        0         0         0  0  0         0  0         0
##   358.20896    0        0         0         0  0  0         0  0         0
##   373.33333    0        0         0         0  0  1         0  0         0
##   393.93939    0        0         0         0  0  0         0  0         0
##   680          0        0         0         0  0  1         0  0         0
##   787.87879    0        0         0         0  0  0         0  0         0
##            
##             13.432836 14 14.666667 14.925373 15.151515 16 17.045455 17.910448
##   0                 0  0         0         0         0  0         0         0
##   51.13636          0  0         0         0         0  0         1         0
##   90                0  0         0         0         0  0         0         0
##   93.33333          0  0         0         0         0  0         0         0
##   125               0  1         0         0         0  0         0         0
##   135.33835         0  0         0         0         0  0         0         0
##   140               0  0         0         0         0  0         0         0
##   159.09091         0  0         0         0         0  0         0         0
##   173.33333         0  0         0         0         0  0         0         0
##   180               0  0         0         0         0  1         0         0
##   186.66667         0  0         0         0         0  0         0         0
##   190               0  1         0         0         0  0         0         0
##   200               0  0         0         0         0  0         0         0
##   212.38938         0  0         0         0         0  0         0         0
##   220               0  0         0         0         0  0         0         0
##   223.8806          0  0         0         0         0  0         0         0
##   226.66667         0  0         0         0         0  0         0         0
##   227.27273         0  0         0         0         0  0         0         0
##   230               0  0         0         0         0  0         0         0
##   232               0  0         0         0         0  0         0         0
##   238.80597         0  0         0         1         0  0         0         0
##   240               0  0         0         0         0  0         0         0
##   253.33333         0  0         0         0         0  0         0         0
##   266.66667         0  0         1         0         0  0         0         0
##   270               0  0         0         0         0  0         0         0
##   280               0  2         0         0         0  2         0         0
##   283.58209         1  0         0         0         0  0         0         0
##   290               0  0         0         0         0  0         0         0
##   293.33333         0  0         0         0         0  1         0         0
##   298.50746         0  0         0         0         0  0         0         0
##   313.43284         0  0         0         0         0  0         0         0
##   320               0  0         0         0         0  0         0         0
##   328.35821         0  0         0         0         0  0         0         0
##   333.33333         0  0         0         0         0  0         0         0
##   340               0  0         0         0         0  0         0         0
##   343.28358         0  0         0         0         0  0         0         0
##   358.20896         0  0         0         0         0  0         0         1
##   373.33333         0  0         0         0         0  0         0         0
##   393.93939         0  0         0         0         0  0         0         0
##   680               0  0         0         0         0  0         0         0
##   787.87879         0  0         0         0         1  0         0         0
##            
##             18.181818 19.402985 20 20.895522
##   0                 0         0  0         0
##   51.13636          0         0  0         0
##   90                0         0  0         0
##   93.33333          0         0  1         0
##   125               0         0  0         0
##   135.33835         0         0  0         0
##   140               0         0  0         0
##   159.09091         0         0  0         0
##   173.33333         0         0  0         0
##   180               0         0  0         0
##   186.66667         0         0  0         0
##   190               0         0  0         0
##   200               0         0  0         0
##   212.38938         0         0  0         0
##   220               0         0  0         0
##   223.8806          0         1  0         0
##   226.66667         0         0  0         0
##   227.27273         0         0  0         0
##   230               0         0  0         0
##   232               0         0  0         0
##   238.80597         0         0  0         0
##   240               0         0  0         0
##   253.33333         0         0  0         0
##   266.66667         0         0  0         0
##   270               0         0  0         0
##   280               0         0  0         0
##   283.58209         0         0  0         0
##   290               0         0  0         0
##   293.33333         0         0  0         0
##   298.50746         0         0  0         1
##   313.43284         0         0  0         0
##   320               0         0  0         0
##   328.35821         0         0  0         0
##   333.33333         0         0  0         0
##   340               0         0  1         0
##   343.28358         0         0  0         0
##   358.20896         0         0  0         0
##   373.33333         0         0  0         0
##   393.93939         1         0  0         0
##   680               0         0  0         0
##   787.87879         0         0  0         0
cor(UScereal$sodium, UScereal$sugars, use = "complete.obs")
## [1] 0.2112437

El coeficiente de correlación de 0.2112437 entre el contenido de sodio y de azúcares indica una correlación positiva leve, sugiriendo que los cereales con niveles más altos de sodio tienden también a tener niveles algo mayores de azúcares, aunque la relación es relativamente débil.

  1. El conjunto de datos mammals contiene datos sobre la relación entre peso corporal y peso del cerebro.
data("mammals")
  1. ¿Cuál es la correlación lineal entre estas variables?
cor(mammals$body, mammals$brain)
## [1] 0.9341638

Indica una correlación positiva muy fuerte. Esto significa que, en general, a medida que aumenta el peso corporal de los mamíferos, también lo hace el peso de su cerebro.

  1. Representa los datos mediante la instrucción plot
plot(mammals$body, mammals$brain,
     main="Relación entre Peso Corporal y Peso del Cerebro en Mamíferos",
     xlab="Peso Corporal (kg)",
     ylab="Peso del Cerebro (g)",
     pch=19, col=rgb(0.1, 0.3, 0.5, 0.7))

  1. Transforma los datos mediante la función log y repite el estudio. ¿Cómo cambian los resultados?
mammals$log_body = log(mammals$body)
mammals$log_brain = log(mammals$brain)

cor(mammals$log_body, mammals$log_brain)
## [1] 0.9595748
plot(mammals$log_body, mammals$log_brain,
     main="Relación Logarítmica entre Peso Corporal y Peso del Cerebro en Mamíferos",
     xlab="Logaritmo del Peso Corporal",
     ylab="Logaritmo del Peso del Cerebro",
     pch=19, col=rgb(0.1, 0.3, 0.5, 0.7))

La transformación logarítmica ha mejorado la correlación entre el peso corporal y el peso del cerebro, aumentando de 0.9341638 a 0.9595748. Esto sugiere que la relación entre estas dos variables es más cercana a una función exponencial que lineal en su estado original.

La relación entre las variables se linealiza, mostrando una tendencia clara y más uniforme que indica una correlación fuerte, lo cual es consistente con el alto coeficiente de correlación que se calculó.

  1. Enlaza la base de datos emissions del paquete UsingR
data("emissions")
  1. Estudia la relación entre las variables GDP (Gross Domestic Product), perCapita (pues eso) y CO2 (Emisiones de CO2) de cada pais.
correlation_gdp_percapita = cor(emissions$GDP, emissions$perCapita, use = "complete.obs")
correlation_gdp_co2 = cor(emissions$GDP, emissions$CO2, use = "complete.obs")
correlation_percapita_co2 = cor(emissions$perCapita, emissions$CO2, use = "complete.obs")
## Correlacion entre GDP y perCapita es: 0.4325303
## Correlacion entre GDP y CO2 es: 0.9501753
## Correlacion entre perCapita y CO2 es: 0.2757962
  1. Construye un modelo de regresión para predecir las emisiones de CO2 a partir de cada una de las variables.
model_gdp = lm(CO2 ~ GDP, data = emissions)
summary(model_gdp)
## 
## Call:
## lm(formula = CO2 ~ GDP, data = emissions)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -1107.35   -81.47   -32.69   126.33  1438.79 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 2.043e+01  9.441e+01   0.216     0.83    
## GDP         7.815e-04  5.233e-05  14.933  1.2e-13 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 427.4 on 24 degrees of freedom
## Multiple R-squared:  0.9028, Adjusted R-squared:  0.8988 
## F-statistic:   223 on 1 and 24 DF,  p-value: 1.197e-13

El modelo de regresión lineal muestra una fuerte relación positiva y estadísticamente significativa entre el GDP y las emisiones de CO2, con un R cuadrado de 0.9028, lo que significa que aproximadamente el 90% de la variabilidad en las emisiones de CO2 puede explicarse por el GDP. A pesar de que el intercepto no es significativo, el coeficiente para el GDP es altamente significativo, indicando que un aumento en el GDP está asociado con un incremento en las emisiones de CO2. La amplia gama de residuales sugiere que podrían existir valores atípicos o factores no capturados por el modelo que podrían ser importantes para predecir las emisiones de CO2 más precisamente.

model_percapita = lm(CO2 ~ perCapita, data = emissions)
summary(model_percapita)
## 
## Call:
## lm(formula = CO2 ~ perCapita, data = emissions)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1088.4  -681.4  -317.7    80.5  5479.7 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)
## (Intercept) -223.99167  686.10910  -0.326    0.747
## perCapita      0.05040    0.03586   1.406    0.173
## 
## Residual standard error: 1318 on 24 degrees of freedom
## Multiple R-squared:  0.07606,    Adjusted R-squared:  0.03757 
## F-statistic: 1.976 on 1 and 24 DF,  p-value: 0.1726

El modelo de regresión lineal utilizando el per cápitapara predecir las emisiones de CO2 indica que el PIB per cápita no es un predictor estadísticamente significativo de las emisiones de CO2. El coeficiente para perCapita es positivo, lo que sugiere una relación positiva entre estas variables, pero con un valor p de 0.173, esta relación no es estadísticamente significativa en el nivel de confianza habitual.Además, el R cuadrado de 0.07606 muestra que el modelo explica solo alrededor del 7.6% de la variabilidad en las emisiones de CO2, lo cual es bastante bajo y sugiere que hay otros factores no considerados en el modelo que influirían en las emisiones de CO2.

  1. Identifica los outliers y prueba de ajustar el modelo de nuevo sin ellos.
# Para GDP
residuals_gdp = residuals(model_gdp)
high_limit_gdp = mean(residuals_gdp) + 2*sd(residuals_gdp)
low_limit_gdp = mean(residuals_gdp) - 2*sd(residuals_gdp)
emissions_clean_gdp = emissions[!residuals_gdp > high_limit_gdp & !residuals_gdp < low_limit_gdp, ]
model_gdp_clean = lm(CO2 ~ GDP, data = emissions_clean_gdp)
summary(model_gdp_clean)
## 
## Call:
## lm(formula = CO2 ~ GDP, data = emissions_clean_gdp)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -513.18  -39.74    8.41   95.71  342.52 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -2.554e+01  4.719e+01  -0.541    0.594    
## GDP          8.248e-04  2.676e-05  30.827   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 209.7 on 22 degrees of freedom
## Multiple R-squared:  0.9774, Adjusted R-squared:  0.9763 
## F-statistic: 950.3 on 1 and 22 DF,  p-value: < 2.2e-16

La comparación entre el modelo original y el ajustado después de eliminar los outliers para predecir las emisiones de CO2 usando el GDP muestra mejoras significativas: el R cuadrado aumentó de 0.9028 a 0.9774, indicando que el modelo ajustado ahora explica casi el 98% de la variabilidad en las emisiones, una mejora notable respecto al 90% del modelo original. El error estándar residual se redujo a más de la mitad, de 427.4 a 209.7, y el rango de residuales también se redujo considerablemente, lo que indica una distribución más uniforme de los errores y menos influencia de valores atípicos. Además, el coeficiente de GDP en el modelo ajustado aumentó ligeramente y mantuvo su alta significancia estadística, lo que sugiere una relación más precisa y fuerte entre el GDP y las emisiones de CO2. Estas mejoras subrayan la importancia de tratar los outliers en análisis de regresión para obtener estimaciones más confiables y precisas.

# Para perCapita
residuals_percapita = residuals(model_percapita)
high_limit_percapita = mean(residuals_percapita) + 2*sd(residuals_percapita)
low_limit_percapita = mean(residuals_percapita) - 2*sd(residuals_percapita)
emissions_clean_percapita = emissions[!residuals_percapita > high_limit_percapita & !residuals_percapita < low_limit_percapita, ]
model_percapita_clean = lm(CO2 ~ perCapita, data = emissions_clean_percapita)
summary(model_percapita_clean)
## 
## Call:
## lm(formula = CO2 ~ perCapita, data = emissions_clean_percapita)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -402.3 -332.9 -244.9  141.9 1497.7 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) 531.03357  287.50408   1.847   0.0776 .
## perCapita    -0.00608    0.01546  -0.393   0.6978  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 536.4 on 23 degrees of freedom
## Multiple R-squared:  0.006676,   Adjusted R-squared:  -0.03651 
## F-statistic: 0.1546 on 1 and 23 DF,  p-value: 0.6978

El análisis de los modelos de regresión para predecir las emisiones de CO2 a partir del per cápita antes y después de eliminar los outliers muestra resultados interesantes, aunque no necesariamente mejora la predictibilidad del modelo. Inicialmente, el modelo mostraba una relación positiva leve entre el per cápita y las emisiones de CO2, aunque esta no era estadísticamente significativa (p = 0.173) y solo explicaba el 7.6% de la variabilidad de las emisiones. Después de eliminar los outliers, el coeficiente para el per cápita cambió a negativo, sugiriendo una posible disminución en las emisiones a medida que aumenta el per cápita, pero esta relación también resultó no ser estadísticamente significativa (p = 0.6978) y el modelo ajustado apenas explicó menos del 1% de la variabilidad en las emisiones.

  1. La base de datos MASS posee la siguiente base de datos: “anorexia” que contiene el cambio de peso en pacientes femeninas la cual posee 72 filas y 3 columnas.
data("anorexia")
  1. ¿Que Tipo de tratamiento más efectivo?
# Calcular el cambio de peso
anorexia$WeightChange = anorexia$Postwt - anorexia$Prewt
# Agrupar por tipo de tratamiento
treatment_effectiveness = aggregate(WeightChange ~ Treat, data = anorexia, FUN = mean)
names(treatment_effectiveness) = c("Tratamiento", "Cambio de Peso")
print(treatment_effectiveness)
##   Tratamiento Cambio de Peso
## 1         CBT       3.006897
## 2        Cont      -0.450000
## 3          FT       7.264706

De estos resultados, FT es claramente el tratamiento más efectivo en términos de ganancia de peso promedio entre los pacientes con anorexia en esta muestra.

  1. ¿Cuantos pacientes ganaron y cuantos perdieron peso?
anorexia$WeightStatus = ifelse(anorexia$WeightChange > 0, "Ganaron",
                            ifelse(anorexia$WeightChange < 0, "Perdieron", "Sin Cambio"))
table(anorexia$WeightStatus)
## 
##    Ganaron  Perdieron Sin Cambio 
##         42         29          1
  1. Grafique el punto b de forma adecuada
ggplot(data = as.data.frame(table(anorexia$WeightStatus)), aes(x = Var1, y = Freq, fill = Var1)) +
  geom_bar(stat = "identity") +
  labs(title = "Cambio de Peso en Pacientes con Anorexia",
       x = "Estado del Peso",
       y = "Número de Pacientes") +
  scale_fill_brewer(palette = "Pastel1") +
  theme_minimal() +
  theme(legend.position = "none") 

  1. La base de datos MASS posee la siguiente base de datos: “Melanoma” que contiene 205 pacientes con melanomas y 7 columnas.
data("Melanoma")
  1. Obtenga el número de fallecidos por Melanoma y otras causas.
melanoma_deaths = sum(Melanoma$status == 1)
other_causes_deaths = sum(Melanoma$status == 3)
## [1] "Fallecidos por Melanoma: 57"
## [1] "Fallecidos por otras causas: 14"
  1. Determine la presencia y ausencia de Melanoma.
melanoma_presence = sum(Melanoma$ulcer == 1)
melanoma_absence = sum(Melanoma$ulcer == 0)
## [1] "Presencia de Melanoma: 90"
## [1] "Ausencia de Melanoma: 115"
  1. ¿Que Relación entre tamaño de tumor y muerte?
Melanoma$death = ifelse(Melanoma$status != 2, 1, 0)
cor.test(Melanoma$thickness, Melanoma$death)
## 
##  Pearson's product-moment correlation
## 
## data:  Melanoma$thickness and Melanoma$death
## t = 4.7151, df = 203, p-value = 4.484e-06
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
##  0.1851147 0.4325902
## sample estimates:
##       cor 
## 0.3141798

El análisis de correlación de Pearson entre el grosor del tumor y la muerte ha arrojado un coeficiente de correlación de 0.3142, con un valor p significativamente pequeño de aproximadamente 4.484e-06. Esto indica que existe una relación estadísticamente significativa entre el grosor del tumor y la muerte, aunque la correlación no es extremadamente fuerte.

El intervalo de confianza del 95% para el coeficiente de correlación va de aproximadamente 0.1851 a 0.4326, lo que implica que se puede estar razonablemente seguro de que la correlación positiva es diferente de cero y que hay una asociación positiva entre el grosor del tumor y el riesgo de muerte: a medida que aumenta el grosor del tumor, también parece aumentar el riesgo de muerte.

  1. Grafique el punto b de forma adecuada.
resultados = c(melanoma_presence, melanoma_absence)
nombres = c("Presencia", "Ausencia")
data_melanoma = data.frame(Estado = nombres, Cantidad = resultados)

ggplot(data_melanoma, aes(x = Estado, y = Cantidad, fill = Estado)) +
  geom_bar(stat = "identity") +
  labs(title = "Presencia y Ausencia de Melanoma",
       x = "Estado",
       y = "Número de Pacientes") +
  theme_minimal() +
  scale_fill_manual(values = c("Presencia" = "blue", "Ausencia" = "red")) 

  1. La base de datos UsingR posee la siguiente base de datos: “babyboom” que contiene la estadística de nacimiento de 44 bebes en un periodo de 24 horas con peso y sexo, con 4 columnas.
data("babyboom")
  1. ¿Cual es el número de niños y niñas?
gender_counts = table(babyboom$gender)
names(gender_counts) = c("Niñas", "Niños")
## Niñas Niños 
##    18    26
  1. ¿Cual es la cantidad de niños nacidos en las primeras 12h?
# 720 minutos = 12 horas
boys_first_12h = sum(babyboom$clock.time <= 720 & babyboom$gender == "boy")
girl_first_12h = sum(babyboom$clock.time <= 720 & babyboom$gender == "girl")
## [1] "Número de niños nacidos en las primeras 12 horas: 6"
## [1] "Número de niñas nacidos en las primeras 12 horas: 4"
## [1] "Total de nacidos en las primeras 12 horas: 10"
  1. ¿Cuantos niños nacieron por debajo de 3000gr?
boys_under_3000g = sum(babyboom$wt < 3000 & babyboom$gender == "boy")
girls_under_3000g = sum(babyboom$wt < 3000 & babyboom$gender == "girl")
## [1] "Número de niños nacidos con un peso inferior a 3000 gramos: 4"
## [1] "Número de niñas nacidos con un peso inferior a 3000 gramos: 5"
  1. ¿Relación entre peso por debajo de 3000gr y sexo?
babyboom$low_weight = ifelse(babyboom$wt < 3000, "<3000g", ">=3000g")
table(babyboom$gender, babyboom$low_weight)
##       
##        <3000g >=3000g
##   girl      5      13
##   boy       4      22
  1. ¿Grafique el promedio de pesos total, de niños y de niñas de forma adecuada?
# Calcular los promedios de peso total, de niños y de niñas
prom_total = mean(babyboom$wt)
prom_boys = mean(babyboom$wt[babyboom$gender == 'boy'])
prom_girls = mean(babyboom$wt[babyboom$gender == 'girl'])

average_weights = data.frame(
  Categoria = c('Total', 'Niños', 'Niñas'),
  Peso_promedio = c(prom_total, prom_boys, prom_girls)
)

print(average_weights)
##   Categoria Peso_promedio
## 1     Total      3275.955
## 2     Niños      3375.308
## 3     Niñas      3132.444
ggplot(average_weights, aes(x = Categoria, y = Peso_promedio, fill = Categoria)) +
  geom_bar(stat = "identity") +
  labs(title = "Peso medio de los bebés", x = "Categoria", y = "Peso medio (gramos)") +
  scale_fill_brewer(palette = "Pastel1") +
  theme_minimal()

  1. La base de datos UsingR posee la siguiente base de datos: “Aids2” que contiene la estadística de 2843 pacientes con sida con 4 columnas.
data("Aids2")
  1. Determine en número de contagios por estado.
contagios_estado = table(Aids2$state)
print(contagios_estado)
## 
##   NSW Other   QLD   VIC 
##  1780   249   226   588
  1. ¿Cuanto es el número de fallecidos?
number_fall = sum(Aids2$status == "D")
## [1] "Número de fallecidos: 1761"
  1. ¿Cual es la relación entre sexo y tipo de transmisión?
table(Aids2$sex, Aids2$T.categ)
##    
##       hs hsid   id  het haem blood mother other
##   F    1    0   20   20    0    37      4     7
##   M 2464   72   28   21   46    57      3    63
  1. ¿Grafique de forma adecuada los tipos de transmisión?
transmission_counts = table(Aids2$T.categ)

transmission_df = as.data.frame(transmission_counts)
names(transmission_df) = c("transmision", "Count")

ggplot(transmission_df, aes(x = "", y = Count, fill = transmision)) +
  geom_bar(width = 1, stat = "identity") +
  coord_polar(theta = "y") +
  labs(title = "Distribución de Tipos de Transmisión de SIDA",
       x = NULL,
       y = NULL) +
  theme_void() +
  scale_fill_brewer(palette = "Pastel1") +
  theme(legend.title = element_blank())

  1. La base de datos UsingR posee la siguiente base de datos: “crime” que contiene la tasa de crímenes de 50 estados de los E.E.U.U en los años 1983 y 1993, posee 3 columnas: Estado (no marcado), y1983, y1993. Se requiere un informe con los siguientes puntos.
data("crime")
  1. La tasa total en 1993 fue mayor o menor que en 1983.
total_crime_1983 = round(sum(crime$y1983))
total_crime_1993 = round(sum(crime$y1993))
## [1] "Total de crímenes en 1983: 22313"
## [1] "Total de crímenes en 1993: 30948"
## [1] "La tasa total de crímenes en 1993 fue mayor que en 1983."
  1. Qué estado presenta la mayor tasa de crímenes en cada año.
crime = cbind(state = rownames(crime), crime)

max_crime_1983 = max(crime$y1983, na.rm = TRUE)
state_max_1983 = crime$state[crime$y1983 == max_crime_1983]

max_crime_1993 = max(crime$y1993, na.rm = TRUE)
state_max_1993 = crime$state[crime$y1993 == max_crime_1993]
## El Estado con mayor índice de delincuencia en 1983 es: DC con 1985.4
## El Estado con mayor índice de delincuencia en 1993 es: DC con 2832.8
  1. Que estado presenta la mayor tasa de crimen acumulado en ambos años.
crime = crime %>%
  mutate(total_crime = y1983 + y1993)

state_with_max_crime = crime %>%
  filter(total_crime == max(total_crime)) %>%
  select(state, total_crime)

print(state_with_max_crime)
##    state total_crime
## DC    DC      4818.2
  1. Gráfica el punto b de forma adecuada.
crime_long = crime %>%
  pivot_longer(cols = starts_with("y"), names_to = "Año", values_to = "rate")

ggplot(crime_long, aes(x = state, y = rate, fill = Año)) +
  geom_bar(stat = "identity", position = "dodge") +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.4)) +
  labs(title = "Tasas de Crimen por Estado y Año",
       x = "Estado",
       y = "Tasa de Crimen") +
  scale_fill_brewer(palette = "Set1")+
  theme(plot.title = element_text(hjust = 0.5), # Centra el título
  axis.title = element_text(face = "bold"), # Títulos de ejes en negrita
  legend.position = "bottom")