Taller 2
#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”)
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.
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"
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"
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"
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
par(mfrow=c(1,1))
plot(na.omit(CollegeDistance$distance), ylab = "Distancia en 10 millas", xlab = "Viviendas", col = c("blue", "red"),
main = "Distance - Universidad")
par(mfrow=c(1,1))
plot(CollegeDistance$region, xlab = "Región", ylab = "Frecuencia", col =2:7,
main = "Diagrama de Barras\nRegiones")
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)
par(mfrow=c(1,1))
boxplot(CollegeDistance$distance ~ CollegeDistance$education, col = c("yellow", "green"), horizontal = TRUE,xlab = "distance",
main = "Boxplot de Distance")
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.