Subido por lsamy1599

Práctica 1

Anuncio
Práctica 1: Tablas de Frecuencias y Gráficos
Materia: Estadística I
Período: Primer Término - 2021
Profesores: Galarza, C., González, S., Mendoza, M., Menéndez, J., Mera, E. y Noboa, D.
Introducción
En la presente práctica se aplican los conceptos de Tablas de Frecuencias para variables cualitativas y
cuantitativas, así como gráficos más usados, mediante el software R. Empecemos cargando los datos que
se requieren para la práctica, para lo cual utilizaremos la base de datos iris incorporada por defecto en el
software R. Iris es un conjunto de datos de flores que utilizó Ronald Fisher en un artículo publicado en el
año 1936. Está formado por una muestra de tamaño 50 de cada una de las tres especies en estudio (setosa,
virginica y versicolor) y cuatro características cuantitativas que se tomaron en cada muestra: longitud y
anchura de los sépalos y pétalos (en centímetros).
Paso 1. Descargar el software o trabajar en la nube
Lo primero que deberíamos realizar es descargar en nuestro computador el software R y RStudio, para lo
cual puede dar click en el siguiente enlace:
https://www.rstudio.com/products/rstudio/download/
Una segunda opción de la cual disponemos es trabajar desde la nube, para lo cual deberíamos crear una
cuenta RStudio Cloud a través del siguiente enlace:
https://rstudio.cloud/plans/free
Desarrollo
Tema 1. Obtención de datos
Obtenga los datos de la tabla iris y asígnelo al objeto datos, luego extraiga los 3 primeros registros asignados
(filas). Muestre los nombres de las columnas extraídas y haga referencia a la columna Species.
1
Comandos a usar:
objetoR <- objetoA
objetoR = objetoA
head(objetoR,n)
colnames(objetoR)
objetoR$columna
# sintaxis de asignación de valores y datos
# sintaxis de asignación de valores y datos
# extraer los n primeros registros del objeto R
# visualiza las columnas del objeto R
# referencia a una columna en particular del objeto R
Solución:
datos = iris # asigna los datos de la base iris al objeto datos (tabla de datos Dataframe)
head(datos,3) # visualiza las tres primeras filas del objeto datos
##
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1
5.1
3.5
1.4
0.2 setosa
## 2
4.9
3.0
1.4
0.2 setosa
## 3
4.7
3.2
1.3
0.2 setosa
colnames(datos) # muestra los nombres de las columnas (variables) del objeto datos
## [1] "Sepal.Length" "Sepal.Width"
"Petal.Length" "Petal.Width"
"Species"
datos$Species # permite referencia a los datos de una columna Species (variable)
##
[1] setosa
setosa
setosa
setosa
setosa
setosa
##
[7] setosa
setosa
setosa
setosa
setosa
setosa
## [13] setosa
setosa
setosa
setosa
setosa
setosa
## [19] setosa
setosa
setosa
setosa
setosa
setosa
## [25] setosa
setosa
setosa
setosa
setosa
setosa
## [31] setosa
setosa
setosa
setosa
setosa
setosa
## [37] setosa
setosa
setosa
setosa
setosa
setosa
## [43] setosa
setosa
setosa
setosa
setosa
setosa
## [49] setosa
setosa
versicolor versicolor versicolor versicolor
## [55] versicolor versicolor versicolor versicolor versicolor versicolor
## [61] versicolor versicolor versicolor versicolor versicolor versicolor
## [67] versicolor versicolor versicolor versicolor versicolor versicolor
## [73] versicolor versicolor versicolor versicolor versicolor versicolor
## [79] versicolor versicolor versicolor versicolor versicolor versicolor
## [85] versicolor versicolor versicolor versicolor versicolor versicolor
## [91] versicolor versicolor versicolor versicolor versicolor versicolor
## [97] versicolor versicolor versicolor versicolor virginica virginica
## [103] virginica virginica virginica virginica virginica virginica
## [109] virginica virginica virginica virginica virginica virginica
## [115] virginica virginica virginica virginica virginica virginica
## [121] virginica virginica virginica virginica virginica virginica
## [127] virginica virginica virginica virginica virginica virginica
## [133] virginica virginica virginica virginica virginica virginica
## [139] virginica virginica virginica virginica virginica virginica
## [145] virginica virginica virginica virginica virginica virginica
## Levels: setosa versicolor virginica
Tarea sugerida: Obtenga los 10 primeros registros de la tabla datos y asígnelo en un nuevo objeto de
nombre datos1. Luego haga referencia a la longitud del pétalo de los registros seleccionados.
2
Tema 2. Tablas de Frecuencias para variables cualitativas
Construya una tabla con la distribución de frecuencias de la variable Species. Incorpore las frecuencias
absolutas y relativas asociadas a cada especie.
Comandos a usar:
table(datos)
length(datos)
cbind(col1,col2)
round(num,d)
# tabla de frecuencias absolutas
# longitud del vector de observaciones
# concatenación de columnas
# redondea un número con d números decimales
Solución:
fa = table(iris$Species)
fa
# frecuencias absolutas almacenadas en el objeto fa
# mostramos el resultado (otra opción es print(fa))
##
##
##
virginica
50
setosa versicolor
50
50
n = length(iris$Species)
fb = fa/n
cbind(fa,fb)
# tamaño de la muestra n
# frecuencias relativas = fa / (tamaño de la muestra)
# concatenamos columnas
##
fa
fb
## setosa
50 0.3333333
## versicolor 50 0.3333333
## virginica 50 0.3333333
Con el fin de mejorar la presentación, podemos presentar la frecuencia relativa unicamente con 3 decimales
e indicar los nombres de las columnas.
tabla = cbind('Frec. Abs.' = fa,'Frec. Rel.' = round(fb,3))
print(tabla)
##
Frec. Abs. Frec. Rel.
## setosa
50
0.333
## versicolor
50
0.333
## virginica
50
0.333
Tarea sugerida: Agregue las columnas correspondientes a la frecuencias acumuladas, absoluta y relativa.
Pista: Ejecute cumsum(fa).
3
Tema 3. Tablas de Frecuencias para variables cuantitativas
Elabore una tabla de frecuencias para la variable longitud de pétalos. Petal.length.
Comandos a usar:
install.packages("librería")
library(librería)
?librería
ds_screener(datos)
ds_freq_table(datos,var)
# instala la librería
# carga la librería para su uso
# muestra el manual de ayuda de la librería
# descripción de las variables en el conjunto de datos
# crea una tabla de frecuencias para var en datos
Solución:
Para elaborar la tabla de frecuencias para el caso cuantitativo, usaremos una función de una librería de R
en particular, descriptr. Se deberá primero instalar (una única vez) y cargar la misma, para poder hacer
uso de las funciones que contiene.
install.packages("descriptr")
# instalación de la librería
library(descriptr) # cargamos la librería para su uso
## Warning: package 'descriptr' was built under R version 3.6.3
?ds_screener
ds_screener(iris)
# accedemos al manual de la función
# describimos las variables en el conjunto de datos
## --------------------------------------------------------------------------------------## | Column Name | Data Type |
Levels
| Missing | Missing (%) |
## --------------------------------------------------------------------------------------## | Sepal.Length |
numeric
|
NA
|
0
|
0
|
## | Sepal.Width |
numeric
|
NA
|
0
|
0
|
## | Petal.Length |
numeric
|
NA
|
0
|
0
|
## | Petal.Width |
numeric
|
NA
|
0
|
0
|
## |
Species
|
factor
|setosa versicolor virginica|
0
|
0
|
## --------------------------------------------------------------------------------------##
## Overall Missing Values
0
## Percentage of Missing Values
0 %
## Rows with Missing Values
0
## Columns With Missing Values
0
Tarea sugerida: Estudie los diferentes tipos de variables en el conjunto de datos de R llamado mtcars.
¿Cuántas variables cualitativas y cuantitativas hay?
4
ds_freq_table(iris,Petal.Length)
##
Variable: Petal.Length
## |-----------------------------------------------------------------------|
## |
Bins
| Frequency | Cum Frequency |
Percent
| Cum Percent |
## |-----------------------------------------------------------------------|
## | 1
- 2.2 |
50
|
50
|
33.33
|
33.33
|
## |-----------------------------------------------------------------------|
## | 2.2 - 3.4 |
3
|
53
|
2
|
35.33
|
## |-----------------------------------------------------------------------|
## | 3.4 - 4.5 |
34
|
87
|
22.67
|
58
|
## |-----------------------------------------------------------------------|
## | 4.5 - 5.7 |
47
|
134
|
31.33
|
89.33
|
## |-----------------------------------------------------------------------|
## | 5.7 - 6.9 |
16
|
150
|
10.67
|
100
|
## |-----------------------------------------------------------------------|
## |
Total
|
150
|
|
100.00
|
|
## |-----------------------------------------------------------------------|
Tema 4: Gráficos para variables cualitativas
Para la elaboración de gráficos, recomendamos la librería de R ggplot2, la más usada actualmente en el
mundo. Esta librería permite crear gráficos usando gramática de gráficos 1 , además que es muy flexible y
permite generar gráficos de alta calidad y de forma rápida. Sus componentes son:
Data: Datos para graficar
Aesthetic mapping: Características estéticas
Geom: Objetos geométricos (puntos, líneas, polígonos, áreas. . . )
Stat: Transformaciones estadísticas
Scale: Escalas
Coord: El sistema de coordenadas
Faceting: Condicionamiento
Los gráficos de ggplot pueden ser creados por bloques, es decir, por partes separadas de tal forma que se
puede ir agregando características al mismo de forma natural.
Un guía rápida de ggplot2 en español puede ser accedida dando click aquí.
install.packages("ggplot2")
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 3.6.3
1 Wilkinson, L. (2012). The grammar of graphics. In Handbook of computational statistics (pp. 375-414). Springer, Berlin,
Heidelberg.
5
ggplot(data=iris,aes(x=Species)) +
geom_bar()
50
count
40
30
20
10
0
setosa
versicolor
virginica
Species
ggplot(data=iris,aes(x=Species,y = ..prop.., group = 1)) + # frecuencia relativa
geom_bar()
0.3
prop
0.2
0.1
0.0
setosa
versicolor
Species
6
virginica
ggplot(data=iris,aes(x=Species,y = ..prop.., group = 1)) + #añadimos nombres de ejes
geom_bar() + xlab("Especies") + ylab("frec. relativa")
frec. relativa
0.3
0.2
0.1
0.0
setosa
versicolor
virginica
Especies
ggplot(data=iris,aes(x=Species,y = ..prop.., group = 1)) + # añadimos un título
geom_bar() + xlab("Especies") + ylab("frec. relativa") +
ggtitle("Diagrama de barras")
Diagrama de barras
frec. relativa
0.3
0.2
0.1
0.0
setosa
versicolor
virginica
Especies
Tarea sugerida: Para el conjunto de datos de R llamado mtcars, genere un diagrama de barras para la
variable cyl. Muestre las frecuencias absolutas, además agregue un título y ejes en español. Si bien esta
variable es numérica, ¿por qué realizamos un diagrama de barras y no un histograma?
7
Tema 5: Gráficos para variables cuantitativas
Histogramas de frecuencias
ggplot(data=iris,aes(x=Sepal.Width)) +
geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
count
20
10
0
2.0
2.5
3.0
3.5
4.0
4.5
4.0
4.5
Sepal.Width
ggplot(data=iris,aes(x=Sepal.Width)) + # 10 barras
geom_histogram(bins = 10)
count
30
20
10
0
2.0
2.5
3.0
Sepal.Width
8
3.5
ggplot(data=iris,aes(x=Sepal.Width)) + # color de barras (relleno y línea)
geom_histogram(bins = 10,fill = "purple",color = "black")
count
30
20
10
0
2.0
2.5
3.0
3.5
4.0
4.5
4.0
4.5
Sepal.Width
ggplot(data=iris,aes(x=Sepal.Width)) + # tema clásico de R
geom_histogram(bins = 10,fill = "purple",color = "black") +
theme_classic()
count
30
20
10
0
2.0
2.5
3.0
Sepal.Width
9
3.5
ggplot(data=iris,aes(x=Sepal.Width)) + # mostramos frecuencias relativas (usando aes)
geom_histogram(aes(y = stat(count)/sum(count)),bins = 10,fill = "purple",color = "black") +
theme_classic()
0.25
count/sum(count)
0.20
0.15
0.10
0.05
0.00
2.0
2.5
3.0
3.5
4.0
4.5
Sepal.Width
¿Te gustaría colocar un color personalizado? Basta ingresar el código hexadecimal del color que deseamos,
el cual puede ser encontrado en varias páginas de paletas, e.g., https://www.colorhexa.com/color-names.
Usaremos el color con código #ad8585.
ggplot(data=iris,aes(x=Sepal.Width)) + # mostramos porcentajes en el eje de las Y's
geom_histogram(aes(y = stat(count)/sum(count)),bins = 10,fill = "#ad8585",color = "black") +
theme_classic() +
scale_y_continuous(labels = scales::percent)
25.0%
count/sum(count)
20.0%
15.0%
10.0%
5.0%
0.0%
2.0
2.5
3.0
Sepal.Width
10
3.5
4.0
4.5
Polígono de frecuencia
ggplot(data=iris,aes(x=Sepal.Width)) + # polígono
geom_freqpoly(bins = 10,color = "black")
count
30
20
10
0
2
3
4
Sepal.Width
ggplot(data=iris,aes(x=Sepal.Width)) + # añadimos histograma
geom_histogram(bins = 10,fill = "purple",color = "black") +
geom_freqpoly(bins = 10,color = "black")
count
30
20
10
0
2
3
4
Sepal.Width
Tarea sugerida: Para el conjunto de datos de R llamado mtcars, grafique un histograma y su respectivo
polígono de frecuencia para la variable millas por galón, mpg. Use 5 barras para el histograma y polígono,
coloque título y etiquetas de ejes en español. Utilice su color favorito usando su código hexadecimal.
11
Gráficos de densidad
ggplot(data=iris,aes(x=Sepal.Width)) + # densidad estimada
geom_density()
density
0.9
0.6
0.3
0.0
2.0
2.5
3.0
3.5
4.0
4.5
4.0
4.5
Sepal.Width
ggplot(data=iris,aes(x=Sepal.Width)) + # color
geom_density(fill = "purple")
density
0.9
0.6
0.3
0.0
2.0
2.5
3.0
3.5
Sepal.Width
12
ggplot(data=iris,aes(x=Sepal.Width)) + # transparencia (alpha de 0 a 1)
geom_density(fill = "purple",alpha = 0.4)
density
0.9
0.6
0.3
0.0
2.0
2.5
3.0
3.5
4.0
4.5
4.0
4.5
Sepal.Width
Diagrama de Caja o Boxplot
ggplot(data=iris,aes(x=Sepal.Width)) +
geom_boxplot()
0.4
0.2
0.0
-0.2
-0.4
2.0
2.5
3.0
3.5
Sepal.Width
Tarea sugerida: Para el conjunto de datos de R llamado mtcars, grafique un diagrama de cajas para la
variable millas por galón, mpg. Utilice su color favorito usando su código hexadecimal, agregue un título y
etiquetas en español. Además, modifique los límites del eje de las Y’s para que se muestren de -1 a 1. Pista:
Añada una línea con ylim(inf,sup).
13
Descargar