En esta sesión reforzaremos todo lo relacionado con el análisis descriptivo univariado de datos en R, junto con algunos ejercicios gráficos e introducción al lenguaje del paquete ggplot2, una librería muy usada para visualización de datos en este programa. ¡Empezamos!

Recordando la sesión pasada:

En las sesiones prácticas hemos visto que hay este tipo de variables:

Tipo Descripción
Variables nominales

Género (Hombre=1, Mujer=2). Religión (Católico=1, Evangélico=2, Otro=3). Región (Lima=1, Arequipa=2, La Libertad =3).

Partido delpresidente (Perú Libre=1, APP=2, PPC=3

Variables ordinales

Educación (Analf=0, Prim=1, Sec=2, Tec=3, Univ=4, Post=5). Importancia de religión en su vida (Nada importante=1, Poco importante=2,

Algo importante=3, Muy importante=4). Nivel de satisfacción con la democracia (Muy instafisfecho=1, Insatisfecho=2, Satisfecho=3,

Muy satisfecho=4).

Variables continuas Estatura, peso, ingreso mensual,extensión, PBI per cápita, % de participación electoral.
Variables discretas Número de hijos, edad, número de revocatorias, número de postas médicas, población.

En R, las variables nominales se denominan factores, las variables ordinales como factores ordenados y las variables continuas y discretas como num. En algunos casos, se puede encontrar lectura de variables como int (interger), que también son variables numéricas.

De forma similar, tenemos algunas medidas de tendencia central, de dispersión y de distribución de datos según el tipo de variable que nos encontramos analizando:

En línea con ello, también tenemos algunos gráficos según el tipo de variable de interés:

Hay una infinidad de gráficos a los que se puede recurrir dependiendo del interés de la investigadora o el investigador. Aquí hay algunos ejemplos útiles: https://www.data-to-viz.com/

¿Por qué es importante la visualización de datos? Graficar data ayuda a contar historias y, sobre todo, dar un sentido a los cientos, miles, o incluso millones, de filas de datos que con las que podríamos eventualmente trabajar, facilitando la comprensión de la información.

En tanto la finalidad de la visualización de datos es ayudar a una mejor comprensión de la información, hay que tener cuidado con algunos gráficos como, por ejemplo, el gráfico de sectores o pie chart. A pesar de que la variable que estamos analizando permita utilizar este gráfico, hay buenas razones para no usarlo, y por qué es muchas veces mejor un gráfico de barras: https://www.data-to-viz.com/caveat/pie.html

Análisis descriptivo y gráficos según tipo de variables:

Paquetes que utilizaremos

Abrimos las librerías

library(DescTools)
library(moments)
library(taylor)
library(ggplot2)

Vamos a empezar con los análisis. Carguemos la data state_democracy_final.xlsx, del proyecto Fragile State Index. Esta base de datos se compone de doce indicadores de riesgo, que permiten medir la condición de diferentes Estados en un momento determinado del tiempo. Esto es de suma importancia, ya que de su fortaleza depende en gran medida el efectivo desarrollo de políticas públicas orientadas a la ciudadanía.

Más sobre la base y los indicadores por acá: https://fragilestatesindex.org/indicators/

library(rio) #Convocamos el paquete   
data=import("state_democracy_final.xlsx") 

EXTRA: EXPLORACIÓN DE DATA (EDA)

class(data) #identificando el tipo de objeto
## [1] "data.frame"
str(data)
## 'data.frame':    164 obs. of  18 variables:
##  $ Country                         : chr  "AFGHANISTAN" "ALBANIA" "ALGERIA" "ANGOLA" ...
##  $ Year                            : num  2021 2021 2021 2021 2021 ...
##  $ Rank                            : chr  "9th" "119th" "74th" "34th" ...
##  $ Total                           : num  102.1 59 73.6 89 50.1 ...
##  $ C1: Security Apparatus          : num  10 4.8 6 7.2 4.9 5.7 2.7 1.6 6.4 5.9 ...
##  $ C2: Factionalized Elites        : num  8.6 6.2 7.5 7.2 2.8 7 1.7 3.2 7.9 7.6 ...
##  $ C3: Group Grievance             : num  7.2 4.1 7.2 8.1 3.8 5.3 3.1 3.9 6.1 9.6 ...
##  $ E1: Economy                     : num  9.2 6.4 6.8 8.4 7.1 6.6 1.6 1.8 4.7 4.1 ...
##  $ E2: Economic Inequality         : num  8.1 2.9 5.6 8.9 4.9 3.6 1.8 2.3 5.1 5.3 ...
##  $ E3: Human Flight and Brain Drain: num  7 8.3 5.5 6 3 6.8 0.5 1.6 4.3 3 ...
##  $ P1: State Legitimacy            : num  8.7 5.5 7.8 8.2 4 6.9 0.5 0.6 9.1 8 ...
##  $ P2: Public Services             : num  9.8 4.4 5.6 9.3 4.8 3.9 2.8 2.3 5.5 3.5 ...
##  $ P3: Human Rights                : num  7.4 3.6 6.3 6.2 3.3 6 1.7 0.5 7.7 8.6 ...
##  $ S1: Demographic Pressures       : num  9 4.1 4.8 9 5.3 4.4 2.9 3.4 4.2 4.1 ...
##  $ S2: Refugees and IDPs           : num  8.8 2.6 6.8 5.9 1.9 6.6 2 4.4 6.9 1.7 ...
##  $ X1: External Intervention       : num  8.3 6.1 3.7 4.6 4.3 7 0.5 0.5 7.2 5.3 ...
##  $ Democracy_Score                 : num  2.85 6.08 3.77 3.66 6.95 5.35 8.96 8.16 2.68 2.49 ...
##  $ Type                            : chr  "Authoritarian regime" "Flawed democracy" "Authoritarian regime" "Authoritarian regime" ...
nrow(data) #numero de filas
## [1] 164
ncol(data) #numero de columnas
## [1] 18
dim(data) #dimensión de mi data(un resumen de la # de filas y columnas)
## [1] 164  18
          #tamaño de data

names(data) #nombres de variables
##  [1] "Country"                          "Year"                            
##  [3] "Rank"                             "Total"                           
##  [5] "C1: Security Apparatus"           "C2: Factionalized Elites"        
##  [7] "C3: Group Grievance"              "E1: Economy"                     
##  [9] "E2: Economic Inequality"          "E3: Human Flight and Brain Drain"
## [11] "P1: State Legitimacy"             "P2: Public Services"             
## [13] "P3: Human Rights"                 "S1: Demographic Pressures"       
## [15] "S2: Refugees and IDPs"            "X1: External Intervention"       
## [17] "Democracy_Score"                  "Type"
colnames(data) #alternativa de nombre de variables
##  [1] "Country"                          "Year"                            
##  [3] "Rank"                             "Total"                           
##  [5] "C1: Security Apparatus"           "C2: Factionalized Elites"        
##  [7] "C3: Group Grievance"              "E1: Economy"                     
##  [9] "E2: Economic Inequality"          "E3: Human Flight and Brain Drain"
## [11] "P1: State Legitimacy"             "P2: Public Services"             
## [13] "P3: Human Rights"                 "S1: Demographic Pressures"       
## [15] "S2: Refugees and IDPs"            "X1: External Intervention"       
## [17] "Democracy_Score"                  "Type"
head(data) #6 primeros casos de mi data
##       Country Year  Rank Total C1: Security Apparatus C2: Factionalized Elites
## 1 AFGHANISTAN 2021   9th 102.1                   10.0                      8.6
## 2     ALBANIA 2021 119th  59.0                    4.8                      6.2
## 3     ALGERIA 2021  74th  73.6                    6.0                      7.5
## 4      ANGOLA 2021  34th  89.0                    7.2                      7.2
## 5   ARGENTINA 2021 137th  50.1                    4.9                      2.8
## 6     ARMENIA 2021  91st  69.8                    5.7                      7.0
##   C3: Group Grievance E1: Economy E2: Economic Inequality
## 1                 7.2         9.2                     8.1
## 2                 4.1         6.4                     2.9
## 3                 7.2         6.8                     5.6
## 4                 8.1         8.4                     8.9
## 5                 3.8         7.1                     4.9
## 6                 5.3         6.6                     3.6
##   E3: Human Flight and Brain Drain P1: State Legitimacy P2: Public Services
## 1                              7.0                  8.7                 9.8
## 2                              8.3                  5.5                 4.4
## 3                              5.5                  7.8                 5.6
## 4                              6.0                  8.2                 9.3
## 5                              3.0                  4.0                 4.8
## 6                              6.8                  6.9                 3.9
##   P3: Human Rights S1: Demographic Pressures S2: Refugees and IDPs
## 1              7.4                       9.0                   8.8
## 2              3.6                       4.1                   2.6
## 3              6.3                       4.8                   6.8
## 4              6.2                       9.0                   5.9
## 5              3.3                       5.3                   1.9
## 6              6.0                       4.4                   6.6
##   X1: External Intervention Democracy_Score                 Type
## 1                       8.3            2.85 Authoritarian regime
## 2                       6.1            6.08     Flawed democracy
## 3                       3.7            3.77 Authoritarian regime
## 4                       4.6            3.66 Authoritarian regime
## 5                       4.3            6.95     Flawed democracy
## 6                       7.0            5.35        Hybrid regime
tail(data) #6 últimos casos de mi data
##        Country Year  Rank Total C1: Security Apparatus C2: Factionalized Elites
## 159 UZBEKISTAN 2021  80th  72.0                    6.2                      8.8
## 160  VENEZUELA 2021  25th  92.6                    7.3                      9.3
## 161    VIETNAM 2021 114th  63.3                    3.9                      6.9
## 162      YEMEN 2021   1st 111.7                    9.4                     10.0
## 163     ZAMBIA 2021  42nd  84.9                    4.5                      5.9
## 164   ZIMBABWE 2021  10th  99.1                    8.6                     10.0
##     C3: Group Grievance E1: Economy E2: Economic Inequality
## 159                 6.0         5.4                     5.7
## 160                 7.0         9.8                     6.7
## 161                 5.2         3.9                     3.8
## 162                 9.4         9.8                     7.7
## 163                 5.3         8.8                     9.3
## 164                 6.1         9.4                     7.7
##     E3: Human Flight and Brain Drain P1: State Legitimacy P2: Public Services
## 159                              5.2                  9.3                 4.6
## 160                              6.5                  9.5                 8.9
## 161                              5.3                  8.4                 4.3
## 162                              6.7                  9.9                 9.8
## 163                              6.9                  7.5                 8.0
## 164                              7.1                  8.8                 9.0
##     P3: Human Rights S1: Demographic Pressures S2: Refugees and IDPs
## 159              7.6                       4.8                   4.4
## 160              9.1                       6.5                   6.3
## 161              7.8                       5.0                   4.5
## 162              9.7                       9.8                   9.8
## 163              7.0                       9.4                   5.5
## 164              8.0                       9.3                   8.2
##     X1: External Intervention Democracy_Score                 Type
## 159                       4.0            2.12 Authoritarian regime
## 160                       5.7            2.76 Authoritarian regime
## 161                       4.3            2.94 Authoritarian regime
## 162                       9.7            1.95 Authoritarian regime
## 163                       6.8            4.86        Hybrid regime
## 164                       6.9            3.16 Authoritarian regime
attributes(data) #atributos de mi data
## $class
## [1] "data.frame"
## 
## $row.names
##   [1]   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18
##  [19]  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36
##  [37]  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54
##  [55]  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72
##  [73]  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90
##  [91]  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108
## [109] 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
## [127] 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
## [145] 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
## [163] 163 164
## 
## $names
##  [1] "Country"                          "Year"                            
##  [3] "Rank"                             "Total"                           
##  [5] "C1: Security Apparatus"           "C2: Factionalized Elites"        
##  [7] "C3: Group Grievance"              "E1: Economy"                     
##  [9] "E2: Economic Inequality"          "E3: Human Flight and Brain Drain"
## [11] "P1: State Legitimacy"             "P2: Public Services"             
## [13] "P3: Human Rights"                 "S1: Demographic Pressures"       
## [15] "S2: Refugees and IDPs"            "X1: External Intervention"       
## [17] "Democracy_Score"                  "Type"

1. Análisis de variables nominales:

A esta base de datos, sin embargo, se le ha incluido el índice de democracia, un indicador que da cuenta de las características del régimen político de cada país. Exploremos esta variable:

#Esto debemos modificarlo:
class(data$Type) #ver tipo de variable
## [1] "character"
table(data$Type) #frecuencias
## 
## Authoritarian regime     Flawed democracy       Full democracy 
##                   57                   52                   22 
##        Hybrid regime 
##                   33

¿Cómo está medida la variable? Tal vez eso no es lo más recomendable para el análisis. Demósle el formato debido:

data$Type = factor(data$Type)
str(data$Type) #tipo de variable 
##  Factor w/ 4 levels "Authoritarian regime",..: 1 2 1 1 2 4 3 3 1 1 ...
table(data$Type)
## 
## Authoritarian regime     Flawed democracy       Full democracy 
##                   57                   52                   22 
##        Hybrid regime 
##                   33

Exploremos la moda:

library(DescTools) #estadisticos de tendencia central 
Mode(data$Type) #este comando nos permitirá calcular la moda
## [1] Authoritarian regime
## attr(,"freq")
## [1] 57
## 4 Levels: Authoritarian regime Flawed democracy ... Hybrid regime

Apliquemos la función table para extraer las frecuencias de cada categoría, así como las frecuencias relativas porcentuales (prop.table):

table(data$Type) #hacemos una tabla de frecuencia
## 
## Authoritarian regime     Flawed democracy       Full democracy 
##                   57                   52                   22 
##        Hybrid regime 
##                   33
prop.table(table(data$Type))*100
## 
## Authoritarian regime     Flawed democracy       Full democracy 
##             34.75610             31.70732             13.41463 
##        Hybrid regime 
##             20.12195

Hora de graficar! Empecemos con un pie chart:

#peso y altura del gráfico (height y width)
grafico1 <- table(data$Type) #creamos un objeto que contenga la tabla de frecuencias dela variable
grafico1
## 
## Authoritarian regime     Flawed democracy       Full democracy 
##                   57                   52                   22 
##        Hybrid regime 
##                   33
pie(grafico1, main = "Índice de democracia", radius = 1, cex = 1) #podemos achicar la el radio y las categorías con los comandos "radius" y "cex" (tamaño de las etiquetas). Prueben!

Pero recuerden, es mejor no usar pie charts. Vayamos por nuestra segunda (y mejor) opción: un gráfico de barras (barplot).

#peso y altura del gráfico (height y width)
#Utilizamos el mismo objeto creado:
barplot(grafico1, col = "pink",
                  main = "Índice de democracia",
                  xlab = "Tipos de regímenes políticos",
                  ylab = "Frecuencias",
                  cex.axis = 1,
                  cex.lab = 1,
                  las = 1)

Ya sabemos cómo obtener algunos gráficos con el lenguaje base de R. Sin embargo, la comunidad ha creado muchos paquetes o librerías para visualizar datos de una forma más didactica y atractiva. Un ejemplo de ello es ggplot2, una librería muy utilizada para visualizar datos. ggplot2 tiene un lenguaje propio, y los códigos pueden resultar algo largos, pero es muy intuitivo y permite manipular mucho los resultados.

Más información sobre el lenguaje de ggplot2: https://www.rstudio.com/wp-content/uploads/2015/04/ggplot2-spanish.pdf

Llamemos la a librería y veamos qué opciones tiene para analizar nuestra variable:

#Volvamos nuestro objeto un dataframe:
grafico1 = as.data.frame(grafico1) #convertir a data frame
grafico1
##                   Var1 Freq
## 1 Authoritarian regime   57
## 2     Flawed democracy   52
## 3       Full democracy   22
## 4        Hybrid regime   33
#Para cambiar los nombres de las columnas (variables): es un código frecuente c() para dar mayor orden a una base de datos 
colnames(grafico1) = c("Reg","Freq")
grafico1
##                    Reg Freq
## 1 Authoritarian regime   57
## 2     Flawed democracy   52
## 3       Full democracy   22
## 4        Hybrid regime   33
library(ggplot2) #llamamos a ggplot2 - Recuerda instalar ggplot2
ggplot(grafico1, aes(x="Tipo de regímenes políticos", y=Freq, fill=Reg)) + #Seleccionamos las variables
  geom_bar(stat="identity", width=2) + #Agregando capas, stat identity: Si desea que las alturas de las barras representen valores en los datos, use stat = "identity" y asigne una variable a la estética y. Width: ancho de sector
  coord_polar("y", start=0) #Coordenadas cartesianas: sirve para ubicar el pie chart en un plano cartesiano dependiendo del número de respuestas de cada opción y lo hace proporcionalmente

#Para eliminar elementos innecesarios del gráfico:

ggplot(grafico1, aes(x="Tipo de regímenes políticos", y=Freq, fill=Reg)) +
  ggtitle("Índice de democracia") + #Agregamos el título
  geom_bar(stat="identity", width=1, color="skyblue") + #Agregando capas, stat identity: Si desea que las alturas de las barras representen valores en los datos desde objeto data frame (freq), use stat = "identity"  y asigne una variable a la estética y. Width: ancho de sector
  coord_polar("y", start=0) + #Coordenadas cartesianas: sirve para ubicar el pie chart en un plano cartesiano dependiendo del número de respuestas de cada opción y lo hace proporcionalmente
theme_void() #Con esto quitamos los elementos no requeridos (coord_polar)

#Podemos escoger los colores que consideramos:

pc=ggplot(grafico1, aes(x="", y=Freq, fill=Reg)) +
  ggtitle("Índice de democracia") + #Agregamos el título
  geom_bar(stat="identity", width=1, color="white") + #Agregando capas, stat identity: Si desea que las alturas de las barras representen valores en los datos desde objeto data frame (freq), use stat = "identity" y asigne una variable a la estética y. Width: ancho de sector
  coord_polar("y", start=0) + #Coordenadas cartesianas: sirve para ubicar el pie chart en un plano cartesiano dependiendo del número de respuestas de cada opción y lo hace proporcionalmente. Srive para pie chart
  theme_void() #Con esto quitamos los elementos no requeridos
pc

pc + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9", "#00FF7F", "#008B8B","#D8BFD8")) #Pintamos y seleccionamos los colores manualmente. 

#Escogiendo una paleta en específico: aquí ya no escogemos los colores

pc + scale_fill_brewer(palette="Dark2")

La ventaja de que R sea un software libre es que permite a la comunidad hacer cosas muy interesantes e innovadoras, hasta una paleta con colores de los albums de Taylor Swift para pintar nuestros gráficos!

Instalamos esto en R y llamamos a la librería “taylor”

remotes::install_packages(“wjakethompson/taylor”)

Más información sobre esta librería por aquí: https://taylor.wjakethompson.com/index.html

library(taylor)
pc + scale_fill_taylor_d(album="Reputation (Taylor's Version)")
## Warning: Album 'Reputation (Taylor's Version)' does not exist. Defaulting to
## 'Lover'.

Pero, de nuevo, mejor no usar pie charts. Veamos cómo trabajar con esta librería para hacer un gráfico de barras:

ggplot(grafico1, aes(x=Reg, y=Freq)) + 
  geom_bar(stat = "identity") #Agregando capas, stat identity: Si desea que las alturas de las barras representen valores en los datos, use stat = "identity" y asigne una variable a la estética y

Demos formato a algunas cosas:

ggplot(grafico1, aes(x=reorder(Reg,Freq), y=Freq, fill=Reg)) + #Para ordenar el gráfico
  geom_bar(stat = "identity") + #Agregando capas, stat identity: Si desea que las alturas de las barras representen valores en los datos (data frame), use stat = "identity" y asigne una variable a la estética y
    coord_flip() #Para voltearlo

ggplot(grafico1, aes(x=reorder(Reg,Freq), y=Freq, fill=Reg)) + #Para ordenar el gráfico
  geom_bar(stat = "identity") + #Agregando capas, stat identity: Si desea que las alturas de las barras representen valores en los datos, use stat = "identity" y asigne una variable a la estética y
    coord_flip() + #Para voltear las barras
    labs(title="Índice de democracia", y="Frecuencias", x="Categorías") #poner titulos

ggplot(grafico1, aes(x=reorder(Reg,Freq), y=Freq, fill=Reg)) + #Para ordenar el gráfico
  geom_bar(stat = "identity") + #Agregando capas, stat identity: Si desea que las alturas de las barras representen valores en los datos, use stat = "identity" y asigne una variable a la estética y
    coord_flip() + #Para voltear las barras
    labs(title="Índice de democracia", y="Frecuencias", x="Categorías")+
    theme(plot.title = element_text(hjust = .5)) + # Cambiar la Posición del título 
    theme(panel.background=element_rect(fill = "white", colour = "white"))  #Fondo y contorno blanco

bp=ggplot(grafico1, aes(x=reorder(Reg,Freq), y=Freq, fill=Reg)) +
  geom_bar(stat = "identity") +  #Agregando capas, stat identity: Si desea que las alturas de las barras representen valores en los datos, use stat = "identity" y asigne una variable a la estética y
    coord_flip() +  #Para voltear las barras
    labs(title="Índice de democracia", y="Frecuencias", x="Categorías")+ #titulos
    theme(plot.title = element_text(hjust = 1)) +  #Cambiar la Posición del título
    theme(panel.background=element_rect(fill = "white", colour = "white")) + #Fondo y contorno blanco
    geom_text(aes(label=Freq), vjust=2, color="red", size=4) #Frecuencias en las barras - etiquetas de datos
bp

bp + scale_fill_taylor_d(album="Lover") #Paleta de colores. 

En conclusión, la democracia plena no es algo que abunde en el mundo. Esta variable es de naturaleza ordinal, pero los códigos y tipos de gráficos son los mismos para el caso de variables nominales.

2. Análisis de variables numéricas

Ahora, veamos algunas medidas de tendencia central, distribución y dispersión para el caso de variables numéricas. Trabajemos con la variable state legitimacy, indicador que evalúa la representatividad y apertura del gobierno, y la manera como interactúa con la ciudadanía. Se toman en cuenta los niveles de confianza en las instituciones, demostraciones de desobediencia civil e insurgencias armadas.

Más información del indicador por acá: https://fragilestatesindex.org/indicators/p1/

Primero cambiemos los nombres de las variables. R funciona mejor así

names(data) #Para ver los nombres
##  [1] "Country"                          "Year"                            
##  [3] "Rank"                             "Total"                           
##  [5] "C1: Security Apparatus"           "C2: Factionalized Elites"        
##  [7] "C3: Group Grievance"              "E1: Economy"                     
##  [9] "E2: Economic Inequality"          "E3: Human Flight and Brain Drain"
## [11] "P1: State Legitimacy"             "P2: Public Services"             
## [13] "P3: Human Rights"                 "S1: Demographic Pressures"       
## [15] "S2: Refugees and IDPs"            "X1: External Intervention"       
## [17] "Democracy_Score"                  "Type"
colnames(data) = c("Country","Year","Rank","Score_Frag_States","Security","Elites","G_Grivance","Economy","Inequality","B_Drain","State_Legit","P_Services","Hum_Rights","Demo_Press","Refugees","Interven","Democracy_Score","Type") ##Para cambiar los nombres de las columnas (variables): es un código frecuente c() para dar mayor orden a una base de datos 
class(data$State_Legit) #Esta bien medida!, saber clase de objeto (num)
## [1] "numeric"

Exploremos la variable. Veamos medidas de tendencia central y de dispersión. Ojo con cómo está medido: 10 es un Estado que posee un alto grado de ilegitimidad (o presión). 0 un Estado con poca presión o alta legitimidad desde la ciudadanía.

summary(data$State_Legit) #Ojo con los casos perdidos: 
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.500   3.675   6.400   5.805   8.200  10.000
sd(data$State_Legit) #Desviacion estandar
## [1] 2.851246
var(data$State_Legit) #veamos la varianza
## [1] 8.129602
rango=max(data$State_Legit)-min(data$State_Legit)
rango
## [1] 9.5

Ahora veamos medidas de asimetría:

library(moments) #libreria para asimetria y curtosis
skewness(data$State_Legit) #Asimetría - Distribución asimétrica: la media queda desplazada hacia la cola más larga, implica un sesgo en la distribución, der e izq. El sesgo a la izquierda de valores bajos.
## [1] -0.5063559
kurtosis(data$State_Legit) #Curtosis - medida de apuntamiento - Mide la cantidad de datos que se agrupa en torno a la moda de la variable
## [1] 2.118271

¿Cómo interpretamos estos resultados?

Veamos qué nos dicen los gráficos. Empecemos con un boxplot. ¿Encontraremos diferentes según las características del régimen político? ¿Qué conclusiones podríamos sacar de estos gráficos?

boxplot(data$State_Legit) #gráfico para variable numérica

boxplot(data$State_Legit~data$Type) #legitimidad de Estado y tipo de régimen 

#Interpretación: Hay diferencia significativa si comparamos la legimitdad de estado por tipo de régimen (full democracy y regimen hibrido)

Veamos qué cosas trae ggplot2:

# x= tipo de regimen, y= legitimidad de Estado
ggplot(data, aes(x=Type, y=State_Legit)) + 
  geom_boxplot() + coord_flip() #Volteamos el gráfico

ggplot(data, aes(x=Type, y=State_Legit, color =Type)) + #Damos color
  geom_boxplot() + coord_flip() #Volteamos el gráfico

ggplot(data, aes(x=Type, y=State_Legit, color =Type)) + 
  geom_boxplot() + coord_flip() + #Volteamos el gráfico
  theme(legend.position = "top") #leyenda a nivel superior

#Interpretación: Hay diferencia significativa si comparamos la legimitdad de estado por tipo de régimen (full democracy y regimen hibrido)
ggplot(data, aes(x=Type, y=State_Legit, color =Type)) + 
  geom_boxplot() + coord_flip() #Volteamos el gráfico

ggplot(data, aes(x=Type, y=State_Legit, color =Type)) + 
  geom_boxplot() + coord_flip() + #Volteamos el gráfico
 
   theme(legend.position = "top", axis.text.y = element_blank(), 
        panel.background=element_rect(fill = "white", colour = "white")) + #Quitamos categorías para solo visualizar colores
  
  geom_jitter(shape=16, position=position_jitter(0.2)) + #Agregamos los casos como puntos (Dispersión de datos)
  
  labs(title = "Legitimidad estatal según el tipo de régimen político", x="", y="Index")

Finalmente, también podemos sacar un histograma para visualizar estos datos. ¿Tiene sentido según los coeficientes de asimetría y curtosis? Si

hist(data$State_Legit)

#Interpretación: mayor frecuencia de países con legitimidad de estado 

Utilicemos ggplot2 para agregar más detalles al gráfico como en los casos previos:

ggplot(data, aes(x=State_Legit)) + 
  geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggplot(data, aes(x=State_Legit)) + 
  geom_histogram() + 
    labs(title="Legitimidad estatal", y="Conteo", x="Score")+
    theme(plot.title = element_text(hjust = 0.5)) + #posición del titulo
    theme(panel.background=element_rect(fill = "white", colour = "white")) + 
    geom_vline(aes(xintercept=mean(State_Legit, na.rm = T)), # marcar el intercepto de la media (promedio), median=mediana
            color="blue", linetype="dashed", size=1)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggplot(data, aes(x=State_Legit, color = Type)) + 
  geom_histogram(fill="white",alpha=0.5, position="identity") + 
    labs(title="Legitimidad estatal", y="Conteo", x="Indice")+
    theme(plot.title = element_text(hjust = 0.5)) + #posición del titulo
    theme(panel.background=element_rect(fill = "white", colour = "white"))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Ejercicios

  1. Compare medidas de dispersión de esta con otra variable de la base de datos. ¿A qué conclusiones llega?
  2. Compare asimetría y curtosis de esta variable con otra de la base de datos.¿A qué conclusiones llega?
  3. Analice descriptivos y elabore el gráfico correspondiente para otra variable numérica de la base de datos.

3. Exportar y presentar

¿Cómo exportamos la base de datos que hemos trabajado?

En muchos casos nos va ser útil exportar a CSV,lo podemos hacer con la función export del paquete rio:

export(data, "midata.csv") 

También podemos exportar en formato R:

save(data,file="midata.Rda")

¿Cómo presentamos el trabajo realizado en este archivo Rmd?

Vamos a trabajar en archivos R markdown (Rmd), pero para presentarlos de una manera amigable, podemos exportarlos en formato PDF o Html, usando Knit

Para Html, seleccionamos en el menú Knit > Knit to html

Para pdf, seleccionamos Knit > Knit to PDF, pero antes de exportar en pdf deberá instalar lo siguiente desde su consola: