Aquí van todos los ejercicios del laboratorio es necesario poner “`” y la “{ r }” en los codigos para que sean facilmente reconocidos como tal
Se hace el proceso de descarga, copia y uso de esta plantilla dada por el autor
Código para hacer un histograma,se toma una muestra de 100 números, con media de 50 y desviación estándar de 25, y se ponen en el histograma con esta pieza de código
hist(rnorm(100, mean=50, sd=25))
Con este código se carga la data encontrada en el archivo .zip dado por el autor,
En caso de que no funcione se puede reemplazar por:
library(data.table)
nyc_films <- fread("https://raw.githubusercontent.com/CrumpLab/statisticsLab/master/data/Film_Permits.csv")
library(summarytools)
view(dfSummary(nyc_films))
Se corre la libreria dplyr, y se hace un conteo de cada una de las 5 observaciones
library(dplyr)
counts <- nyc_films %>%
group_by(Borough) %>%
summarize(count_of_permits = length(Borough))
carga de libreria ggplot2 para hacer el grafíco
library(ggplot2)
ggplot(counts, aes(x = Borough, y = count_of_permits )) +
geom_bar(stat="identity")
la columna categoria da detalles de información en el conteo de la data
counts <- nyc_films %>%
group_by(Category) %>%
summarize(count_of_permits = length(Category))
ggplot(counts, aes(x = Category, y = count_of_permits )) +
geom_bar(stat="identity")+
theme(axis.text.x = element_text(angle = 90, hjust = 1))
counts <- nyc_films %>%
group_by(Category) %>%
summarize(count_of_permits = length(Category))
ggplot(counts, aes(x = Category, y = count_of_permits )) +
geom_bar(stat="identity")+
theme(axis.text.x = element_text(angle = 90, hjust = 1))
### 1.2.5.1
cambia el nombre de la etiqueta en el eje y
``` r
ggplot(counts, aes(x = Category, y = count_of_permits )) +
geom_bar(stat="identity") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits")
cambia la etiqueta en el eje x
ggplot(counts, aes(x = Category, y = count_of_permits )) +
geom_bar(stat="identity") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Category of film")
añade un titulo a el grafico
ggplot(counts, aes(x = Category, y = count_of_permits )) +
geom_bar(stat="identity") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Category of film") +
ggtitle("Number of Film permits in NYC by Category")
cambia el color en las barras
ggplot(counts, aes(x = Category, y = count_of_permits, color=Category )) +
geom_bar(stat="identity") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Category of film") +
ggtitle("Number of Film permits in NYC by Category")
se añade ahora color dentro de las barras
ggplot(counts, aes(x = Category, y = count_of_permits,
color=Category,
fill= Category )) +
geom_bar(stat="identity") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Category of film") +
ggtitle("Number of Film permits in NYC by Category")
elimina la leyenda que esta en el lateral
ggplot(counts, aes(x = Category, y = count_of_permits,
color=Category,
fill= Category )) +
geom_bar(stat="identity") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Category of film") +
ggtitle("Number of Film permits in NYC by Category") +
theme(legend.position="none")
Cambia el tema del grafico de arriba por una apariencia limpia y practica
ggplot(counts, aes(x = Category, y = count_of_permits,
color=Category,
fill= Category )) +
geom_bar(stat="identity") +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Category of film") +
ggtitle("Number of Film permits in NYC by Category") +
theme(legend.position="none") +
theme_classic()
reordenar el tema de las capas
ggplot(counts, aes(x = Category, y = count_of_permits,
color=Category,
fill= Category )) +
geom_bar(stat="identity") +
theme_classic() +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Category of film") +
ggtitle("Number of Film permits in NYC by Category") +
theme(legend.position="none")
cambia el tamaño de la fuente
ggplot(counts, aes(x = Category, y = count_of_permits,
color=Category,
fill= Category )) +
geom_bar(stat="identity") +
theme_classic(base_size = 15) +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Category of film") +
ggtitle("Number of Film permits in NYC by Category") +
theme(legend.position="none")
ggplot(counts, aes(x = Category, y = count_of_permits,
color=Category,
fill= Category )) +
geom_bar(stat="identity") +
theme_classic(base_size = 10) +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Category of film") +
ggtitle("Number of Film permits in NYC by Category") +
theme(legend.position="none")
Agrega una columna para subcategorias
# get the counts (this is a comment it's just here for you to read)
counts <- nyc_films %>%
group_by(SubCategoryName) %>%
summarize(count_of_permits = length(SubCategoryName))
# make the plot
ggplot(counts, aes(x = SubCategoryName, y = count_of_permits,
color=SubCategoryName,
fill= SubCategoryName )) +
geom_bar(stat="identity") +
theme_classic(base_size = 10) +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Sub-category of film") +
ggtitle("Number of Film permits in NYC by Sub-category") +
theme(legend.position="none")
vamos a utilizar otra de las funciones de ggplot la cual se llama facet_wrap, lo utilizamos para organizar distritos donde se solicitan los permisos de las peliculas, con esto añadimos “borough” y “category” ajustando las facetas por categoria en lugar de municipio
# get the counts (this is a comment it's just here for you to read)
counts <- nyc_films %>%
group_by(Borough,Category) %>%
summarize(count_of_permits = length(Category))
# make the plot
ggplot(counts, aes(x = Category, y = count_of_permits,
color=Category,
fill= Category )) +
geom_bar(stat="identity") +
theme_classic(base_size = 10) +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Category of film") +
ggtitle("Number of Film permits in NYC by Category and Borough") +
theme(legend.position="none") +
facet_wrap(~Borough, ncol=3)
hicimos el mismo procedimiento pero se cambio category con borough cambiando y ajustando las facetas por categoria en lugar de municipio
ggplot(counts, aes(x = Borough, y = count_of_permits,
color=Borough,
fill= Borough )) +
geom_bar(stat="identity") +
theme_classic(base_size = 10) +
theme(axis.text.x = element_text(angle = 90, hjust = 1)) +
ylab("Number of Film Permits") +
xlab("Borough") +
ggtitle("Number of Film permits in NYC by Category and Borough") +
theme(legend.position="none") +
facet_wrap(~Category, ncol=5)
gapminder es una organizacion que recopila datos mundiales interesantes y del que existe un paquete en r que se puede instalar
Aqui instalamos el paquete
Aqui se cargan las libreria gapminder
library(gapminder)
gapminder_df<-gapminder
utiliza summary tools para ver un resumen de los datos que contiene gapminder_df, se le añadio al codigo dado por el autor la linea library con summarytools, ya que solo la linea de view no era reconocida
library(summarytools)
View(dfSummary(gapminder_df))
representa mediante un histograma cuanto vive la gente en todo el mundo según este conjunto de datos, utilizando lifeexp
ggplot(gapminder_df, aes(x=lifeExp))+
geom_histogram(color="white")
se utiliza un bloque de codigo para agregar mas capas y configuraciones para modificar partes del grafico
ggplot(gapminder_df, aes(x = lifeExp)) +
geom_histogram(color="white")+
theme_classic(base_size = 15) +
ylab("Frequency count") +
xlab("Life Expectancy") +
ggtitle("Histogram of Life Expectancy from Gapminder")
se cambia el tamaño del intervalo que controla el ancho o la estrechez del histograma, o el numero de barras. A lo que dividimos el rango de 50 contenedores pequeños del mismo tamaño en lugar de 30
ggplot(gapminder_df, aes(x = lifeExp)) +
geom_histogram(color="white", bins=50)+
theme_classic(base_size = 15) +
ylab("Frequency count") +
xlab("Life Expectancy") +
ggtitle("Histogram of Life Expectancy from Gapminder")
utilizamos un diagrama de dispersion donde se establece el eje x como año, y el eje y como esperanza de vida, se uso el geom_point para mostrar varios puntos y observarlos
ggplot(gapminder_df, aes(y= lifeExp, x= year))+
geom_point()
En este caso buscamos encontrar el aumento de la esperanza de vida de los canadienses y para eso dividimos el conjunto de datos completo en otro conjunto mas pequeño que solo contenga datos de canada
# filter rows to contain Canada
smaller_df <- gapminder_df %>%
filter(country == "Canada")
# plot the new data contained in smaller_df
ggplot(smaller_df, aes(y= lifeExp, x= year))+
geom_point()
cambiamos la forma de filtrar los datos para que se permita más de un país y luego se grafico los datos añadiendo opciones de color atractivas
# filter rows to contain countries of choice
smaller_df <- gapminder_df %>%
filter(country %in% c("Canada","France","Brazil") == TRUE)
# plot the new data contained in smaller_df
ggplot(smaller_df, aes(y= lifeExp, x= year, group= country))+
geom_point()
añadimos una leyenda que nos permita ver a que paises representa
ggplot(smaller_df,aes(y= lifeExp, x= year,
group= country, color = country)) +
geom_point()+
theme_classic(base_size = 15) +
ylab("Life Expectancy") +
xlab("Year") +
ggtitle("Life expectancy by year for three countries")
conectamos los puntos con una linea para que sea más facil ver la conexión, añadiendo una nueva geom_line capa
ggplot(smaller_df,aes(y= lifeExp, x= year,
group= country, color = country)) +
geom_point()+
geom_line()+
theme_classic(base_size = 15) +
ylab("Life Expectancy") +
xlab("Year") +
ggtitle("Life expectancy by year for three countries")
punto 1, Crea una gráfica que represente la esperanza de vida anual para los cinco continentes, utilizando el “continent” factor. Asegúrate de cambiar el título para que se lea correctamente.
# Cargar librerías necesarias
library(ggplot2)
library(gapminder)
#Eje y es esperanza de vida, Eje x el año, se reemplaza grupo y color por el continente y se edita el nombre para que se entienda que es por continentes
ggplot(gapminder_df, aes(y= lifeExp, x= year, group= continent, color=continent))+ geom_point()+ theme_classic(base_size = 15) + ylab("Life Expectancy") + xlab("Year") + ggtitle("Life expectancy by year for continents")
punto 2, Crea una gráfica que represente el PIB per cápita anual de EE. UU., Canadá y México. Usa la gdpPercap columna para los datos del PIB per cápita.
#se cargan todas las librerias necesarias en caso de necesidad
library(dplyr)
library(gapminder)
library(ggplot2)
gapminder_df<-gapminder
#Se usa código del punto 1.2.8, se asegura de la carga de las librerias y se nombran los países, se reemplaza grupo y color con gdpPercap, y se edita el titulo del grafico
smaller_df <- gapminder_df %>%
filter(country %in% c("United States","Canada","Mexico"))
ggplot(gapminder_df, aes(y= lifeExp, x= year, group= gdpPercap, color=gdpPercap ))+
geom_point() +
ylab("Life Expectancy") +
xlab("Year") +
ggtitle("PIB Perccapita por año para EE.UU CANADÁ MÉXICO")
punto 3, Crea un nuevo gráfico que represente cualquier elemento que te interese usando el conjunto de datos Gapminder. Solo necesita ser un gráfico del que no se haya proporcionado un ejemplo
#Se usa código tambien del punto 1.2.8, se cargan las librerias en caso de necesidad, en continent se nombra "Americas" se reemplaza grupo por continent y color con gdpPercap, y se edita el titulo del grafico para que sea correcto con la información
smaller_df2 <- gapminder_df %>%
filter(continent %in% c("Americas") == TRUE)
ggplot(gapminder_df, aes(y= lifeExp, x= year, group= continent, color=gdpPercap))+
geom_point() +
ylab("Life Expectancy") +
xlab("Year") +
ggtitle("Life Expectancy of Americas")
A) ¿Qué representan las barras de un histograma: las barras de un histograma representan la frecuencia de los datos dentro de un intervalo o clase. Cada una de las barras del histograma muestra un rango de valores y cuantos datos se encuentran en ese rango. En este, el ancho de la barra indica el intervalo que es considerado, mientras la altura refleja cuantos valores cayeron dentro de ese intervalo.
B) ¿Cuántas barras puede tener un histograma?: El número de barras depende completamente de como se dividan los datos en intervalos, por lo que no existe un limite establecido en la mayoria de los casos, sin embargo, es innegable que en un sentido estetico, es importante mantener un equilibrio donde no se usen demasiadas o pocos, de modo que no se complejicen o simplifiquen demasiado y de una representacion clara de los datos. Por lo que usualmente es recomendable entre 5 a 20 datos, dependiendo del tamaño y variedad de los datos.
C) ¿Qué te dicen las alturas de las barras?: La altura de cada barra indica la frecuencia absoluta u observaciones que se encuentran dentro del intervalo, es decir los numeros de datos. Entre mas alta sea la barra, mayor es la cantidas de datos que estan en ese rango, mientras que entre mas baja, significa que hay un menor numero de valores en ese rango.
D) ¿Qué hay en el eje x y en el eje y de un histograma?: En un histograma, el eje x contiene los intervalos o clases en los que se agrupan los datos. Mientras que el eje y muestra la frecuencia, cuantos datos tiene cada intervalo, ya sean de frecuencia absoluta o relativa, el eje y indica la mantitud de la cantidad de datos que se encuentra en cada barra.
E) ¿Qué te dice la barra más alta de un histograma?: la barra mas alta del histograma muestra el intervalo donde hay una mayor concentración de datos. En otras palabras, el rango que es mas comun o frecuente dentro del conjunto. En caso de que el histograma solo tenga un barra mas alta, esta permite identificar la zona de valores mas representativa.
F) ¿Qué te dice la barra más corta de un histograma?: La barra mas baja representa el intervalo con la menor frecuencia se datos. Es decir, aquel rango en el que hay muy pocos valores o casi ninguno. Por esto, una barra muy baja o inexistente puede indicar la presencia de intervalos poco comunes o incluso rangos en los que se podria encontrar datos atipicos.
G) ¿Cuáles son algunos usos de los histogramas? ¿Por qué querrías ver un histograma de algunos números que recopilaste? los histogramas sirven para ver información de manera más simple en graficos, permite visualizar la distribución de un conjunto de datos numericos, por lo que muestra concentración, valores frecuentes, sesgos, ayuda a entender patrones en los datos por lo que puede ayudar mucho.
H) Imagina que tienes dos histogramas: uno muy ancho y disperso, y el otro muy estrecho con un pico muy alto. ¿Cuál de ellos esperarías que contuviera números más consistentes (números cercanos entre sí)? Explica por qué. Creemos que el histograma estrecho con un pico alto tendria los datos más consistentes, pues al ser estrecho muestra que los datos se agrupan en un rango más reducido, entre más disperso el grafico significaria que hay una mayor distancia y diferencia entre los datos.