UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE CIENCIAS ECONÓMICAS

CARRERA DE ESTADÍSTICA

Autores:

Colaborador:


GRÁFICOS BÁSICOS

EJERICICIO N°1

Inspecciona la columna Temp (temperatura) del conjunto de datos airquality de acuerdo con las sugerencias del párrafo anterior.

PROCEDIMIENTO

t<-(airquality$Temp)
t<-sort(t, decreasing = FALSE)
t
##   [1] 56 57 57 57 58 58 59 59 61 61 61 62 62 63 64 64 65 65 66 66 66 67 67 67 67
##  [26] 68 68 68 68 69 69 69 70 71 71 71 72 72 72 73 73 73 73 73 74 74 74 74 75 75
##  [51] 75 75 76 76 76 76 76 76 76 76 76 77 77 77 77 77 77 77 78 78 78 78 78 78 79
##  [76] 79 79 79 79 79 80 80 80 80 80 81 81 81 81 81 81 81 81 81 81 81 82 82 82 82
## [101] 82 82 82 82 82 83 83 83 83 84 84 84 84 84 85 85 85 85 85 86 86 86 86 86 86
## [126] 86 87 87 87 87 87 88 88 88 89 89 90 90 90 91 91 92 92 92 92 92 93 93 93 94
## [151] 94 96 97
head(t)
## [1] 56 57 57 57 58 58
tail(t)
## [1] 93 93 94 94 96 97

Sin embargo, es mucho más informativa una representación visual de los datos. La manera más rápida (y recomendada) de hacerse una idea de la distribución de los datos de una columna numérica es usando histogramas. En R, para representar el histograma de la columna Sepal.Width de iris se puede hacer:

PROCEDIMIENTO

summary(iris$Sepal.Width)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   2.000   2.800   3.000   3.057   3.300   4.400
hist(iris$Sepal.Width)

Esa es la orden básica. Pero los gráficos pueden ser modificados para incluir títulos, etiquetas, colores, etc. Por ejemplo:

hist(iris$Sepal.Width, main = "iris: histograma de la anchura de los sépalos",
     xlab = "anchura del sépalo", ylab = "frecuencia",
     col = "steelblue")

Los argumentos main, xlab, ylab y col12 se pueden aplicar también a otros gráficos que veremos a continuación.


EJERICICIO N°2

Por defecto, el eje horizontal de un histograma muestra el número de observaciones en cada bin. Examina la ayuda de hist para ver cómo mostrar en, lugar de los números absolutos, la proporción.

PROCEDIMIENTO

?hist
## starting httpd help server ... done
h<-hist(iris$Sepal.Width, main = "iris: histograma de la anchura de los sépalos",
        xlab = "anchura del sépalo", ylab = "frecuencia",
        col = "steelblue", 
        xaxt= "n")
axis(side=1, at=h$breaks, labels=paste0((100*h$breaks), "%"))


EJERICICIO N°3

El número de bins también es parametrizable. Examina otra vez la página de ayuda para modificar el valor por defecto.

PROCEDIMIENTO

?hist

hist(iris$Sepal.Width, breaks = seq(min(iris$Sepal.Width), max(iris$Sepal.Width), length.out = 11), main = "iris: histograma de la anchura de los sépalos",
     xlab = "anchura del sépalo", ylab = "frecuencia",
     col = "steelblue")


EJERICICIO N°4

Estudia la distribución de las temperaturas en Nueva York (usa airquality).

Para guardar el gráfico, puedes usar los menús de Rstudio. Pero también puedes hacerlo programáticamente. En la página de ayuda de la función png se explica cómo hacerlo.

PROCEDIMIENTO

te<-(airquality$Temp)
hist(te, main = "Histograma de las temperaturas en New York", col = "purple4")

getwd()
## [1] "C:/Users/usuario/Desktop/TALLER 15"
png("Temperaturas en New York.png")
hist(te, main = "Histograma de las temperaturas en New York")
dev.off()
## png 
##   2

EJERICICIO N°5

Usa las funciones png y jpeg para guardar alguno de los gráficos anteriores en tu disco duro.

PROCEDIMIENTO

png("Anchura de los sépalos.png")
hist(iris$Sepal.Width, main = "iris: histograma de la anchura de los sépalos",
     xlab = "anchura del sépalo", ylab = "frecuencia",
     col = "mediumaquamarine")
dev.off()
## png 
##   2
jpeg("Anchura de los sépalos.jpeg", quality = 100)
hist(iris$Sepal.Width, main = "iris: histograma de la anchura de los s?palos",
     xlab = "anchura del sépalo", ylab = "frecuencia",
     col = "rosybrown")
dev.off()
## png 
##   2

EJERICICIO N°6

Usa los parámetros main, xlab, ylab y col discutidos en la sección anterior para mejorar el aspecto de este gráfico.

PROCEDIMIENTO

barplot(table(iris$Species)) #Antes

barplot(table(iris$Species),
        xlab = "Especies", ylab = "Frecuencia", main = "Histograma de Especies",
        col = c("orange","Blue","Green"))


EJERICICIO N°7

  1. Investiga el argumento horiz de barplot para crear un gráfico de barras horizontales.

PROCEDIMIENTO

Es muy común representar gráficos de barras horizontales.

Se puede rotar el gráfico y crear un gráfico de barras horizontales.

El argumento horiz lo establecemos como TRUE.

Veremos a continuación un ejemplo:

barplot(VADeaths[, 2], xlab = "tramos de edad", ylab = "tasa de mortalidad",
        main = "Tasa de mortalidad en Virginia\nmujer/rural",horiz = T)

Los diagramas de barras también pueden usarse para mostrar datos contenidos en vectores etiquetados. De hecho, table crea un vector etiquetado: asocia a cada etiqueta su frecuencia en la columna. Algunas tablas contienen un registro por etiqueta y entonces podemos usar gráficos de barras para representar esa información. Por ejemplo:

barplot(VADeaths[, 2], xlab = "tramos de edad", ylab = "tasa de mortalidad",
          main = "Tasa de mortalidad en Virginia\nmujer/rural")

Los gráficos de barras son las representaciones más habituales para mostrar la distribución de vectores (entre ellos, las frecuencias de etiquetas). Sin embargo, existen alternativas modernas y superiores a ellos en algunos aspectos. Por ejemplo, los gráficos de puntos, implementados en R en la función dotchart.

Representación de la relación entre dos variables continuas: gráficos de dispersión

Los aspectos más interesantes de los datos se revelan no examinando las variables independientemente sino en relación con otras. Los gráficos de dispersión muestran la relación entre dos variables numéricas. En el ejemplo siguiente serán la velocidad y la distancia de frenado de un conjunto de coches recogidas en el conjunto de datos cars:

plot(cars$speed, cars$dist)

El gráfico muestra cómo aumenta dist en función de speed.


EJERICICIO N°8

  1. Representa gráficamente la anchura del sépalo contra su longitud (usando iris).

PROCEDIMIENTO

 hist(iris$Sepal.Width, main = "Anchura de los sépalos",
      xlab = "anchura del sépalo", ylab = "frecuencia",
      col = "turquoise")

interpretación:


EJERICICIO N°9

  1. De nuevo, usa los parámetros main, xlab, ylab y col discutidos en la sección anterior para mejorar el aspecto de los gráficos anteriores.

PROCEDIMIENTO

En ocasiones, cuando una de las variables tiene un orden determinado (por ejemplo, es una variable temporal) pueden utilizarse líneas para unir los puntos de un diagrama de dispersión (o, más habitualmente, reemplazarlos por ellas). Por ejemplo, utilizando el hecho de que las observaciones de airquality están ordenadas temporalmente, podemos representar la temperatura en periodo que comprende así:

plot(airquality$Temp, type = "l")

Incluso, se pueden combinar varios elementos gráficos sobre la misma representación gráfica: por ejemplo, combinar puntos y líneas como aquí:

plot(airquality$Temp)
lines(airquality$Temp)

El anterior es un ejemplo de una característica de los gráficos básicos de R: a un primer gráfico se le pueden añadir progresivamente capas adicionales. En el caso anterior, a un gráfico de puntos se le han añadido líneas. Pero podrían añadirse más elementos. Por ejemplo, al gráfico anterior se le puede añadir un elemento más, una línea horizontal roja a la altura de la temperatura media, usando la función (muy útil) abline:

plot(airquality$Temp)
lines(airquality$Temp)
abline(h = mean(airquality$Temp), col = "red")


EJERICICIO N°10

Consulta la ayuda de la función abline y úsala para añadir líneas (no solo horizontales) a alguno de los gráficos anteriores.

PROCEDIMIENTO

Coloco primero el signo de interrogación y luego el nombre la función que busco.

?abline

La función abline agrega una o más líneas rectas a través del gráfico actual, estas líneas pueden ser horizontales o verticales, incluso lineas basadas en un intercepto y una pendiente.

Para crear líneas verticales se usa “v =” y para las horizontales “h =” Primero coloco la función x11() para observar mi gráfica en una ventan fuera del programa.

Seguido uso la función plot() para colocar dentro el nombre de la base de datos y elegir la variable temperatura.

Por último, uso la función abline para colocar una línea vertical en el valor de 80 del eje x.

x11()
plot(airquality$Temp)
abline(v = 80)


EJERICICIO N°11

Consulta ?par, una página de ayuda en R que muestra gran cantidad de parámetros modificables en un gráfico. Investiga y usa col, lty y lwd. Nota: casi nadie conoce estos parámetros y, menos, de memoria; pero está bien saber que existen por si un día procede utilizarlos.

PROCEDIMIENTO

Pongo primero el signo de interrogación y luego el nombre la función par.

?par

La función col añade color a la gráfica. La función lty nos sirve para indicar el tipo de línea La función lwd da el grosor a las líneas de un gráficos

Uso nuevamente la función x11() para mostrar mi gráfica.

Pongo la función plot() para graficar una función, adicional coloco el color que tendran las líneas de la gráfica, el tipo de línea que tendrá y el grosor de la misma línea.

x <- (2:10)
y <- (2:10)

x11()
plot(x, y,
     col = "green",
     lty = "dashed",
     lwd = 7)


EJERICICIO N°12

Identifica la observación atípica. ¿Es atípica también con respecto a otras variables?

PROCEDIMIENTO

Primero uso la función head para observarlas primeras filas de la base de datos iris.

Segundo uso la función x11() para observar el gráfico.

Tercero uso la función boxplot para graficar diagramas de cajas sobre el tamaño de los sépalos según la especie. Además agrego color y un título al gráfico.

head(iris)
##   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
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
x11()
boxplot(iris$Sepal.Width ~ iris$Species, col = "pink",
        main = "Especies de iris\nsegún la anchura del sépalo")

El dato atípico se encuentra aproximadamente en 2.3 que corresponde a la especie de las setosas. No se puede comparar con otras variables, porque en la base de datos de iris solo hay una variable categórica y las demás son variables continuas.


EJERICICIO N°13

Muestra la distribución de las temperaturas en Nueva York en función del mes.

PROCEDIMIENTO

Uso la función head()para ver las primeras filas de la base airquality.

Uso el x11().

Coloco la función boxplot, dentro de esta ubico la variable continua y categorica, seguido el color de las cajas y por último el título del gráfico.

head(airquality)
##   Ozone Solar.R Wind Temp Month Day
## 1    41     190  7.4   67     5   1
## 2    36     118  8.0   72     5   2
## 3    12     149 12.6   74     5   3
## 4    18     313 11.5   62     5   4
## 5    NA      NA 14.3   56     5   5
## 6    28      NA 14.9   66     5   6
x11()
boxplot(airquality$Temp ~ airquality$Month,
        col = rainbow(5),
        main = "Temperaturas de New York en Función de los Meses")