PUNTO 1

Lectura de Datos – Manipulación de data frame – resumen y representación gráfica

La hoja de Datos BD-inmuebles.xlsx contiene datos hipotéticos de las operaciones de venta y alquiles de inmuebles en la comunidad catalana.

Para sintetizar estos datos, siga los siguientes pasos:

  1. Lea la hoja de datos en R y asigne el formato adecuado a cada variable.

    library(readxl)
    BD_Inmuebles=read_excel("C:/Users/jemma/OneDrive/Escritorio/MÉTODOS CUANTITATIVOS PARA ANÁLISIS DE INFORMACIÓN/TALLER02/BD-Inmuebles.xls")
    summary(BD_Inmuebles)
    ##    Referencia     Fecha Alta                        Tipo          
    ##  Min.   :   1   Min.   :2004-01-01 00:00:00.0   Length:3337       
    ##  1st Qu.: 835   1st Qu.:2004-10-25 00:00:00.0   Class :character  
    ##  Median :1669   Median :2005-08-23 00:00:00.0   Mode  :character  
    ##  Mean   :1669   Mean   :2005-08-24 20:36:19.2                     
    ##  3rd Qu.:2503   3rd Qu.:2006-06-13 00:00:00.0                     
    ##  Max.   :3337   Max.   :2007-04-30 00:00:00.0                     
    ##                                                                   
    ##   Operación          Provincia           Superficie     Precio Venta    
    ##  Length:3337        Length:3337        Min.   : 40.0   Min.   : 163920  
    ##  Class :character   Class :character   1st Qu.:105.0   1st Qu.: 695789  
    ##  Mode  :character   Mode  :character   Median :170.0   Median :1122352  
    ##                                        Mean   :170.3   Mean   :1202449  
    ##                                        3rd Qu.:236.0   3rd Qu.:1622400  
    ##                                        Max.   :300.0   Max.   :2977318  
    ##                                                                         
    ##   Fecha Venta                       Vendedor        
    ##  Min.   :2004-04-05 00:00:00.00   Length:3337       
    ##  1st Qu.:2005-04-27 12:00:00.00   Class :character  
    ##  Median :2005-12-16 00:00:00.00   Mode  :character  
    ##  Mean   :2005-12-22 11:27:54.07                     
    ##  3rd Qu.:2006-09-01 00:00:00.00                     
    ##  Max.   :2007-05-07 00:00:00.00                     
    ##  NA's   :578
  2. Utilice las funciones table y posteriormente barplot para representar gráficamente el % de transacciones realizadas para cada tipo de propiedad.

    #Hacer gráfico de barras
    b1=barplot(prop.table(table(BD_Inmuebles$Tipo))*100,
            col=c("#FAEBD7","#98F5FF","#8EE5EE","#FFF0F5","lemonchiffon","#66CDAA","#EEE0E5"),
            main="% Transacciones tipo propiedad",
            xlab="Tipos de propiedad",
            ylab="Porcentaje %",
            ylim = c(0,20)) 
    #Incluir etiqueta de datos en la gráfica
    text(x=b1,
         y=round(prop.table(table(BD_Inmuebles$Tipo))*100,2),
         label=round(prop.table(table(BD_Inmuebles$Tipo))*100,2),
         pos=3,cex=0.8,col="red") 
  3. Ahora utilice las funciones table para calcular el % de transacciones realizadas por cada tipo de propiedad al interior de cada ciudad. Luego represente esta tabla en un barplot para visualizar si está distribución es similar/diferente entre las ciudades (sug. Revise la utilidad del argumento beside – consulte la ayuda de barplot)

    #Hacer gráfico de barras apiladas
    b2=barplot(prop.table(table(BD_Inmuebles$Tipo,BD_Inmuebles$Provincia))*100,      main="% Transacciones tipo propiedad por ciudad",   
            xlab="Tipos de propiedad",
            ylab="Porcentaje %",        
            ylim = c(0,10),
            beside=T,
            col=c("#FAEBD7","#98F5FF","#8EE5EE","#FFF0F5","lemonchiffon","#66CDAA","#EEE0E5"))
    #Incluir leyenda de datos en la gráfica
    legend(x="topright",
          legend=c("Casa","Industrial","Local","Oficina","Parking","Piso","Suelo"),
          fill=c("#FAEBD7","#98F5FF","#8EE5EE","#FFF0F5","lemonchiffon","#66CDAA","#EEE0E5"),
          title = "Tipo de propiedad")
    #Incluir etiqueta de datos en la gráfica
    text(x=b2,
         y=round(prop.table(table(BD_Inmuebles$Tipo,BD_Inmuebles$Provincia))*100,2),
         label=round(prop.table(table(BD_Inmuebles$Tipo,BD_Inmuebles$Provincia))*100,0),pos=3,cex=0.8,col="red")
  4. Interesados en generar un ranking de los vendedores segun su nivel de ventas (suma de las transacciones gestionadas -> suma del precio de venta)por fuera de la ciudad de Barcelona, se le solicita filtrar de la hoja de datos las transacciones de la ciudad de Barcelona y, sobre la hoja de datos filtrada, consolidar el total de ventas por vendedor. Presentar esta información en una grafico de barras ordenadas descendentemente. (sug: revise la utilidad de la funciones tapply y sort)

    #DF filtrada excepto la provincia de Barcelona
    t3=data.frame(BD_Inmuebles[BD_Inmuebles$Provincia!="Barcelona",])
    #Hacer gráfico de barras
    b3=barplot(sort(tapply(t3$Precio.Venta,t3$Vendedor,sum),decreasing=T),
            main="Total ventas por vendedor fuera de Barcelona",
            xlab="Vendedor",
            ylab="Ventas $",
            col=c("#FAEBD7","#98F5FF","#FFF0F5","#8EE5EE","lemonchiffon"),
            ylim=c(0,500000000),
            )
    #Incluir etiqueta de datos en la gráfica
    text(x=b3,
         y=sort(tapply(t3$Precio.Venta,t3$Vendedor,sum),decreasing=T),
         label=sort(tapply(t3$Precio.Venta,t3$Vendedor,sum),decreasing=T),
         pos=3,cex=0.8,col="red")
  5. Únicamente para los casas de alquiler de la provincia Lleida, genere un grafico de dispersión que muestre la relación entre X: La superficie de la casa y Y: El precio de la Transaccion.

    #DF filtrada para casas alquiladas en Lleida
    t4=data.frame(BD_Inmuebles[BD_Inmuebles$Provincia=="Lleida"&BD_Inmuebles$Operación=="Alquiler"&BD_Inmuebles$Tipo=="Casa",])
    #Hacer gráfico de dispersión
    plot(x=t4$Superficie,
         y=t4$Precio.Venta,
         main="Relación superficie con precio de alquiler de casas en Lleida",
         xlab="Superficie",
         ylab="Precio transacción (alquiler) $",
         col="blue"
         )

    #Determinar coeficiente de correlación
    r=cor(t4$Superficie,t4$Precio.Venta,method="pearson")
    print(r)
    ## [1] 0.8119213
  6. Repita el grafico anterior, separando las transacciones de venta y alquiler.

    #DF filtrada para casas vendidas en Lleida
    t5=data.frame(BD_Inmuebles[BD_Inmuebles$Provincia=="Lleida"&BD_Inmuebles$Operación=="Venta"&BD_Inmuebles$Tipo=="Casa",])
    #Hacer gráfico de dispersión
    plot(x=t5$Superficie,
         y=t5$Precio.Venta,
         main="Relación superficie con precio de venta de casas en Lleida",
         xlab="Superficie",
         ylab="Precio transacción (venta) $",
         col="blue"
    )
    #Determinar coeficiente de correlación
    r=cor(t5$Superficie,t5$Precio.Venta,method="pearson")
    print(r)
    ## [1] 0.8210494
    #Incluir etiqueta de datos en la gráfica
    text(x=100,y=2500000,bquote(r ==.(round(r,2))))
    #Incluir línea de tendencia en la gráfica
    abline(lm(t5$Precio.Venta~t5$Superficie),col="red",lwd=2)

PUNTO 2

¿Discriminación salarial por genero – Existe?

El salario acumulado en nueve meses de 2008-09 para profesores asistentes, profesores asociados y profesores en una universidad en los EE. UU. Los datos se recogieron como parte del esfuerzo continuo de la administración de la universidad para monitorear las diferencias salariales entre los miembros masculinos y femeninos de la facultad.

rank: Factor ordinal con niveles AssocProf AsstProf Prof

discipline: Factor con niveles A (“teórico”) o B (“aplicado”).

yrs.since.phd: Años transcurrido desde la obtención del doctorado.

yrs.service: Años de servicio.

sex: Factor nominal con niveles Female (Femenino) o Male (Masculino).

salary: Salario de nueve meses, en dólares.

En consistencia con el objetivo del estudio, se espera que usted construya un informe sintético, en el cual, a través de una visualización contundente de los datos y el contraste adecuado de indicadores resumen, contribuya a la institución a responder las siguientes dos preguntas de investigación.
  1. ¿Existe una diferencia salarial entre hombres y mujeres?

    library(readxl)
    datos=read_excel("C:/Users/jemma/OneDrive/Escritorio/MÉTODOS CUANTITATIVOS PARA ANÁLISIS DE INFORMACIÓN/TALLER02/Salaries.xlsx")
    summary(datos)
    ##      rank            discipline        yrs.since.phd    yrs.service   
    ##  Length:397         Length:397         Min.   : 1.00   Min.   : 0.00  
    ##  Class :character   Class :character   1st Qu.:12.00   1st Qu.: 7.00  
    ##  Mode  :character   Mode  :character   Median :21.00   Median :16.00  
    ##                                        Mean   :22.31   Mean   :17.61  
    ##                                        3rd Qu.:32.00   3rd Qu.:27.00  
    ##                                        Max.   :56.00   Max.   :60.00  
    ##      sex                salary      
    ##  Length:397         Min.   : 57800  
    ##  Class :character   1st Qu.: 91000  
    ##  Mode  :character   Median :107300  
    ##                     Mean   :113706  
    ##                     3rd Qu.:134185  
    ##                     Max.   :231545
    View(datos)

    Inicialmente, graficamos el salario promedio de los profesores de la Universidad de EEUU por sexo. Es importante mencionar que el tamaño de la población de profesores de sexo masculino es mayor que la población de profesores de sexo femenino, lo que dificulta una comparación de las poblaciones con el indicador de promedio. Se tiene que:

    ## 
    ## Female   Male 
    ##     39    358
    #Hacer gráfico de barras
    b1=barplot(tapply(datos$salary,datos$sex,mean),
               main="Salario promedio de profesores de una Universidad de EEUU por sexo",
               xlab="Sexo",
               ylab="Salario promedio",
               col=c("#CD6090","#98F5FF"),
               ylim=c(0,180000),
               )
    #Incluir etiqueta de datos en el gráfico
    text(x=b1,
         y=round(tapply(datos$salary,datos$sex,mean),0),
         label=round(tapply(datos$salary,datos$sex,mean),0),
         pos=3,cex=0.8,col="red")

    Para enfrentar dicha difcutad, se calcula la mediana de ambas poblaciones para para identificar una diferencia de rango salarial.

    ## Female   Male 
    ## 103750 108043
    De acuerdo con lo anterior, los profesores de sexo masculino tienden a ganar más que los profesores de sexo femenino en la Universidad objeto de estudio de EEUU.
  2. Si la diferencia existe: ¿son atribuibles exclusivamente al género de los profesores? O ¿existen otras características que pueden explicar la diferencia salarial?

    A continuación, se analizan las demás variables para identificar si son atribuibles a la diferencia de rango salarial entre las dos categorías de sexo.

    Iniciamos revisando la relación entre los años de servicio y años de obtención de doctorado con el rango salarial de los docentes clasificados por sexo.

    par(mfrow=c(1,2))
    t1=data.frame(datos[datos$sex=="Female",])
    t2=data.frame(datos[datos$sex=="Male",])
    plot(x=t1$yrs.service,
         y=t1$salary,
         main="Años de servicio vs salario sex F",
         xlab="Años de servicio",
         ylab="Salario",
         col="pink",
         pch=16,
         ylim=c(0,250000),
         xlim=c(0,50)
         )
    r1=cor(t1$yrs.service,t1$salary,method="pearson")
    text(x=10,y=225000,bquote(r ==.(round(r1,2))))
    
    plot(x=t2$yrs.service,
         y=t2$salary,
         main="Años de servicio vs salario sex M",
         xlab="Años de servicio",
         ylab="Salario",
         col="lightblue",
         pch=16,
         ylim=c(0,250000),
         xlim=c(0,60)
         )
    r2=cor(t2$yrs.service,t2$salary,method="pearson")
    text(x=10,y=225000,bquote(r ==.(round(r2,2))))

    par(mfrow=c(1,2))
    t1=data.frame(datos[datos$sex=="Female",])
    t2=data.frame(datos[datos$sex=="Male",])
    plot(x=t1$yrs.since.phd,
         y=t1$salary,
         main="Años obtención phd vs salario sex F",
         xlab="Años obtención phd",
         ylab="Salario",
         col="pink",
         pch=16,
         ylim=c(0,250000),
         xlim=c(0,60)
    )
    r3=cor(t1$yrs.since.phd,t1$salary,method="pearson")
    text(x=10,y=225000,bquote(r ==.(round(r3,2))))
    
    plot(x=t2$yrs.since.phd,
         y=t2$salary,
         main="Años de obtención phd vs salario sex M",
         xlab="Años de obtención phd",
         ylab="Salario",
         col="lightblue",
         pch=16,
         ylim=c(0,250000),
         xlim=c(0,60)
    )
    r4=cor(t2$yrs.since.phd,t2$salary,method="pearson")
    text(x=10,y=225000,bquote(r ==.(round(r4,2))))

    De acuerdo con el coeficiente de correlación, la relación entre las variables de año de servicio y años de obtención del doctorado en la categoría de sexo masculino es más débil en comparación con la relación de las variables y la categoría de sexo femenino. Sin embargo, no se afirma una fuerte relación lineal entre las variables para ningún sexo.

    Posteriormente, se analiza si la categoría docente (AssocProf AsstProf Prof) y el nivel (A (“teórico”) o B (“aplicado”)) tiene relación con el rango salarial.

    b10=barplot(tapply(t1$salary,t1$rank,mean),
               main="Salario promedio de profesores F por rango",
               xlab="Rango",
               ylab="Salario promedio",
               col=c("#CD6090","#98F5FF","pink"),
               ylim=c(0,180000),
    )
    text(x=b10,
         y=round(tapply(t1$salary,t1$rank,mean),0),
         label=round(tapply(t1$salary,t1$rank,mean),0),
         pos=3,cex=0.8,col="red")

    b11=barplot(tapply(t2$salary,t2$rank,mean),
                main="Saario promedio de profesores M por rango",
                xlab="Rango",
                ylab="Salario promedio",
                col=c("#CD6090","#98F5FF","pink"),
                ylim=c(0,180000),
    )
    text(x=b11,
         y=round(tapply(t2$salary,t2$rank,mean),0),
         label=round(tapply(t2$salary,t2$rank,mean),0),
         pos=3,cex=0.8,col="red")

    b12=barplot(tapply(t1$salary,t1$discipline,mean),
                main="Salario promedio de profesores F por nivel",
                xlab="Nivel",
                ylab="Salario promedio",
                col=c("#CD6090","#98F5FF","pink"),
                ylim=c(0,180000),
    )
    text(x=b12,
         y=round(tapply(t1$salary,t1$discipline,mean),0),
         label=round(tapply(t1$salary,t1$discipline,mean),0),
         pos=3,cex=0.8,col="red")

    b13=barplot(tapply(t2$salary,t2$discipline,mean),
                main="Saario promedio de profesores M por nivel",
                xlab="Nivel",
                ylab="Salario promedio",
                col=c("#CD6090","#98F5FF","pink"),
                ylim=c(0,180000),
    )
    text(x=b13,
         y=round(tapply(t2$salary,t2$discipline,mean),0),
         label=round(tapply(t2$salary,t2$discipline,mean),0),
         pos=3,cex=0.8,col="red")

    Los gráficos de barra permiten afirmar que la categoría y el nivel del docente influyen en su rango salarial. El personal que se encuentre en nivel “B” y categoría “Prof” , independientemente de su género, cuenta con un salario mayor en comparación a personal nivel “A” y categoría “AsstProf” o “AssocProf”.

    Sin embargo, la escala salarial es diferente en ambos géneros. Docentes de sexo masculino nivel “B” y categoría “Profe” ganan más en comparación a docentes de sexo femenino con las mismas características.

    De acuerdo con lo anterior, se analizan las demás características de este segmento de población: docentes en nivel “B” y categoría “Prof”.

    par(mfrow=c(2,2))
    
    t10=data.frame(datos[datos$sex=="Female"&datos$rank=="Prof"&datos$discipline=="B",])
    t20=data.frame(datos[datos$sex=="Male"&datos$rank=="Prof"&datos$discipline=="B",])
    
    plot(x=t10$yrs.since.phd,
         y=t10$salary,
         main="Años obtención phd vs salario sex F",
         xlab="Años obtención phd",
         ylab="Salario",
         col="pink",
         pch=16,
         ylim=c(0,250000)
    )
    r10=cor(t10$yrs.since.phd,t10$salary,method="pearson")
    text(x=20,y=225000,bquote(r ==.(round(r10,2))))
    
    plot(x=t20$yrs.since.phd,
         y=t20$salary,
         main="Años obtención phd vs salario sex M",
         xlab="Años obtención phd",
         ylab="Salario",
         col="blue",
         pch=16,
         ylim=c(0,250000)
    )
    r20=cor(t20$yrs.since.phd,t20$salary,method="pearson")
    text(x=20,y=225000,bquote(r ==.(round(r20,2))))
    
    plot(x=t10$yrs.service,
         y=t10$salary,
         main="Años servicio vs salario sex F",
         xlab="Años servicio",
         ylab="Salario",
         col="pink",
         pch=16,
         ylim=c(0,250000)
    )
    r11=cor(t10$yrs.service,t10$salary,method="pearson")
    text(x=20,y=225000,bquote(r ==.(round(r11,2))))
    
    plot(x=t20$yrs.since.phd,
         y=t20$salary,
         main="Años servicio vs salario sex M",
         xlab="Años servicio",
         ylab="Salario",
         col="blue",
         pch=16,
         ylim=c(0,250000)
    )
    r22=cor(t20$yrs.service,t20$salary,method="pearson")
    text(x=20,y=225000,bquote(r ==.(round(r22,2))))

    Los factores de correlación para los docentes de sexo masculino indican que no hay una relación lineal aparente entre ellas. En comparación, los factores de correlación para los docentes de sexo femenino es un poco más fuerte.

    Aunque la relación entre las variables con el rango salarial de los docentes de sexo femenino es más fuerte en comparación con el rango salarial de los docentes de sexo masculino, estos últimos ganan más que las primeras sin justa causa.