url <- 'https://raw.githubusercontent.com/moderndive/moderndive/master/data-raw/kc_house_data.csv'
house_prices <- read.csv(url)
head(house_prices)
##           id            date   price bedrooms bathrooms sqft_living sqft_lot
## 1 7129300520 20141013T000000  221900        3      1.00        1180     5650
## 2 6414100192 20141209T000000  538000        3      2.25        2570     7242
## 3 5631500400 20150225T000000  180000        2      1.00         770    10000
## 4 2487200875 20141209T000000  604000        4      3.00        1960     5000
## 5 1954400510 20150218T000000  510000        3      2.00        1680     8080
## 6 7237550310 20140512T000000 1225000        4      4.50        5420   101930
##   floors waterfront view condition grade sqft_above sqft_basement yr_built
## 1      1          0    0         3     7       1180             0     1955
## 2      2          0    0         3     7       2170           400     1951
## 3      1          0    0         3     6        770             0     1933
## 4      1          0    0         5     7       1050           910     1965
## 5      1          0    0         3     8       1680             0     1987
## 6      1          0    0         3    11       3890          1530     2001
##   yr_renovated zipcode     lat     long sqft_living15 sqft_lot15
## 1            0   98178 47.5112 -122.257          1340       5650
## 2         1991   98125 47.7210 -122.319          1690       7639
## 3            0   98028 47.7379 -122.233          2720       8062
## 4            0   98136 47.5208 -122.393          1360       5000
## 5            0   98074 47.6168 -122.045          1800       7503
## 6            0   98053 47.6561 -122.005          4760     101930
#readxlsx
#readr
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
glimpse(house_prices) #Organiza la base de datos para que se vea mas bonita
## Rows: 21,613
## Columns: 21
## $ id            <dbl> 7129300520, 6414100192, 5631500400, 2487200875, 19544005…
## $ date          <chr> "20141013T000000", "20141209T000000", "20150225T000000",…
## $ price         <dbl> 221900, 538000, 180000, 604000, 510000, 1225000, 257500,…
## $ bedrooms      <int> 3, 3, 2, 4, 3, 4, 3, 3, 3, 3, 3, 2, 3, 3, 5, 4, 3, 4, 2,…
## $ bathrooms     <dbl> 1.00, 2.25, 1.00, 3.00, 2.00, 4.50, 2.25, 1.50, 1.00, 2.…
## $ sqft_living   <int> 1180, 2570, 770, 1960, 1680, 5420, 1715, 1060, 1780, 189…
## $ sqft_lot      <int> 5650, 7242, 10000, 5000, 8080, 101930, 6819, 9711, 7470,…
## $ floors        <dbl> 1.0, 2.0, 1.0, 1.0, 1.0, 1.0, 2.0, 1.0, 1.0, 2.0, 1.0, 1…
## $ waterfront    <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ view          <int> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,…
## $ condition     <int> 3, 3, 3, 5, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 3, 3, 3, 4, 4,…
## $ grade         <int> 7, 7, 6, 7, 8, 11, 7, 7, 7, 7, 8, 7, 7, 7, 7, 9, 7, 7, 7…
## $ sqft_above    <int> 1180, 2170, 770, 1050, 1680, 3890, 1715, 1060, 1050, 189…
## $ sqft_basement <int> 0, 400, 0, 910, 0, 1530, 0, 0, 730, 0, 1700, 300, 0, 0, …
## $ yr_built      <int> 1955, 1951, 1933, 1965, 1987, 2001, 1995, 1963, 1960, 20…
## $ yr_renovated  <int> 0, 1991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ zipcode       <int> 98178, 98125, 98028, 98136, 98074, 98053, 98003, 98198, …
## $ lat           <dbl> 47.5112, 47.7210, 47.7379, 47.5208, 47.6168, 47.6561, 47…
## $ long          <dbl> -122.257, -122.319, -122.233, -122.393, -122.045, -122.0…
## $ sqft_living15 <int> 1340, 1690, 2720, 1360, 1800, 4760, 2238, 1650, 1780, 23…
## $ sqft_lot15    <int> 5650, 7639, 8062, 5000, 7503, 101930, 6819, 9711, 8113, …
  1. ¿Cuál es la media del precio de las viviendas (price)?
mean(house_prices$price,  na.rm=TRUE)
## [1] 540088.1
  1. ¿Qué medida se utiliza para describir el valor central cuando hay valores atípicos extremos? La medida que se utiliza para describir el valor central cuando hay valores atípicos extremos es la \(mediana\) ya que esta no es afectada por los valores extremos.

  2. Calcula la desviación estándar de la variable sqft_living (área habitable). ¿Qué indica este valor en este contexto?

sd(house_prices$sqft_living)
## [1] 918.4409

La desviación estándar mide cuánto varía el área habitable de las casas respecto a la media. Si el valor es alto, significa que hay mucha variación en el tamaño de las casas (algunas son muy pequeñas y otras muy grandes). Si el valor es bajo, indica que las casas tienen tamaños más uniformes o similares entre sí.

    1. ¿Cuál de las siguientes variables tiene mayor dispersión: price, sqft_lot, bedrooms? Justifica tu respuesta con base en medidas de dispersión.
sd(house_prices$price)
## [1] 367127.2
sd(house_prices$sqft_lot)
## [1] 41420.51
sd(house_prices$bedrooms)
## [1] 0.9300618

La variable que tiene mayor dispersión en los datos es sqft_lot.

  1. ¿Qué variable presenta mayor número de ceros: sqft_basement o yr_renovated?
sum(house_prices$sqft_basement ==0)
## [1] 13126
sum(house_prices$yr_renovated ==0)
## [1] 20699

La variable que presenta mayor numero de ceros es yr_renovated

  1. ¿Qué tipo de gráfico usarías para representar la distribución de price? Realizar el grafico Usaria un histograma para representar la distribución de price
hist(house_prices$price, 
     col = "yellow", 
     main = "Distribución del precio de las casas", 
     xlab = "Precio", 
     ylab = "Frecuencia")

  1. Dibuja un histograma para la variable sqft_living. Describe brevemente la forma de la distribución.
hist(house_prices$sqft_living,
     col = "lightblue",
     main = "Histograma del área habitable",
     xlab = "Área habitable ",
     ylab = "Frecuencia"
    )

    1. Construye un boxplot de la variable price según la variable waterfront. ¿Qué muestra este gráfico respecto al precio de casas con vista al agua vs sin vista?
# Configurar la cuadrícula: 2 filas, 2 columnas 
par(mfrow = c(1, 2))  # 1 fila, 2 gráficos uno al lado del otro

# Primer gráfico: Boxplot del precio
boxplot(house_prices$price,
        col = "skyblue",
        main = "Gráfico 1: price",
        ylab = "Precio")

# Segundo gráfico: Boxplot de la variable 'waterfront'
boxplot(house_prices$waterfront,
        col = "salmon",
        main = "Gráfico 2: waterfront",
        ylab = "Presencia de waterfront")

# Restaurar la disposición gráfica a 1 gráfico por defecto
par(mfrow = c(1, 1))
  1. calcular la media, mediana y desviación estándar del precio (price). Describir el significado
mean(house_prices$price)
## [1] 540088.1
median(house_prices$price)
## [1] 450000
sd(house_prices$price)
## [1] 367127.2

La media calcula el valor central de los datos en este caso el valor de los precios.

La mediana esta encontrando el valor central de los datos ordenados. Es un buen indicador del precio típico si los datos están sesgados (por ejemplo, si hay muchos precios bajos y pocos precios muy altos).

La desviacion estandar nos indica que tan dispersos estan los datos en este caso comparandola con la media se puede decir que los datos no estan tan dispersos.