# 4 cifras significativas y sin notación científica:options(digits =4, scipen =999)# cargar librerías: library(FactoClass)library(plotly)# para gráficos interactivoslibrary(knitr)# para función kable (tablas estáticas)library(DT)# para tablas interactivas# cargar la tabla ejemplo admitidos:data(admi)n<-nrow(admi)# n: número de individuos
Variables continuas
# Algunas correlacioneskable(cor(admi[,c(7,15)], admi[,2:6]), digits =2)
mate
cien
soci
text
imag
exam
0.75
0.65
0.59
0.52
0.46
age
0.10
-0.02
-0.03
-0.01
0.04
# Diagramas de dispersión y densidades _kernel_plotpairs(admi[,2:6])
# Matriz de varianzas y covarianzas muestraleskable(var(admi[,2:6]), digits =2)
mate
cien
soci
text
imag
mate
1.28
0.39
0.24
0.27
0.24
cien
0.39
1.00
0.14
0.20
0.12
soci
0.24
0.14
0.75
0.32
0.09
text
0.27
0.20
0.32
0.98
0.05
imag
0.24
0.12
0.09
0.05
1.01
# Matriz de varianzas y covarianzas poblacionalesn<-nrow(admi)kable(var(admi[, 2:6])*(n-1)/n, digits =2)
mate
cien
soci
text
imag
mate
1.28
0.39
0.24
0.27
0.24
cien
0.39
1.00
0.14
0.20
0.12
soci
0.24
0.14
0.75
0.32
0.09
text
0.27
0.20
0.32
0.98
0.05
imag
0.24
0.12
0.09
0.05
1.00
# Matriz de correlacioneskable(cor(admi[, 2:6]), digits =2)
mate
cien
soci
text
imag
mate
1.00
0.34
0.24
0.24
0.21
cien
0.34
1.00
0.16
0.20
0.12
soci
0.24
0.16
1.00
0.37
0.11
text
0.24
0.20
0.37
1.00
0.05
imag
0.21
0.12
0.11
0.05
1.00
Variables continua y cualitativa
# Diagramas de caja _boxplots_par(bty="n")sorted_carr<-with(admi, reorder(carr, mate, median, na.rm =T))boxplot(admi$mate~sorted_carr, las =1, col =4, horizontal =T)
# Gráficos de violín con puntos y mediasorted_carr<-with(admi, reorder(carr, mate, mean, na.rm=T))fig<-admi%>%plot_ly(x =~mate, split =sorted_carr, type ='violin', points ="all", pointpos =0, meanline =list(visible =T, color ="black"))fig<-fig%>%layout(xaxis =list(title ="mate"), yaxis =list(title ="sorted carr"))fig
# Razones de correlación (porcentajes)kable(centroids(admi[, 2:7], admi$carr)$cr*100, digits =2)
mate
cien
soci
text
imag
exam
15.86
4.31
3.22
2.34
4.42
11.87
Valores test
Sea X con E[X] = \mu y Var[X] = \sigma^2, entonces, para una muestra de tamaño n_k tomada con reemplazamiento (o para una población infinita), se tiene que: E[\bar{X}_k] = \mu y Var\left[\bar{X}_k\right] = \frac{\sigma^2}{n_k}.
Para una muestra sin reemplazamiento de una población finita n, se aplica el factor de corrección: \frac{n - n_k}{n - 1}, entonces, en este caso se tiene que: E[\bar{X}_k] = \mu y Var\left[\bar{X}_k\right] = \frac{n - n_k}{n - 1} \frac{\sigma^2}{n_k}.
Estandarizando el valor \bar{x}_k que tenemos, se obtiene que, \frac{\bar{x}_k - \mu}{\sigma_k} = \sqrt{\frac{(n - 1)n_k}{n - n_k}} \frac{\bar{x}_k - \mu}{\sigma}
Mediante la anterior fórmula podemos obtener valores indicativos, de qué tan lejos está una media \bar{x}_k con respecto a la media general o global, en términos de cantidad de desviaciones estándar \sigma_k, ya sea a la derecha o a la izquierda.
# Valores test para caracterización de carreras# según los resultados del examencluster.carac(admi[,2:7], admi$carr, tipo.v ="co", v.lim =2, dn =2, dm =2, neg =TRUE)
# Gráficos de los perfiles fila y perfiles columnapar(mfrow=c(2,1), mai=c(0.4,1,0.3,0.1))plotct(t(tc), "row", col=2:5)plotct(tc, "row", col=2:4)
# Gráficos de perfiles de las carreras según cada cualitativapar(mfrow =c(3,2), mai =c(0.3,1,0.2,0.1), las =1, cex =0.7)for(iin8:13){tc<-unclass(table(admi$carr, admi[,i]))plotct(tc, "row", col=1+(1:ncol(tc)))title(main =names(admi)[i])}
# Valores indicativos de asociaciónkable(chisq.carac(admi[,8:11], admi$carr, decr =FALSE), digits=3)
chi2
dfr
pval
tval
phi2
gene
44.108
6
0.000
5.264
0.099
estr
29.190
12
0.004
2.679
0.066
orig
9.676
12
0.644
-0.370
0.022
edad
33.553
18
0.014
2.189
0.075
Valores test
# Además de graficar, la función plotct devuelve # tabla de contingencia y tablas de perfilestcCarrNiMa<-unclass(table(admi$niMa, admi$carr))tabs<-plotct(tcCarrNiMa, tables =TRUE)
# Tabla perfiles columnakable(tabs$perC, digits =1)
Biol
Esta
Farm
Fisi
Geol
Mate
Quim
marg
siMa
87.3
80.3
90.4
54.9
53.3
43.4
77.8
70.8
noMa
12.7
19.7
9.6
45.1
46.7
56.6
22.2
29.2
# Tabla de contingencia (frec. rel.)kable(tabs$ctm/n*100, digits =1)
Biol
Esta
Farm
Fisi
Geol
Mate
Quim
marR
siMa
12.4
11.9
14.8
10.1
5.4
5.2
11.0
70.8
noMa
1.8
2.9
1.6
8.3
4.7
6.7
3.1
29.2
marC
14.2
14.8
16.4
18.4
10.1
11.9
14.2
100.0
# Tabla de contingencia (frec. abs.)kable(tabs$ctm, digits =0)
Biol
Esta
Farm
Fisi
Geol
Mate
Quim
marR
siMa
55
53
66
45
24
23
49
315
noMa
8
13
7
37
21
30
14
130
marC
63
66
73
82
45
53
63
445
# Valor test para Biología (k=1) y "siMa" (j=1)# De n = 445, n_j = 315 tienen la característica "siMa"# Al tomar una muestra sin reemplazamiento de n_k = 63# ¿cuál es la probabilidad de que hayan salido n_kj = 55# o algo "peor" (más alejado de la independencia)?# valor p = P[ X >= 55 ] donde X ~ Hg(N = 445, M = 315, n = 63)# P[ X >= 55 ] = 1 - P[ X <= 54 ](vp<-1-phyper(54, 315, 445-315, 63))
[1] 0.0008624
# P[ X >= 55 ] = P[ X > 54 ](vp<-phyper(54, 315, 445-315, 63, lower.tail =FALSE))
[1] 0.0008624
# Cuantil de la normal asociado a ese valor p (dos colas)(t<-qnorm(vp/2, lower.tail =FALSE))
[1] 3.332
# Representación gráfica del cuantil (valor test) obtenidoplot(c(-5,5), c(-0.03, 0.4), type ="n", bty ="n", axes =F, xlab ="", ylab ="")abline(v =seq(-5,5), h =seq(0, 0.4, 0.1), col ="gray")abline(v =c(-t,t), lty =2, col ="red")# cuantilesaxis(1, pos=0)axis(2, pos=0, las=1)curve(dnorm(x), add =T, las =1, col ="blue")text(t, 0, signif(vp/2,2), adj =c(0,1), cex =0.7, col ="blue")text(t, -0.03, round(t,3), col ="red", cex =0.9)
# Valores test para caracterización de carreras# según las variables cualitativascluster.carac(admi[,8:13], admi[,1])