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, …
mean(house_prices$price, na.rm=TRUE)
## [1] 540088.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.
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í.
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.
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
hist(house_prices$price,
col = "yellow",
main = "Distribución del precio de las casas",
xlab = "Precio",
ylab = "Frecuencia")
hist(house_prices$sqft_living,
col = "lightblue",
main = "Histograma del área habitable",
xlab = "Área habitable ",
ylab = "Frecuencia"
)
# 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))
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.