Está en la página 1de 8

ESTAÍSTICA

UNIDAD2:TAREA2
Para resolver los ejercicios de esta tarea se recomienda crear un proyecto llamado
U2EST T2
1. Un entusiasta de las caminatas tiene una nueva aplicación para su teléfono inteligente que
resume sus caminatas usando un dispositivo GPS. Veamos la distancia recorrida (en km)
y la altitud máxima (en m) durante las últimas 10 caminatas:
Distancia 12,5 29,9 14,8 18,7 7,6 16,2 16,5 27,4 12,1 17,5
Altitud 342 1245 502 555 398 670 796 912 238 466

a) Calcule la media aritmética y la mediana tanto para la distancia como para la


altitud.
b) Determine el primer y tercer cuartiles para las variables de distancia y altitud.
c) Analice la forma de la distribución dados los resultados de (a) y (b).
d) Calcule el rango intercuartílico, la desviación media absoluta y la desviación
estándar para ambas variables. ¿Cuál es su conclusión sobre la variabilidad de
los datos?
e) Un metro corresponde a aproximadamente 3.28 pies. ¿Cuál es la altitud promedio
cuando se mide en pies en lugar de metros?
f) Dibuje e interprete el diagrama de caja tanto para la distancia como para la altitud.

# EJERCICIO 1
# Datos de distancia y altitud
distancia <- c(12.5, 29.9, 14.8, 18.7, 7.6, 16.2, 16.5, 27.4, 12.1, 17.5)
altitud <- c(342, 1245, 502, 555, 398, 670, 796, 912, 238, 466)

#...........LITERAL A............
media_distancia <- mean(distancia)
mediana_distancia <- median(distancia)

media_altitud <- mean(altitud)


mediana_altitud <- median(altitud)

#...........LITERAL B............
cuartiles_distancia <- quantile(distancia, probs = c(0.25, 0.75) )
cuartiles_altitud <- quantile(altitud, probs = c(0.25, 0.75) )

# c) Análisis de la forma de distribución


# Los resultados de (a) y (b) nos permiten tener una idea de la centralidad y dispersión de los
datos, pero no nos dan información suficiente para determinar la forma de la distribución.
#...........LITERAL C............
rango_intercuartil_distancia <- diff(cuartiles_distancia)
rango_intercuartil_altitud <- diff(cuartiles_altitud)

desviacion_media_absoluta_distancia <- mean(abs(distancia - media_distancia))


desviacion_media_absoluta_altitud <- mean(abs(altitud - media_altitud))

desviacion_estandar_distancia <- sd(distancia)


desviacion_estandar_altitud <- sd(altitud)

#...........LITERAL E............
altitud_promedio_pies <- media_altitud * 3.28

#...........LITERAL F............
boxplot(distancia, main = "Diagrama de caja - Distancia")
boxplot(altitud, main = "Diagrama de caja - Altitud")

2. El conjunto rankingconstruccion.csv contiene los datos del año 2018 de las empresas que
se dedican al sector de la construcción. La revista Vistazo elabora cada año un ranking
de las empresas por cada sector de la producción al que pertenecen las empresas y un
ranking general. Investigue el uso de la función top_n y con la ayuda de esta función
seleccione las primeras 500 empresas de acuerdo con la utilidad, almacene estos
resultados en el un conjunto llamado rank500_construccion y de este conjunto de datos,
realice los siguientes ejercicios:
a) Elabore una tabla de frecuencia con las utilidades de las empresas.
b) Elabore una tabla de frecuencia de las empresas de acuerdo al sector.
c) Elabore una tabla de frecuencia con las ventas de las empresas.
d) Elabore una tabla de contingencia que relacione el tamaño de la empresa con la
región a la que pertenece la empresa.
e) Construya un diagrama de barras de las empresas por tamaño.
f) Construya un diagrama de barras de las empresas por tamaño de acuerdo a la
región.
g) Determine las medidas de tendencia central y de dispersión de las ventas de
acuerdo a la región, almacene los resultados en una tabla llamada
‘ventasconstruccion‘ y guarde sus resultados en una hoja de cálculo.
h) Determine los tres cuartiles de las utilidades de acuerdo al tipo de compañía.
i) Elabore el diagrama de caja de las utilidades.
j) Elabore el diagrama de caja de las utilidades de acuerdo al tipo de compañía.
# EJERCICIO 2

library(readxl)

rankingconstruccion <- read_excel("rankingconstruccion.xlsx")

View(rankingconstruccion)

# a) Elabore una tabla de frecuencia con las utilidades de las empresas.

tabla_utilidades <- table(rankingconstruccion$UTILIDAD)

tabla_utilidades

# b) Elabore una tabla de frecuencia de las empresas de acuerdo al sector.

tabla_empresas_sector <- table(rankingconstruccion$SECTOR_PROD)

tabla_empresas_sector

# c) Elabore una tabla de frecuencia con las ventas de las empresas.

tabla_ventas <- table(rankingconstruccion$VENTAS)

tabla_ventas

# d) Elabore una tabla de contingencia que relacione el tamaño de la empresa con la región.

tabla_contingencia <- table(rankingconstruccion$TAMAÑO, rankingconstruccion$REGIÓN)

tabla_contingencia

# e) Construya un diagrama de barras de las empresas por tamaño

barplot(table(rankingconstruccion$TAMAÑO))

# f) Construya un diagrama de barras de las empresas por tamaño de acuerdo a la región.

barplot(table(rankingconstruccion$TAMAÑO, rankingconstruccion$REGIÓN))

# g) Determine las medidas de tendencia central y de dispersión de las ventas de acuerdo a la


región.

ventas_construccion <- aggregate(VENTAS ~ REGIÓN, data = rankingconstruccion, FUN =


function(x) c(media = mean(x), mediana = median(x), desviacion = sd(x)))

ventas_construccion

# h) Determine los tres cuartiles de las utilidades de acuerdo al tipo de compañía.

cuartiles_utilidades <- aggregate(UTILIDAD ~ TIPO, data = rankingconstruccion, FUN = quantile,


probs = c(0.25, 0.5, 0.75))

cuartiles_utilidades

# i) Elabore el diagrama de caja de las utilidades

boxplot(rankingconstruccion$UTILIDAD)

# j) Elabore el diagrama de caja de las utilidades de acuerdo al tipo de compañía.


boxplot(rankingconstruccion$UTILIDAD ~ rankingconstruccion$TIPO)

3. En el ejercicio anterior se elaboró el ranking de las empresas del sector construcción, la


revista Vistazo publica además un ranking de las mejores 500 empresas de todos los
sectores de acuerdo a su utilidad. Elabore el ranking de las 500 mejores empresas
utilizando los archivos de valores separados por comas (csv) rankingagricultura,
rankingcomercio, rankingconstrucción, rankinginmobiliaria y rankingmanufactura. El
flujo de trabajo recomendado para esta actividad es:
a) Cargar cada conjunto de datos por separado, almacenando cada conjunto en una
variable que usted decida.
b) Unir los conjuntos de datos en un solo conjunto, para esto debe utilizar la función
rbind( ). Investigue el uso de esta función y utilícela para formar un único
conjunto de datos.
c) Con ayuda de la función top_n( ) seleccione las primeras 500 empresas de
acuerdo a la utilidad. Guarde este ranking en un conjunto llamado
ranking2018todos. Con el conjunto ranking2018todos se pide:
1. Calcular las medidas de tendencia central y dispersión por sector de las utilidades.
2. Determinar los deciles de las utilidades para todas las empresas.
3. Determinar los deciles de las utilidades por sector.
4. Elaborar tablas de contingencia relacionando el sector y el tamaño de las
empresas.
5. ¿De qué ciudad son la mayoría de empresas del ranking? Elabore una tabla de
frecuencia de las empresas por ciudad.
6. ¿a qué sector productivo pertenecen la mayoría de empresas del ranking?

# EJERCICIO 3
# a) Cargar cada conjunto de datos por separado
library(readxl)
rankingagricultura <- read_excel("rankingagricultura.xlsx")
View(rankingagricultura)
library(readxl)
rankingcomercio <- read_excel("rankingcomercio.xlsx")
View(rankingcomercio)
library(readxl)
rankingconstruccion <- read_excel("rankingconstruccion.xlsx")
View(rankingconstruccion)
library(readxl)
rankinginmobiliaria <- read_excel("rankinginmobiliaria.xlsx")
View(rankinginmobiliaria)
library(readxl)
rankingmanufactura <- read_excel("rankingmanufactura.xlsx")
View(rankingmanufactura)
# b) Unir los conjuntos de datos en un solo conjunto utilizando la función rbind():
ranking2018todos <- rbind(rankingagricultura, rankingcomercio, rankingconstruccion,
rankinginmobiliaria, rankingmanufactura)
# c) Seleccionar las primeras 500 empresas de acuerdo a la utilidad utilizando la función
top_n() y guardar el resultado en el conjunto ranking2018todos
library(dplyr)
ranking2018todos <- ranking2018todos %>%
arrange(desc(UTILIDAD)) %>%
slice(1:500)
# 1) Calcular las medidas de tendencia central y dispersión por sector de las utilidades
medidas_por_sector <- ranking2018todos %>%
group_by(SECTOR_PROD) %>%
summarise(media = mean(UTILIDAD), mediana = median(UTILIDAD), desviacion =
sd(UTILIDAD))
# 2) Determinar los deciles de las utilidades para todas las empresas
deciles_todas_empresas <- quantile(ranking2018todos$UTILIDAD, probs = seq(0.1, 0.9, 0.1))
# 3) Determinar los deciles de las utilidades por sector
deciles_sector <- ranking2018todos %>%
group_by(SECTOR_PROD) %>%
summarise_at(vars(UTILIDAD), ~quantile(., probs = seq(0, 1, by = 0.1)))
# 4) Elaborar tablas de contingencia relacionando el sector y el tamaño de las empresas
tabla_contingencia <- table(ranking2018todos$SECTOR_PROD, ranking2018todos$TAMAÑO)
# 5) ¿De qué ciudad son la mayoría de empresas del ranking? Elabore una tabla de frecuencia
de las empresas por ciudad
tabla_frecuencia_ciudad <- table(ranking2018todos$CIUDAD)
# 6) ¿A qué sector productivo pertenecen la mayoría de empresas del ranking?
sector_mayoria <- names(which.max(table(ranking2018todos$SECTOR_PROD)))

4. Los datos de entrega de pizzas (pizza_delivery.csv) son un conjunto de datos simulados.


Los datos se refieren a un restaurante que ofrece pizza a domicilio. Contiene los pedidos
recibidos durante un período de un mes: mayo de 2014. Hay tres sucursales del
restaurante. La entrega de pizzas se gestiona de forma centralizada: un operador recibe
una llamada telefónica y reenviar el pedido a la sucursal más cercana a la dirección del
cliente. Uno de los cinco conductores (dos de los cuales solo trabajan a tiempo parcial los
fines de semana) entrega el pedido. El conjunto de datos captura la cantidad de pizzas
ordenadas, así como la factura final, que también puede incluir bebidas, ensaladas y platos
de pasta. El dueño del negocio observo un mayor número de quejas, principalmente
porque las pizzas llegan demasiado tarde y demasiado frías. Para mejorar la calidad del
servicio de su negocio, el propietario quiere medir (i) el tiempo desde la llamada hasta la
entrega y (ii) la temperatura de la pizza a la llegada (lo que se puede hacer con un
dispositivo especial). Idealmente, una pizza llega dentro de los 30 minutos posteriores a
la llamada; si tarda más de 40 minutos, se promete a los clientes una botella de vino gratis
(aunque no siempre se entrega). La temperatura de la pizza debe estar por encima de los
65° en el momento de la entrega. El análisis de los datos tiene como objetivo determinar
los factores que influyen en el tiempo de entrega y la temperatura de las pizzas.
a) Calcule la media, la mediana, el mínimo, el máximo, el primer cuartil y el tercer
cuartil para todas las variables cuantitativas.
b) Determine e interprete el percentil 99 para el tiempo de entrega y la temperatura.
c) Grafique un diagrama de caja para el tiempo de entrega y la temperatura.
d) Construya una tabla de frecuencias para el tiempo de entrega.
e) Construya una tabla de frecuencias para la temperatura.

# EJERCICIO 4
library(readxl)
pizza_delivery <- read_excel("pizza_delivery.xlsx")
View(pizza_delivery)

library(tidyverse)

pizza_delivery <- pizza_delivery %>%


separate(col =
"day,date,time,operator,branch,driver,temperature,bill,pizzas,free_wine,got_wine,discount_customer",
into = c("day", "date", "time", "operator", "branch", "driver", "temperature", "bill", "pizzas",
"free_wine", "got_wine", "discount_customer"),
sep = ",")

# Convertir la columna "pizzas" a tipo numérico


pizza_delivery$pizzas <- as.numeric(pizza_delivery$pizzas)

# a) Calcular la media, la mediana, el mínimo, el máximo, el primer cuartil y el tercer cuartil para todas
las variables cuantitativas

# Convertir la columna "temperature" a tipo numérico


pizza_delivery$temperature <- as.numeric(pizza_delivery$temperature)

# Estadísticas para la variable "temperature"


media_temperature <- mean(pizza_delivery$temperature, na.rm = TRUE)
mediana_temperature <- median(pizza_delivery$temperature, na.rm = TRUE)
min_temperature <- min(pizza_delivery$temperature, na.rm = TRUE)
max_temperature <- max(pizza_delivery$temperature, na.rm = TRUE)
q1_temperature <- quantile(pizza_delivery$temperature, 0.25, na.rm = TRUE)
q3_temperature <- quantile(pizza_delivery$temperature, 0.75, na.rm = TRUE)
# b) Determine e interprete el percentil 99 para el tiempo de entrega y la temperatura.
# Verificar el tipo de datos en la columna "tiempo"
class(pizza_delivery$time)

# Convertir los datos en la columna "tiempo" a numéricos si es necesario


pizza_delivery$time <- as.numeric(pizza_delivery$time)

# Verificar si hay valores faltantes (NA) en la columna "tiempo"


any(is.na(pizza_delivery$time))

# Eliminar los valores faltantes si existen


pizza_delivery <- pizza_delivery[!is.na(pizza_delivery$time), ]

# Calcular el percentil 99 para el tiempo de entrega


percentil_99_time <- quantile(pizza_delivery$time, 0.99, na.rm = TRUE)

#c) Graficar un diagrama de caja para el tiempo de entrega y la temperatura:


# Diagrama de caja para el tiempo de entrega
ggplot(pizza_delivery, aes(x = "", y = time)) +
geom_boxplot() +
labs(title = "Diagrama de Caja - Tiempo de Entrega")

# Diagrama de caja para la temperatura


install.packages("ggplot2")
library(ggplot2)

# Diagrama de caja para el tiempo de entrega


ggplot(pizza_delivery, aes(x = "", y = time)) +
geom_boxplot() +
labs(title = "Diagrama de Caja - Tiempo de Entrega")

# Diagrama de caja para la temperatura


ggplot(pizza_delivery, aes(x = "", y = temperature)) +
geom_boxplot() +
labs(title = "Diagrama de Caja - Temperatura de la Pizza")

#d) Construya una tabla de frecuencias para el tiempo de entrega


# Construir tabla de frecuencias para el tiempo de entrega
tabla_frecuencias <- table(pizza_delivery$time)
# Mostrar tabla de frecuencias
print(tabla_frecuencias)

#e) Construya una tabla de frecuencias para la temperatura


# Construir tabla de frecuencias para la temperatura
tabla_frecuencias <- table(pizza_delivery$temperature)

# Mostrar tabla de frecuencias


print(tabla_frecuencias)

También podría gustarte