Modulo: Visualizacion de datos

Taller 2

  1. Descripcion de la base de datos CollegeDistance
#install.packages("AER")
#data(package="AER")
library(AER)
## Loading required package: car
## Loading required package: carData
## Loading required package: lmtest
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## Loading required package: sandwich
## Loading required package: survival
data("CollegeDistance")
#attach()

Pertenece a la libreria AER, con un marco de datos que contiene 4.739 observaciones sobre 14 variables.

 dim(CollegeDistance)
## [1] 4739   14

Datos transversales de la encuesta High School and Beyond realizada por el Departamento de Educación en 1980, con un seguimiento en 1986. La encuesta incluyó a estudiantes de aproximadamente 1100 escuelas secundarias.

Detalles Rouse (1995) calculó los años de educación asignando 12 años a todos los miembros de la clase superior. Cada año adicional de educación secundaria contaba como un año. A los estudiantes con títulos vocacionales se les asignaron 13 años, a los títulos de AA se les asignaron 14 años, a los títulos de licenciatura se les asignaron 16 años, a los que tenían alguna educación de posgrado se les asignó 17 años y a los que tenían un título de posgrado se les asignó 18 años.

Stock y Watson (2007) proporcionan archivos de datos separados para los estudiantes de los estados occidentales y los estudiantes restantes. CollegeDistance incluye ambos conjuntos de datos, los subconjuntos se obtienen fácilmente (ver también ejemplos).

Uso data(“CollegeDistance”)

  1. Identificacion de variables El nombre o identificacion de las variables que conforman esta base de datos es la siguiente:
names(CollegeDistance)
##  [1] "gender"    "ethnicity" "score"     "fcollege"  "mcollege"  "home"     
##  [7] "urban"     "unemp"     "wage"      "distance"  "tuition"   "education"
## [13] "income"    "region"

Para este taller realizaremos el estudio teniendo en cuenta las siguientes (05) variables:

names(CollegeDistance[1])
## [1] "gender"

género: factor que indica el sexo.

names(CollegeDistance[3])
## [1] "score"

puntaje: puntuación de la prueba compuesta del año base. Estas son pruebas de rendimiento que se dan a los estudiantes de último año de secundaria de la muestra.

names(CollegeDistance[9])
## [1] "wage"

salario: salario estatal por hora en la industria manufacturera en 1980.

names(CollegeDistance[10])
## [1] "distance"

distancia: distancia de la universidad de 4 años (en 10 millas).

names(CollegeDistance[8])
## [1] "unemp"

desempleado: tasa de desempleo del condado en 1980.

  1. Caracterizacion del conjunto de datos (todas las variables o maximo 5 de ellas, entre cualitativas y cuantitativas)
    1. Medidas de tendencia central: media, mediana, moda.

MEDIA

paste("Media de la variable score = ", mean(CollegeDistance$score,na.rm=TRUE))
## [1] "Media de la variable score =  50.889029336846"
paste("Media de la variable unemp = ", mean(CollegeDistance$unemp,na.rm=TRUE))
## [1] "Media de la variable unemp =  7.59721458109151"
paste("Media de la variable wage =", mean(CollegeDistance$wage,na.rm=TRUE))
## [1] "Media de la variable wage = 9.50050647833801"
paste("Media de la variable distance =", mean(CollegeDistance$distance,na.rm=TRUE))
## [1] "Media de la variable distance = 1.80286980565464"

MEDIANA

paste("Mediana de la variable score = ", median(CollegeDistance$score,na.rm=TRUE))
## [1] "Mediana de la variable score =  51.189998626709"
paste("Mediana de la variable unemp = ", median(CollegeDistance$unemp,na.rm=TRUE))
## [1] "Mediana de la variable unemp =  7.09999990463257"
paste("Mediana de la variable wage =", median(CollegeDistance$wage,na.rm=TRUE))
## [1] "Mediana de la variable wage = 9.68000030517578"
paste("Mediana de la variable distance =", median(CollegeDistance$distance,na.rm=TRUE))
## [1] "Mediana de la variable distance = 1"

MODA

#install.packages("modeest") 
library(modeest)
cal_moda<-function(x,y){ 
  mod= mlv(x, method = "meanshift")
  paste(" La Moda dela variable ", y, " es = ",mod)[1]
}

cal_moda(CollegeDistance$score, "score")
## [1] " La Moda dela variable  score  es =  54.7313013735264"
cal_moda(CollegeDistance$gender, "gender")
## [1] " La Moda dela variable  gender  es =  female"
cal_moda(CollegeDistance$wage, "wage")
## [1] " La Moda dela variable  wage  es =  9.94460516075695"
cal_moda(CollegeDistance$distance, "distance")
## [1] " La Moda dela variable  distance  es =  0.370603979893641"
cal_moda(CollegeDistance$unemp, "unemp")
## [1] " La Moda dela variable  unemp  es =  6.60851571078964"
 b. Medidas de variabilidad: rango, varianza, desviacion estandar, coeficiente de variacion  

RANGO

paste("Rango de la variable score = ", max(CollegeDistance$score,na.rm=TRUE)- min(CollegeDistance$score,na.rm=TRUE))
## [1] "Rango de la variable score =  43.8599967956543"
paste("Rango de la variable wage = ", max(CollegeDistance$wage,na.rm=TRUE)- min(CollegeDistance$wage,na.rm=TRUE))
## [1] "Rango de la variable wage =  6.36999988555908"
paste("Rango de la variable unemp = ", max(CollegeDistance$unemp,na.rm=TRUE)- min(CollegeDistance$unemp,na.rm=TRUE))
## [1] "Rango de la variable unemp =  23.4999996423721"
paste("Rango de la variable distance = ", max(CollegeDistance$distance,na.rm=TRUE)- min(CollegeDistance$distance,na.rm=TRUE))
## [1] "Rango de la variable distance =  20"

VARIANZA

paste("Varianza de la variable score = ", var(CollegeDistance$score,na.rm=TRUE))
## [1] "Varianza de la variable score =  75.7232309314856"
paste("Rango de la variable wage = ",var(CollegeDistance$wage,na.rm=TRUE))
## [1] "Rango de la variable wage =  1.80382917092485"
paste("Rango de la variable unemp = ", var(CollegeDistance$unemp,na.rm=TRUE))
## [1] "Rango de la variable unemp =  7.63737924351746"
paste("Rango de la variable distance = ", var(CollegeDistance$distance,na.rm=TRUE))
## [1] "Rango de la variable distance =  5.276796309962"

DESVIACION ESTANDAR

paste("Varianza de la variable score = ", sd(CollegeDistance$score,na.rm=TRUE))
## [1] "Varianza de la variable score =  8.7019096140724"
paste("Rango de la variable wage = ",sd(CollegeDistance$wage,na.rm=TRUE))
## [1] "Rango de la variable wage =  1.34306707610784"
paste("Rango de la variable unemp = ", sd(CollegeDistance$unemp,na.rm=TRUE))
## [1] "Rango de la variable unemp =  2.76358087334485"
paste("Rango de la variable distance = ", sd(CollegeDistance$distance,na.rm=TRUE))
## [1] "Rango de la variable distance =  2.29712783927277"

COEFICIENTE DE VARIACIÓN

coevar<- function(x,y){ 
  
  coe_var=sd(x)/mean(x)*100
  paste(" El coeficiente de variacion de la variable ", y, " es = ", coe_var)
}

coevar(CollegeDistance$score, "score")
## [1] " El coeficiente de variacion de la variable  score  es =  17.0997751921588"
#coevar(CollegeDistance$gender, "gender")
coevar(CollegeDistance$wage, "wage")
## [1] " El coeficiente de variacion de la variable  wage  es =  14.1367944874323"
coevar(CollegeDistance$distance, "distance")
## [1] " El coeficiente de variacion de la variable  distance  es =  127.415070798119"
coevar(CollegeDistance$unemp, "unemp")
## [1] " El coeficiente de variacion de la variable  unemp  es =  36.3762382100282"
  1. Medidas de colocación: cuartiles
cuartiles <- function(x,y){
  paste("Variable : ", y)
  paste("Cuartil 1 (Percentil 25) = ", quantile(x,0.25))
  paste("Cuartil 2 (Percentil 50) = ", quantile(x,0.50))
  paste("Cuartil 3 (Percentil 75) = ", quantile(x,0.75))
  
}
cuartiles(CollegeDistance$score, "score")
## [1] "Cuartil 3 (Percentil 75) =  57.769998550415"
#cuartiles(CollegeDistance$gender, "gender")
cuartiles(CollegeDistance$wage, "wage")
## [1] "Cuartil 3 (Percentil 75) =  10.1499996185303"
cuartiles(CollegeDistance$distance, "distance")
## [1] "Cuartil 3 (Percentil 75) =  2.5"
cuartiles(CollegeDistance$unemp, "unemp")
## [1] "Cuartil 3 (Percentil 75) =  8.89999961853027"
  1. Medidas de forma y simetría: coeficiente de asimetría, curtósis COEFICIENTE DE ASIMETRÍA
skewness=function(x,y) {
  expresion1=sum(((x-mean(x))/sd(x))^3)
  n=length(x)
  expresion2=n/((n-1)*(n-2))
  skew=expresion1*expresion2
  paste(" El coeficiente de asimetria de la variable ", y, " es = ",skew)
}

skewness(CollegeDistance$score, "score")
## [1] " El coeficiente de asimetria de la variable  score  es =  -0.0326649299697347"
skewness(CollegeDistance$wage, "wage")
## [1] " El coeficiente de asimetria de la variable  wage  es =  0.0930958411028822"
skewness(CollegeDistance$distance, "distance")
## [1] " El coeficiente de asimetria de la variable  distance  es =  3.00046289392294"
skewness(CollegeDistance$unemp, "unemp")
## [1] " El coeficiente de asimetria de la variable  unemp  es =  1.55897963062703"

CURTOSIS

kurtosis<- function(x,y){
  expresion1=sum(((x-mean(x))/sd(x))^4)
  n=length(x)
  expresion2=(n*(n+1))/((n-1)*(n-2)*(n-3))
  expresion3=(3*(n-1)^2)/((n-2)*(n-3))
  kurt=expresion1*expresion2-expresion3
  paste(" La curtosis para la variable ", y, " es = ", kurt)
}

kurtosis(CollegeDistance$score, "score") 
## [1] " La curtosis para la variable  score  es =  -0.876381226174567"
kurtosis(CollegeDistance$wage, "wage")
## [1] " La curtosis para la variable  wage  es =  -0.257529430588795"
kurtosis(CollegeDistance$distance, "distance")
## [1] " La curtosis para la variable  distance  es =  13.0520214706337"
kurtosis(CollegeDistance$unemp, "unemp")
## [1] " La curtosis para la variable  unemp  es =  5.41241710167637"
  1. Representacion del conjunto de datos segun el tipo de variable (todos los graficos deben de tener sus titulos y colores modificados)
  1. Grafico de densidad
par(mfrow=c(1,2))

plot(density(CollegeDistance$tuition),lwd=2, xlab= "Años", ylab = "1000 USD", col = "blue",
     main = "Matricula promedio", 
     xlim = c(0, 2), ylim = c(0, 2))

lines(density(CollegeDistance$wage),lwd=2, col = "red")
legend(15,0.052,c("Salario 1980"),lty=1,lwd=3,col=c("blue","red"))

plot(density(na.omit(CollegeDistance$unemp)),lwd=2,xlab= "1980", ylab = "Desempleados", col = "blue", 
     main = "Tasa de desempleados 1980", 
     xlim = c(0, 30), ylim = c(0, 1))

lines(density(na.omit(CollegeDistance$unem)),lwd=2, col = "red")
legend(3,1,c("Matriculados","Desempleados"),lty=1,lwd=2,col=c("blue","red"))

b. Diagrama circular

niños=CollegeDistance$urban[CollegeDistance$score>=median(CollegeDistance$score)][CollegeDistance$gender=="male"]
#niños
distancia=CollegeDistance$distance[CollegeDistance$urban=="no"][CollegeDistance$score>=median(CollegeDistance$score)][CollegeDistance$gender=="male"]
#distancia
dista=table(distancia)
nin=table(niños)
#pie(nin)
library(lessR)
## 
## lessR 4.1.8                         feedback: gerbing@pdx.edu 
## --------------------------------------------------------------
## > d <- Read("")   Read text, Excel, SPSS, SAS, or R data file
##   d is default data frame, data= in analysis routines optional
## 
## Learn about reading, writing, and manipulating data, graphics,
## testing means and proportions, regression, factor analysis,
## customization, and descriptive statistics from pivot tables.
##   Enter:  browseVignettes("lessR")
## 
## View changes in this or recent versions of lessR.
##   Enter: help(package=lessR)  Click: Package NEWS
##   Enter: interact()  for access to interactive graphics
##   New function: reshape_long() to move data from wide to long
## 
## Attaching package: 'lessR'
## The following object is masked _by_ '.GlobalEnv':
## 
##     kurtosis
## The following objects are masked from 'package:car':
## 
##     bc, recode, sp
Datos<- data.frame(gend = niños)
PieChart(gend, hole = 0.4, 
         values = "%", data = Datos,
         fill = c("red", "skyblue"), main = "Distribucion Ubicación urbana")

## >>> Suggestions
## PieChart(gend, hole=0)  # traditional pie chart
## PieChart(gend, values="%")  # display %'s on the chart
## PieChart(gend)  # bar chart
## Plot(gend)  # bubble plot
## Plot(gend, values="count")  # lollipop plot 
## 
## --- gend --- 
## 
##                   no    yes      Total 
## Frequencies:     863    225       1088 
## Proportions:   0.793  0.207      1.000 
## 
## Chi-squared test of null hypothesis of equal probabilities 
##   Chisq = 374.121, df = 1, p-value = 0.000
  1. Diagrama de dispersion
par(mfrow=c(1,1))

plot(na.omit(CollegeDistance$distance), ylab = "Distancia en 10 millas", xlab = "Viviendas", col = c("blue", "red"), 
     main = "Distance - Universidad")

  1. Diagrama de barras
par(mfrow=c(1,1))
plot(CollegeDistance$region, xlab = "Región",  ylab = "Frecuencia", col =2:7,
     main = "Diagrama de Barras\nRegiones")

  1. Histograma
niños=CollegeDistance$urban[CollegeDistance$score>=median(CollegeDistance$score)][CollegeDistance$gender=="male"]
distancia=CollegeDistance$distance[CollegeDistance$urban=="no"][CollegeDistance$score>=median(CollegeDistance$score)][CollegeDistance$gender=="male"]
dista=table(distancia)
p<-hist(distancia, xlab = "Distancia", ylim = c(0,600))
text(p$mids,p$counts,col = "red",labels=p$counts, adj=c(0.7, -0.5), cex=0.6)

  1. Boxplot
par(mfrow=c(1,1))
boxplot(CollegeDistance$distance ~ CollegeDistance$education, col = c("yellow", "green"), horizontal = TRUE,xlab = "distance",
        main = "Boxplot de Distance")

  1. Conclusiones e interpretacion de cada una de las 5 variables analizadas “gender” “region” –> variables de tipo categorica. Las cuales en el presente estudio limitó la generación de graficas con gran variedad de datos, Diagrama circular y Diagrama de Barras.

GENERAL: Se puede eobservar datos como las diferentes distancias con referencia a cada univresidad en el diagrama de dispersion y grafico de densidad, Tambien se evidencio que las regiones cuentan con un numero muy equilibrado.

NOTA: Ademas, debe adjuntar el archivo .Rmd utilizado como soporte, marcado con sus nombres y apellidos.

NOTA: Para la presentación de este taller se anexa el archivo .Rmd utilizado como soporte, elcual se encuentra identificado con mis nombres y apellidos. Adicional, se comparte el link de acceso a la publicación de RPubs.