Tarea Opcional

Author

Ismael Villalta

Laboratorio

Comandos Básicos

 x <- c(1, 3, 2, 5)
 x
[1] 1 3 2 5
x= c(1, 6, 2)
x
[1] 1 6 2
y= c(1, 4, 3)
length(x)
[1] 3
length(y)
[1] 3
ls()
[1] "has_annotations" "x"               "y"              
rm(x, y)
ls()
[1] "has_annotations"
character(0)
character(0)
rm(list = ls())
?matrix
starting httpd help server ... done
x <- matrix(data = c(1, 2, 3, 4), nrow = 2, ncol = 2)
x
     [,1] [,2]
[1,]    1    3
[2,]    2    4
 x <- matrix(c(1, 2, 3, 4), 2, 2)
matrix(c(1, 2, 3, 4), 2, 2, byrow = TRUE)
     [,1] [,2]
[1,]    1    2
[2,]    3    4
sqrt(x)
         [,1]     [,2]
[1,] 1.000000 1.732051
[2,] 1.414214 2.000000
x <- rnorm(50)
y <- x + rnorm(50, mean = 50, sd = .1)
cor(x, y)
[1] 0.995348
set.seed(1303)
rnorm(50)
 [1] -1.1439763145  1.3421293656  2.1853904757  0.5363925179  0.0631929665
 [6]  0.5022344825 -0.0004167247  0.5658198405 -0.5725226890 -1.1102250073
[11] -0.0486871234 -0.6956562176  0.8289174803  0.2066528551 -0.2356745091
[16] -0.5563104914 -0.3647543571  0.8623550343 -0.6307715354  0.3136021252
[21] -0.9314953177  0.8238676185  0.5233707021  0.7069214120  0.4202043256
[26] -0.2690521547 -1.5103172999 -0.6902124766 -0.1434719524 -1.0135274099
[31]  1.5732737361  0.0127465055  0.8726470499  0.4220661905 -0.0188157917
[36]  2.6157489689 -0.6931401748 -0.2663217810 -0.7206364412  1.3677342065
[41]  0.2640073322  0.6321868074 -1.3306509858  0.0268888182  1.0406363208
[46]  1.3120237985 -0.0300020767 -0.2500257125  0.0234144857  1.6598706557
 set.seed(3)
 y <- rnorm(100)
 mean(y)
[1] 0.01103557
 var(y)
[1] 0.7328675
 sqrt(var(y))
[1] 0.8560768
 sd(y)
[1] 0.8560768

Ejercicios

Conceptuales

Para cada una de las partes (a) a (d), indique si generalmente esperar que el rendimiento de un método de aprendizaje estadístico flexible sea mejor o peor que un método inflexible. Justifica tu respuesta.

a El tamaño de la muestra n es extremadamente grande y el número de predictores p es pequeño.

b El número de predictores p es extremadamente grande y el número de observaciones n es pequeño.

c La relación entre los predictores y la respuesta es altamente no lineal.

d La varianza de los términos de error, es decir, σ2 = Var(“), es extremadamente alto.

#(a) mejor - un enfoque más flexible se ajustará más a los datos y con el gran tamaño de la muestra se obtendría un mejor ajuste que con un enfoque inflexible

#(b) peor - un método flexible se ajustaría en exceso al reducido número de observaciones

#(c) mejor - con más grados de libertad, un modelo flexible obtendría un mejor ajuste

#(d) peor - los métodos flexibles se ajustan al ruido en los términos de error y aumentan la varianza

  1. Explique si cada escenario es un problema de clasificación o de regresión, e indique si nos interesa más la inferencia o la predicción. Por último, indique n y p.
  1. Recopilamos un conjunto de datos sobre las 500 principales frms de EE.UU.. Para cada Para cada empresa, registramos los ingresos, el número de empleados, el sector y el salario del director general. y el salario del director general. Nos interesa saber qué factores afectan al salario del CEO.
  2. Estamos pensando en lanzar un nuevo producto y queremos saber si será un éxito o un fracaso. Recopilamos datos sobre 20 productos similares lanzados anteriormente. Para cada producto hemos registrado si fue un éxito o un fracaso, el precio cobrado por el producto, el presupuesto de marketing, el precio de la competencia y otras diez variables.
  3. Nos interesa predecir el % de variación del tipo de cambio USD/Euro en relación con la evolución semanal de las bolsas mundiales. mundiales. Por lo tanto, recogemos datos semanales para todo el año 2012. Para cada semana registramos el % de cambio del USD/Euro, el % de de cambio en el mercado estadounidense, el % de cambio en el mercado británico y el % de variación del mercado alemán.

#2. (a) regresión. inferencia. resultado cuantitativo del salario del CEO basado en las características de la empresa. #n - 500 empresas en EE.UU. #p - beneficios, número de empleados, sector

#(b) clasificación. predicción. predicción del éxito o fracaso de un nuevo producto. #n - 20 productos similares lanzados anteriormente #p - precio cobrado, presupuesto de marketing, precio compra., otras variables

#(c) regresión. predicción. resultado cuantitativo de % de cambio #n - 52 semanas de datos semanales de 2012 #p - % de cambio en el mercado estadounidense, % de cambio en el mercado británico, % de cambio en el mercado alemán

  1. Proporcione un esquema de las curvas típicas (al cuadrado) de sesgo, varianza, error de entrenamiento, error de prueba y error de Bayes (o irreducible), en un único gráfico, a medida que pasamos de métodos de aprendizaje estadístico menos fexibles hacia enfoques más flexibles. El eje x debería representar la cantidad de fexibilidad en el método, y el eje y debería representar los valores de cada curva. Debe haber cinco curvas. Asegúrate de etiquetar cada una de ellas.

  2. Explique por qué cada una de las cinco curvas tiene la forma mostrada en la parte

    (a).

    #3.(b) las 5 líneas >= 0 #i. sesgo (al cuadrado) - disminuye de manera monotónica porque el aumento de la flexibilidad produce un ajuste más preciso #ii. varianza - aumenta de forma monotónica porque al aumentar la flexibilidad se produce unsobreajuste #iii. error de entrenamiento - disminuye monotónicamente porque el aumento de la flexibilidad produce un ajuste más preciso #iv. error de prueba - curva cóncava ascendente porque el aumento de la flexibilidad produce un ajuste antes de sobreajustarse #v. Error de Bayes (irreducible) - define el límite inferior, el error de prueba está limitado por el error irreducible debido a la varianza del error (épsilon) en los valores de salida (0 <= valor). de salida (0 <= valor). Cuando el error de entrenamiento es inferior al error irreducible se ha producido un sobreajuste. La tasa de error de Bayes se define para los problemas de clasificación y viene determinada por la proporción de puntos de datos que se encuentran en el lado “erróneo” de la frontera de decisión, (0 <= valor < 1).

  1. Piense ahora en algunas aplicaciones reales del aprendizaje estadístico.
  1. Describa tres aplicaciones de la vida real en las que la clasificación pueda ser útil. ser útil. Describa la respuesta, así como los predictores. El objetivo de cada aplicación es la inferencia o la predicción? Explique su respuesta.

  2. Describa tres aplicaciones de la vida real en las que la regresión podría ser útil. ser útil. Describa la respuesta, así como los predictores. ¿Es elobjetivo de cada aplicación es la inferencia o la predicción? Explique surespuesta.

  3. Describa tres aplicaciones de la vida real en las que el análisis cluster puede ser útil.

    #4. (a) i. dirección de la cotización bursátil, predicción, respuesta: al alza, a la baja,datos de entrada: % de variación del precio de ayer, % de variación del precio de los dos días anteriores, etc. cambio, etc.

    #ii. clasificación de enfermedades, inferencia, respuesta: enfermo, sano, entrada: frecuencia cardíaca en reposo, frecuencia respiratoria en reposo, distancia recorrida en una milla, etc.

    #iii. sustitución de piezas de automóvil, predicción, respuesta: hay que sustituir, bien, #input: edad de la pieza, kilometraje utilizado, amperaje actual

    #(b) i.salario del director general. inferencia. predictores: edad, experiencia en la industria, industria,años de educación.

    #ii.sustitución de piezas del coche. inferencia. respuesta: vida útil de la pieza. predictores: edad de la pieza, kilometraje utilizado, amperaje actual.

    #iii. clasificación de enfermedades, predicción, respuesta: edad de fallecimiento,entrada: edad actual, sexo, frecuencia cardiaca en reposo, frecuencia respiratoria en reposo, kilometraje recorrido

    #(c)i. agrupación de tipos de cáncer. diagnosticar tipos de cáncer con mayor precisión.

    #ii. Netflix movie recommendations. recomendar películas basándose en los usuarios que han han visto y valorado películas similares.

    #iii. encuesta de marketing. agrupación de datos demográficos de un producto o productos para ver qué grupos de consumidores compran qué productos.

  1. ¿Cuáles son las ventajas y los inconvenientes de un enfoque mucho menos flexible) para la regresión o la clasificación? ¿En qué circunstancias puede ser preferible un enfoque más fexible a uno menos fexible? ¿En qué casos puede ser preferible un enfoque menos fexible?

    #5. Las ventajas de un enfoque muy flexible para la regresión o la clasificación son la obtención de un mejor ajuste de los modelos no lineales y la disminución del sesgo.

    #Las desventajas de un enfoque muy flexible para la regresión o clasificación de parámetros, seguir el ruido demasiado de cerca (sobreajuste) y aumentar la varianza.

    #Un enfoque más flexible sería preferible a uno menos flexible cuando nos cuando lo que nos interesa es la predicción y no la interpretabilidad de los resultados.

    #Es preferible un enfoque menos flexible a uno más flexible cuando lo que nos interesa es la inferencia y no la interpretabilidad de los resultados.

  1. Describa las diferencias entre un enfoque de aprendizaje estadístico paramétrico y no paramétrico. aprendizaje estadístico. ¿Cuáles son las ventajas de un enfoque paramétrico de la regresión o la clasificación (frente a un enfoque no paramétrico)? ¿Cuáles son sus desventajas?

    #6. Un enfoque paramétrico reduce el problema de estimar f a uno de a la estimación de un conjunto de parámetros porque asume una forma para f. #Un enfoque no paramétrico no asume una forma funcional para f, por lo que requiere un gran número de observaciones para estimar f con precisión. #Las ventajas de un enfoque paramétrico de la regresión o la clasificación son la simplificación del modelado de f a unos pocos parámetros y no se requieren tantas observaciones en comparación con un enfoque no paramétrico. #Las desventajas de un enfoque paramétrico de la regresión o la clasificación son la posibilidad de estimar f de forma imprecisa si la forma de f asumida es incorrecta o sobreajustar las observaciones si se utilizan modelos más flexibles.

  1. La tabla siguiente proporciona un conjunto de datos de entrenamiento que contiene seis observaciones, tres predictores y una variable de respuesta cualitativa.
  1. Obs. X1 X2 X3 Y

    1 0 3 0 Red

    2 2 0 0 Red

    3 0 1 3 Red

    4 0 1 2 Green

    5 -1 0 1 Green

    6 1 1 1 Red

Supongamos que deseamos utilizar este conjunto de datos para hacer una predicción de Y cuando X1 = X2 = X3 = 0 utilizando K vecinos más cercanos. (a) Calcule la distancia euclídea entre cada observación y el punto de prueba, X1 = X2 = X3 = 0.

(b) ¿Cuál es nuestra predicción con K = 1? ¿Por qué?

(c) ¿Cuál es nuestra predicción con K = 3? ¿Por qué? (d) Si la frontera de decisión de Bayes en este problema es altamente no lineal, entonces ¿esperaríamos que el mejor valor para K fuera grande o pequeño? ¿Por qué?

##Respuesta (a)

euclidean_distance <- function(q, p) sqrt(sum((q - p)^2))

obs_test <- c( 0, 0, 0)

obs_train <- list(
  obs_01 = c( 0, 3, 0),
  obs_02 = c( 2, 0, 0),
  obs_03 = c( 0, 1, 3),
  obs_04 = c( 0, 1, 2),
  obs_05 = c(-1, 0, 0),
  obs_06 = c( 1, 1, 1)
)

lapply(obs_train, function(x) euclidean_distance(obs_test, x))
$obs_01
[1] 3

$obs_02
[1] 2

$obs_03
[1] 3.162278

$obs_04
[1] 2.236068

$obs_05
[1] 1

$obs_06
[1] 1.732051
  #    Obs.   X1   X2   X3  Distance(0, 0, 0)   Y
   #    ---------------------------------------------
    #   1      0    3    0   3                   Red 
     #  2      2    0    0   2                   Red
      # 3      0    1    3   3.16227             Red
       #4      0    1    2   2.23606          Green
       #5      -1   0    1   1                Green
       #6      1    1    1   1.73205             Red


#(b) Verde. La observación nº 5 es la vecina más cercana para K = 1.

#(c) Rojo. Las observaciones #2, 5, 6 son las vecinas más cercanas para K = 3. 2 es Roja, 5 es Verde, y 6 es Roja.

#(d) Pequeño. Un K pequeño sería flexible para un límite de decisión no lineal, mientras que una K grande trataría de ajustarse a un límite más lineal porque tiene en cuenta más puntos. puntos en consideración.

Aplicado

8. Este ejercicio se refiere al conjunto de datos College, que puede encontrarse en College.csv en el sitio web del libro. Contiene una serie de variables de 777 universidades y escuelas universitarias diferentes de Estados Unidos. Las variables son - Privada : Indicador público/privado - Apps : Número de solicitudes recibidas - Accept : Número de solicitantes aceptados - Enroll : Número de nuevos estudiantes matriculados - Top10perc : Alumnos nuevos del 10 % de los mejores de la clase de bachillerato - Top25perc : Nuevos estudiantes del 25% de los mejores de la clase de bachillerato - F.Undergrad : Número de estudiantes universitarios a tiempo completo - P.Undergrad : Número de estudiantes a tiempo parcial 2.4 Ejercicios 55 - Outstate : Matrícula fuera del estado - Room.Board : Costes de alojamiento y manutención - Libros : Gastos estimados en libros - Personal : Gastos personales estimados - PhD : Porcentaje de profesores con doctorado - Terminal : Porcentaje de profesores con título terminal - S.F.Ratio : Ratio estudiante/profesor - perc.alumni : Porcentaje de antiguos alumnos donantes - Expend : Gasto en formación por estudiante - Grad.Rate : Tasa de graduación Antes de leer los datos en R, pueden visualizarse en Excel o en un editor de texto. de texto.

  1. Utilice la función read.csv() para leer los datos en R. Llame a la universidad de datos cargada. Asegúrese de que tiene el directorio establecido en la ubicación correcta para los datos.
  2. Observa los datos utilizando la función View(). Debería observar que la primera columna es sólo el nombre de cada universidad. No queremos realmente queremos que R trate esto como dato. Sin embargo, puede ser útil tener estos nombres para más tarde. Pruebe los siguientes comandos: > rownames(college) <- college[, 1] > View(college)

Debería ver que ahora hay una columna row.names con el nombre de cada universidad. Esto significa que R ha dado a cada fila un nombre correspondiente a la universidad apropiada. R no intentará realizar cálculos con los nombres de las filas. Sin embargo,todavía tenemos que eliminar la primera columna de los datos donde se almacenan los nombres. los nombres. Pruebe: > college <- college[, -1] > View(college)

Ahora debería ver que la primera columna de datos es Privado. Observe en que ahora aparece otra columna llamada row.names antes de la columna Private. Sin embargo, ésta no es una columna de datos, sino más bien el nombre que R da a cada fila

    1. Utilice la función summary() para producir un resumen numérico de las variables del conjunto de datos.
  1. Utilice la función pairs() para producir una matriz de dispersión de de las diez primeras columnas o variables de los datos. Recuerde que puede hacer referencia a las diez primeras columnas de una matriz A utilizando A[,1:10].
  2. Utilice la función plot() para producir gráficos de caja paralelos de Estado externo frente a Privado.
  3. Cree una nueva variable cualitativa, denominada Elite la variable Top10perc. Vamos a dividir las universidades en dos grupos en función de si la proporción de de estudiantes que proceden del 10 % más alto de su superior supera el 50%.

Elite <- rep(“No”, nrow(college))

Elite[college$Top10perc > 50] <- “Yes”

Elite <- as.factor(Elite) college <- data.frame(college, Elite)

Utilice la función summary() para ver cuántas universidades de élite hay. Utilice ahora la función plot() para obtener boxplots paralelos de Outstate frente a Elite. v. Utilice la función hist() para producir algunos histogramas con diferentes números de intervalos para algunas de las variables cuantitativas. Puede que le resulte útil el comando par(mfrow = c(2,2)) dividirá la ventana de impresión en cuatro regiones para que para poder realizar cuatro gráficos simultáneamente. Modificando los argumentos de esta función dividirá la pantalla de otras formas. vi. Siga explorando los datos y haga un breve resumen de lo que descubra.

#(a)
college = read.csv("C:\\Users\\raule\\OneDrive\\Escritorio\\DOCUMENTOS\\I.A\\College.csv")
# 8. (b)
View(college)
rownames(college) <- college[, 1] 
college <- college[, -1]
# 8. (c)
# i.
summary(college)
   Private               Apps           Accept          Enroll    
 Length:777         Min.   :   81   Min.   :   72   Min.   :  35  
 Class :character   1st Qu.:  776   1st Qu.:  604   1st Qu.: 242  
 Mode  :character   Median : 1558   Median : 1110   Median : 434  
                    Mean   : 3002   Mean   : 2019   Mean   : 780  
                    3rd Qu.: 3624   3rd Qu.: 2424   3rd Qu.: 902  
                    Max.   :48094   Max.   :26330   Max.   :6392  
   Top10perc       Top25perc      F.Undergrad     P.Undergrad     
 Min.   : 1.00   Min.   :  9.0   Min.   :  139   Min.   :    1.0  
 1st Qu.:15.00   1st Qu.: 41.0   1st Qu.:  992   1st Qu.:   95.0  
 Median :23.00   Median : 54.0   Median : 1707   Median :  353.0  
 Mean   :27.56   Mean   : 55.8   Mean   : 3700   Mean   :  855.3  
 3rd Qu.:35.00   3rd Qu.: 69.0   3rd Qu.: 4005   3rd Qu.:  967.0  
 Max.   :96.00   Max.   :100.0   Max.   :31643   Max.   :21836.0  
    Outstate       Room.Board       Books           Personal   
 Min.   : 2340   Min.   :1780   Min.   :  96.0   Min.   : 250  
 1st Qu.: 7320   1st Qu.:3597   1st Qu.: 470.0   1st Qu.: 850  
 Median : 9990   Median :4200   Median : 500.0   Median :1200  
 Mean   :10441   Mean   :4358   Mean   : 549.4   Mean   :1341  
 3rd Qu.:12925   3rd Qu.:5050   3rd Qu.: 600.0   3rd Qu.:1700  
 Max.   :21700   Max.   :8124   Max.   :2340.0   Max.   :6800  
      PhD            Terminal       S.F.Ratio      perc.alumni   
 Min.   :  8.00   Min.   : 24.0   Min.   : 2.50   Min.   : 0.00  
 1st Qu.: 62.00   1st Qu.: 71.0   1st Qu.:11.50   1st Qu.:13.00  
 Median : 75.00   Median : 82.0   Median :13.60   Median :21.00  
 Mean   : 72.66   Mean   : 79.7   Mean   :14.09   Mean   :22.74  
 3rd Qu.: 85.00   3rd Qu.: 92.0   3rd Qu.:16.50   3rd Qu.:31.00  
 Max.   :103.00   Max.   :100.0   Max.   :39.80   Max.   :64.00  
     Expend        Grad.Rate     
 Min.   : 3186   Min.   : 10.00  
 1st Qu.: 6751   1st Qu.: 53.00  
 Median : 8377   Median : 65.00  
 Mean   : 9660   Mean   : 65.46  
 3rd Qu.:10830   3rd Qu.: 78.00  
 Max.   :56233   Max.   :118.00  
# ii.
college[,1] = as.numeric(factor(college[,1]))
pairs(college[,1:10])

# iii.
plot(Outstate ~ Private, data = college, 
     xlab = "Universidad Privada", 
     ylab = "Matricula en  $")

# iv.
Elite <- rep("No", nrow(college))
Elite[college$Top10perc > 50] <- "Si"
Elite <- as.factor(Elite)
college <- data.frame(college, Elite)
college$Elite <- as.factor(ifelse(college$Top10perc > 50, "Si", "No"))
summary(Elite)
 No  Si 
699  78 
plot(Outstate ~ Elite, data = college, 
     xlab = "Universidad de Élite", 
     ylab = "Matricula en  $")

# v.
par(mfrow=c(2,2))
par(mar = c(4, 4, 2, 1))  
hist(college$Apps, xlab = "Solicitudes recibidas",main = "")
hist(college$perc.alumni, col=2, xlab = "% exalumnos que donan", main = "")
hist(college$S.F.Ratio, col=3, breaks=10, xlab = "Proporción estudiantes/profesores", main = "")
hist(college$Expend, breaks=100, xlab = "Gastos de enseñanza por estudiante", main = "")

par(mfrow = c(1, 1))
#vi
row.names(college)[which.max(college$Top10perc)]
[1] "Massachusetts Institute of Technology"
acceptance_rate <- college$Accept / college$Apps
row.names(college)[which.min(acceptance_rate)]  
[1] "Princeton University"
row.names(college)[which.max(acceptance_rate)]
[1] "Emporia State University"
plot(Grad.Rate ~ Outstate, data = college) 

plot(S.F.Ratio ~ I(Accept/Apps), data = college) 

plot(Grad.Rate ~ Top10perc, data = college)

  1. Este ejercicio incluye el conjunto de datos Auto estudiado en el laboratorio. Asegúrese de que los valores que faltan se han eliminado de los datos.
  1. ¿Cuáles de los predictores son cuantitativos y cuáles cualitativos?
  2. ¿Cuál es el rango de cada predictor cuantitativo? Puede responder a esta pregunta utilizando la función range(). range()
  3. ¿Cuál es la media y la desviación típica de cada predictor cuantitativo? cuantitativo?
  4. Ahora elimine las observaciones 10ª a 85ª. ¿Cuál es el rango, la media y la desviación típica de cada predictor en el en el subconjunto de datos restante?
  5. Utilizando el conjunto de datos completo, investigue los predictores gráficamente, utilizando gráficos de dispersión u otras herramientas de su elección. Cree algunos gráficos que destaquen las relaciones entre los predictores. Comente tus resultados.
  6. Supongamos que queremos predecir el kilometraje de la gasolina (mpg) en función de otras variables de las demás variables. ¿Sugieren sus gráficos que alguna de las otras variables podría ser útil para predecir el mpg? Justifique su respuesta.
#(a)
Auto = read.csv("C:\\Users\\raule\\OneDrive\\Escritorio\\DOCUMENTOS\\I.A\\Auto.csv", header=T, na.strings="?")
Auto = na.omit(Auto)
dim(Auto)
[1] 392   9
summary(Auto)
      mpg          cylinders      displacement     horsepower        weight    
 Min.   : 9.00   Min.   :3.000   Min.   : 68.0   Min.   : 46.0   Min.   :1613  
 1st Qu.:17.00   1st Qu.:4.000   1st Qu.:105.0   1st Qu.: 75.0   1st Qu.:2225  
 Median :22.75   Median :4.000   Median :151.0   Median : 93.5   Median :2804  
 Mean   :23.45   Mean   :5.472   Mean   :194.4   Mean   :104.5   Mean   :2978  
 3rd Qu.:29.00   3rd Qu.:8.000   3rd Qu.:275.8   3rd Qu.:126.0   3rd Qu.:3615  
 Max.   :46.60   Max.   :8.000   Max.   :455.0   Max.   :230.0   Max.   :5140  
  acceleration        year           origin          name          
 Min.   : 8.00   Min.   :70.00   Min.   :1.000   Length:392        
 1st Qu.:13.78   1st Qu.:73.00   1st Qu.:1.000   Class :character  
 Median :15.50   Median :76.00   Median :1.000   Mode  :character  
 Mean   :15.54   Mean   :75.98   Mean   :1.577                     
 3rd Qu.:17.02   3rd Qu.:79.00   3rd Qu.:2.000                     
 Max.   :24.80   Max.   :82.00   Max.   :3.000                     
#(b)
apply(Auto[,1:7], 2, range)
      mpg cylinders displacement horsepower weight acceleration year
[1,]  9.0         3           68         46   1613          8.0   70
[2,] 46.6         8          455        230   5140         24.8   82
#(c)
options(width = 95)
apply(Auto[,1:7], 2, mean)
         mpg    cylinders displacement   horsepower       weight acceleration         year 
   23.445918     5.471939   194.411990   104.469388  2977.584184    15.541327    75.979592 
options(width = 95)
apply(Auto[,1:7], 2, sd)
         mpg    cylinders displacement   horsepower       weight acceleration         year 
    7.805007     1.705783   104.644004    38.491160   849.402560     2.758864     3.683737 
#(d)
apply(Auto[-c(10:85),1:7], 2, range)
      mpg cylinders displacement horsepower weight acceleration year
[1,] 11.0         3           68         46   1649          8.5   70
[2,] 46.6         8          455        230   4997         24.8   82
options(width = 95)
apply(Auto[-c(10:85),1:7], 2, mean)
         mpg    cylinders displacement   horsepower       weight acceleration         year 
   24.404430     5.373418   187.240506   100.721519  2935.971519    15.726899    77.145570 
apply(Auto[-c(10:85),1:7], 2, sd)
         mpg    cylinders displacement   horsepower       weight acceleration         year 
    7.867283     1.654179    99.678367    35.708853   811.300208     2.693721     3.106217 
#(e)
pairs(Auto[,1:7])

options(width = 80)
round(cor(Auto[,1:7]), 2)
               mpg cylinders displacement horsepower weight acceleration  year
mpg           1.00     -0.78        -0.81      -0.78  -0.83         0.42  0.58
cylinders    -0.78      1.00         0.95       0.84   0.90        -0.50 -0.35
displacement -0.81      0.95         1.00       0.90   0.93        -0.54 -0.37
horsepower   -0.78      0.84         0.90       1.00   0.86        -0.69 -0.42
weight       -0.83      0.90         0.93       0.86   1.00        -0.42 -0.31
acceleration  0.42     -0.50        -0.54      -0.69  -0.42         1.00  0.29
year          0.58     -0.35        -0.37      -0.42  -0.31         0.29  1.00
boxplot(mpg ~ origin, data = Auto)

#(f)
plot(Auto$mpg, Auto$displacement)

plot(Auto$mpg, Auto$horsepower)

plot(Auto$mpg, Auto$weight)

## Mirando estos gráficos podemos decir con certeza que a menor desplazamiento, potencia y peso, mayor mpg.
  1. Este ejercicio incluye el conjunto de datos de viviendas de Boston.
  1. Para empezar, cargue el conjunto de datos de Boston. El conjunto de datos de Boston parte de la biblioteca ISLR2. > library(ISLR2)

Ahora el conjunto de datos está contenido en el objeto Boston. > Boston

Lee sobre el conjunto de datos: > Boston

¿Cuántas filas tiene este conjunto de datos? ¿Cuántas columnas? ¿Qué representan las filas y las columnas?

(b) Haz algunos diagramas de dispersión por pares de los predictores (columnas) en este conjunto de datos. Describe tus resultados.

(c) ¿Alguno de los predictores está asociado con la tasa de delincuencia per cápita? En caso afirmativo, explique la relación.

(d) ¿Alguno de los distritos censales de Boston parece tener tasas de delincuencia especialmente altas? especialmente altos? ¿Tasa de impuestos? ¿Relación alumnos-profesor? Comente el rango de cada predictor.

(e) ¿Cuántas de las secciones censales de este conjunto de datos limitan con el río Charles Charles?

(f) ¿Cuál es la mediana de la proporción alumnos-profesor entre las ciudades de este conjunto de datos? este conjunto de datos?

(g) ¿Qué sección censal de Boston tiene el valor medio más bajo de viviendas ocupadas por sus propietarios? ¿Cuáles son los valores de los demás predictores predictores para ese tramo censal, y cómo se comparan esos valores con los con los rangos generales de esos predictores? Comente sus resultados.

(h) En este conjunto de datos, ¿cuántos de los tramos censales tienen una media de más de siete habitaciones por vivienda? ¿Más de ocho habitaciones por vivienda? Comente los tramos censales con una media superior a ocho habitaciones por vivienda.

# (a) 
library(MASS)
?Boston
dim(Boston)
[1] 506  14
# (b) 
par(mfrow = c(3, 3))  

pairs(Boston[, 1:9])

# (c) Gráficos de dispersión individuales
par(mfrow = c(1, 1))  

plot(Boston$age, Boston$crim)

plot(Boston$dis, Boston$crim)

plot(Boston$rad, Boston$crim)

plot(Boston$tax, Boston$crim)

plot(Boston$ptratio, Boston$crim)

#(d)
par(mfrow = c(1, 3))  
hist(Boston$crim[Boston$crim > 1], breaks = 25)
hist(Boston$tax, breaks = 25)
hist(Boston$ptratio, breaks = 25)

# (e) 
dim(subset(Boston, chas == 1))
[1] 35 14
# (f) 
median(Boston$ptratio)
[1] 19.05
# (g)
subset(Boston, medv == min(Boston$medv))
       crim zn indus chas   nox    rm age    dis rad tax ptratio  black lstat
399 38.3518  0  18.1    0 0.693 5.453 100 1.4896  24 666    20.2 396.90 30.59
406 67.9208  0  18.1    0 0.693 5.683 100 1.4254  24 666    20.2 384.97 22.98
    medv
399    5
406    5
# (h) 
dim(subset(Boston, rm > 7))
[1] 64 14
dim(subset(Boston, rm > 8))
[1] 13 14