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:
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
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")
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")
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")
Ú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
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)
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.¿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.
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.