SUMMARY

Este es el desarrollo de la tercer evaluación del curso de “Modelo Econométrico con RStudio” realizado por EDUCATE Perú Consultores.

Se recomienda ingresar al siguiente enlace para visualizar resultados:

SET DE EJERCICIOS

Para realizar este set de preguntas, trabajaremos con el paquete “car”, el cual nos dará la base de datos “Prestige”. A continuación realizamos los siguientes comandos:

# Instalaremos y llamaremos a los siguientes paquetes:

install.packages("car")
install.packages("carData")

library("carData")
library("car")
# Asignamos el nombre "data" a la base "Prestige" y Visualizamos el resultado:

data <- Prestige

head(data)
##                     education income women prestige census type
## gov.administrators      13.11  12351 11.16     68.8   1113 prof
## general.managers        12.26  25879  4.02     69.1   1130 prof
## accountants             12.77   9271 15.70     63.4   1171 prof
## purchasing.officers     11.42   8865  9.11     56.8   1175 prof
## chemists                14.62   8403 11.68     73.5   2111 prof
## physicists              15.64  11030  5.13     77.6   2113 prof

Pregunta 1

Con la base de datos “data”, realizar un cambio de variables y de etiquetas de tal modo que se presenten de la siguiente manera:

Solución 1

1.1. Para renombrar las variables, utilizaremos el paquete “plyr” y procedemos a renombrar cada variable con la función “rename”

install.packages("plyr")
library("plyr")
# Renombramos utilizando la función rename

data = rename(data,c(education="educ",income="ing",women="mujeres",
                     prestige="prestigio",census="cod",type="tipo")) 

head(data)
##                      educ   ing mujeres prestigio  cod tipo
## gov.administrators  13.11 12351   11.16      68.8 1113 prof
## general.managers    12.26 25879    4.02      69.1 1130 prof
## accountants         12.77  9271   15.70      63.4 1171 prof
## purchasing.officers 11.42  8865    9.11      56.8 1175 prof
## chemists            14.62  8403   11.68      73.5 2111 prof
## physicists          15.64 11030    5.13      77.6 2113 prof

1.2. Para etiquetar las variables, utilizaremos el paquete “Hmisc” y procedemos a renombrar cada variable con la función “label”

install.packages("Hmisc")
library("Hmisc")
# Etiquetamos con la función label

label(data$educ)="Promedio de años de estudio del trabajador nombrado"
label(data$ing)="Promedio de ingreso en dólares del nombrado"
label(data$mujeres)="Porcentaje de mujeres nombradas"
label(data$prestigio)="Valoración de prestigio de Pineo-Porter"
label(data$cod)="Código de ocupación en el censo"
label(data$tipo)="Tipo de ocupación en 3 niveles"

# Visualizamos los resultados con los cambios realizados:

str(data)
## 'data.frame':    102 obs. of  6 variables:
##  $ educ     : 'labelled' num  13.1 12.3 12.8 11.4 14.6 ...
##   ..- attr(*, "label")= chr "Promedio de años de estudio del trabajador nombrado"
##  $ ing      : 'labelled' int  12351 25879 9271 8865 8403 11030 8258 14163 11377 11023 ...
##   ..- attr(*, "label")= chr "Promedio de ingreso en dólares del nombrado"
##  $ mujeres  : 'labelled' num  11.16 4.02 15.7 9.11 11.68 ...
##   ..- attr(*, "label")= chr "Porcentaje de mujeres nombradas"
##  $ prestigio: 'labelled' num  68.8 69.1 63.4 56.8 73.5 77.6 72.6 78.1 73.1 68.8 ...
##   ..- attr(*, "label")= chr "Valoración de prestigio de Pineo-Porter"
##  $ cod      : 'labelled' int  1113 1130 1171 1175 2111 2113 2133 2141 2143 2153 ...
##   ..- attr(*, "label")= chr "Código de ocupación en el censo"
##  $ tipo     : Factor w/ 3 levels "bc","prof","wc": 2 2 2 2 2 2 2 2 2 2 ...
##   ..- attr(*, "label")= chr "Tipo de ocupación en 3 niveles"

Visualizamos los tipos de variables que la conforman:

Variable Tipo
educ numérico
ing entero
mujeres numérico
prestigio numérico
cod entero
tipo factor

Pregunta 2

Realizar un cambio de variable o recodificación en la variable tipo con las siguientes características:

Solución 2

Visualizando los valores de la variable “tipo”.

str(data$tipo)
##  Factor w/ 3 levels "bc","prof","wc": 2 2 2 2 2 2 2 2 2 2 ...
##  - attr(*, "label")= chr "Tipo de ocupación en 3 niveles"

Verificamos que la variable “tipo” es factor, y para realizar la transformación necesitamos que la variable sea character por lo que realizamos el paso previo (convertir la variable a character):

data$tipo<-as.character(data$tipo)

str(data$tipo)
##  chr [1:102] "prof" "prof" "prof" "prof" "prof" "prof" "prof" "prof" ...

Para finalmente convertirla de la siguiente forma:

data$tipo[data$tipo=="bc"  ]= 1
data$tipo[data$tipo=="prof"]= 2
data$tipo[data$tipo=="wc"  ]= 3

str(data$tipo)
##  chr [1:102] "2" "2" "2" "2" "2" "2" "2" "2" "2" "2" "2" "2" "2" "2" ...
table(data$tipo)
## 
##  1  2  3 
## 44 31 23

Pregunta 3

Hecho el paso 2, aplicar sobre la variable tipo un cambio a factor, en donde se genere las siguientes etiquetas de valor:

Solución 3

Para realizar un cambio a factor debemos realizar el siguiente paso:

data$tipo<-as.factor(data$tipo)

str(data$tipo)
##  Factor w/ 3 levels "1","2","3": 2 2 2 2 2 2 2 2 2 2 ...

Para finalmente convertirla de la siguiente forma:

data$tipo=factor(data$tipo,
                 levels=c(1,2,3),
                 labels=c("Cuello azul",
                          "Profesional",
                          "Cuello blanco")
                 )

table(data$tipo)
## 
##   Cuello azul   Profesional Cuello blanco 
##            44            31            23

Pregunta 4

En el word o pdf generado haz un resumen de no más de tres lineas de cada una de las definiciones de cuello azul y cuello blanco.

Solución 4

Pregunta 5

Define las características y diferencias entre los comando rbind, merge y Reduce.

Solución 5

# Construimos data_1:

a <- c(1,4)
b <- c(2,5)
c <- c(3,6)
data_1 <- data.frame(a,b,c)

# Construimos data_2:

a <- c(7,10,13)
b <- c(8,11,14)
c <- c(9,12,15)
data_2 <- data.frame(a,b,c)

data_rbind <- rbind(data_1, data_2) 

# Construimos data_3:

a <- c(1,4,7,13)
d <- c("UNI","UNI","UNMSM","UNMSM")
data_3 <- data.frame(a,d)


# Ejemplo 1: Solo mostraremos los datos emparejados

# Realizamos el emparejamiento ("merge"), en función de la variable "a":

data_merge1 <- merge(data_rbind, data_3, by = "a")

data_merge1
##    a  b  c     d
## 1  1  2  3   UNI
## 2  4  5  6   UNI
## 3  7  8  9 UNMSM
## 4 13 14 15 UNMSM

# Ejemplo 2: Mostraremos todos los datos incluso los no emparejados

# Realizamos el emparejamiento ("merge"), en función de la variable "a":

data_merge2 <- merge(data_rbind, data_3, by = "a", all=T) 

data_merge2
##    a  b  c     d
## 1  1  2  3   UNI
## 2  4  5  6   UNI
## 3  7  8  9 UNMSM
## 4 10 11 12  <NA>
## 5 13 14 15 UNMSM

Nota: Reduce fusiona las bases eliminando missing y variables repetidas, no es recomendable utilizarla para fusionar varias bases a la vez.

# Ejemplo: Solo mostraremos los datos emparejados

data_reduce <- Reduce(merge, list(data_rbind,data_3))

data_reduce
##    a  b  c     d
## 1  1  2  3   UNI
## 2  4  5  6   UNI
## 3  7  8  9 UNMSM
## 4 13 14 15 UNMSM

Pregunta 6

Realizar un gráfico pie para la variable tipo.

Solución 6

Para realizar el gráfico de pie requerimos realizar algunos pasos previos para su realización, por ello realizaremos los siguientes comandos:

# Paso 1: Obtenemos los valores de cada categoría

porcentajes <- as.numeric(round(((prop.table(table(data$tipo)))*100),2))

# Paso 2: Realizaremos etiquetas de cada categoría

etiquetas <- c("Cuello azul", "Profesional", "Cuello blanco")

etiquetas <- paste(etiquetas, porcentajes)

etiquetas <- paste(etiquetas, "%", sep = "")

# Paso 3: Graficamos el pie

pie(porcentajes, etiquetas,
    main = "Gráfico de torta 1",
    col = c("Blue","green3","White"))

Pregunta 7

Elaborar un histograma, y un histograma de densidad junto con la linea de función de distribución normal sobre las variables educación e ingreso.

Solución 7

Para realizar los histogramas, utilizaremos la función hist, y utilizaremos el argumento prob= TRUE para mostrar la función de distribución Normal.

par(mfrow=c(2,2))

# ---------------

# Histograma de Educación

hist(data$educ, xlab = "Años de educación", main = "Histograma de educación", 
     col="gold")

# Histograma de Educación con Curva Normal

z1 <- data$educ
m1<-mean(z1) 
std1<-sqrt(var(z1)) 

hist(z1, xlab = "Años de educación", col = "gold",
     main="Histograma y Curva Normal", prob=T)

curve(dnorm(x, mean=m1, sd=std1),col="darkblue", lwd=2, add=TRUE, yaxt="n")

# ---------------

# Histograma de Ingresos

hist(data$ing, xlab = "Ingresos", main = "Histograma de ingresos", 
     col="orange1")

# Histograma de Educación con Curva Normal

z2 <- data$ing
m2<-mean(z2) 
std2<-sqrt(var(z2)) 

hist(z2, xlab = "Ingresos", col = "orange1", 
     main="Histograma y Curva Normal", prob=T)

curve(dnorm(x, mean=m2, sd=std2),col="darkblue", lwd=2, add=TRUE, yaxt="n")

Pregunta 8

Elaborar un diagrama de cajas sobre la variable mujeres y dar la interpretación1. Puedes ayudarte de comandos estadísticos adicionales para dar mejor tu interpretación (es opcional).

Solución 8

Para realizar el diagrama de cajas, utilizaremos la función boxplot; a continuación presentamos los siguientes comandos para su realización:

Según el gráfico de cajas, se puede observar que la mitad de mujeres nombradas en las distintas actividades se concentra por debajo del 13.6%, ello se debería a que la mayoría de hombres ocupan este cargo.

A su vez, en promedio, solo el 28.97% logra ser nombrada dentro de las actividades que desarrollan.

par(mfrow = c(1,2))

# Box Plot

boxplot(data$mujeres, main="Diagrama de cajas participación \n 
        de mujeres nombradas",border="blue")

# Histograma

z3 <- data$mujeres
m3<-mean(z3) 
std3<-sqrt(var(z3)) 

hist(z3, xlab = "Porcentaje", col = "Purple", 
     main="Histograma y Curva Normal", prob=T)

curve(dnorm(x, mean=m3, sd=std3),col="darkblue", lwd=2, add=TRUE, yaxt="n")

# Estadísticos

summary(z3)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   3.592  13.600  28.979  52.203  97.510

Pregunta 9

Haz un gráfico de dispersion sobre las variable prestigio (“y”) e ingreso (“x”), junto con su linea regresora.

Solución 9

Para realizar el gráfico de dispersión, relaizaremos el siguiente comando

# Fijamos la base

attach(data)


# Graficamos (x=Ingresos vs y=Prestigio)

plot(ing, prestigio, xlab = "Ingreso", ylab = "Prestigio", 
     main = "Dispersión entre ingreso y el prestigio",ylim=c(0,100))
abline(lm(prestigio~ing),col="red")

Pregunta 10

Elabora una matriz de dispersiones sobre la base de datos con todas las variables.

Solución 10

Finalmente presentamos una matriz de dispersión:

pairs(~prestigio + ing + educ + mujeres, data = data, main ="Matriz de dispersiones simple")

Opcionalmente presentamos la siguiente matriz:

# Instalamos y llamamos al siguiente paquete:

install.packages("psych")
library("psych") 
# Y ejecutamos el sigueinte comando
pairs.panels(data, pch=21,main="Matriz de Dispersión, Histograma y Correlación")


  1. UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS,