Resolución

Supongamos que los individuos del test provienen de dos poblaciones normales (lo que no es suponer poca cosa dado que acá la muestra tiene resultados en una escala ordinal): \(\boldsymbol{x_i} \sim N_4(\boldsymbol{\theta},\Sigma)\) para los hombres e \(\boldsymbol{y_i} \sim N_4(\boldsymbol{\lambda},\Sigma)\) para las mujeres, con \(1\leq i\leq 30\) Queremos comparar los perfiles \((1,\theta_1),...,(4,\theta_4)\) y \((1,\lambda_1),...,(4,\lambda_4)\). Una primera aproximación al problema es ofrecida por el gráfico de los perfiles.

Gráfico de perfiles

plot(c(1,2,3,4), mu1, col="red", pch=17, xlim=c(1,4), ylim=c(3.7,4.8), xlab="Tests 1 a 4", ylab="Medias", main="Perfiles de las poblaciones")
points(c(1,2,3,4), mu2, col="blue", pch=19)
lines(c(1,2,3,4), mu1, col="red")
lines(c(1,2,3,4), mu2, col="blue")
legend(1, 4.8L, legend=c("Hombres", "Mujeres"), col=c("red","blue"),lty=1, cex=1)

El inconveniente con estos gráficos es que, en ocasiones, ofrecen una visión incompleta del problema: a priori, sería difícil afirmar que los perfiles son coincidentes o, siquiera, paralelos. La diferencia parece ser sutil pero una lectura rápida del gráfico nada nos dice acerca de la significatividad de las posibles diferencias (si las hubiera). Por eso, realizamos algunos tests.

#Gráfico de los perfiles (sin magnificar variación por escala)
plot(c(1,2,3,4), mu1, col="red", pch=17, xlim=c(1,4), ylim=c(0,5), xlab="Tests 1 a 4", ylab="Medias", main="Perfiles de las poblaciones")
points(c(1,2,3,4), mu2, col="blue", pch=19)
lines(c(1,2,3,4), mu1, col="red")
lines(c(1,2,3,4), mu2, col="blue")
legend(1, 2, legend=c("Hombres", "Mujeres"), col=c("red","blue"),lty=1, cex=1)

Test de paralelismo

Se quiere testear \(H_{01}:\theta_k-\theta_{k-1}=\lambda_k-\lambda_{k-1}\) con \(k=2,...,4\).

Sabemos que esto puede ser expresado en términos de un test de Hotelling de la forma \(H_{01}:\boldsymbol{C_1\theta}=\boldsymbol{C_1\lambda}\) con: \(C_1=\left(\begin{smallmatrix} 1 & -1 & 0 & 0\\ 0 & 1 & -1 & 0 \\ 0 & 0 & 1 & -1 \end{smallmatrix}\right)\), una matriz de rango \(p-1\).

En particular, sabemos que \(\frac{(N-p)}{(p-1)(N-2)}T_0^2 \sim F_{p-1,N-p}\). Luego, se rechazará \(H_{01}\) si \(T_0^2\frac{N-p}{(p-1)(N-2)}>f_{p-1, N-p}(\alpha)\).

alpha <- 0.05

C1 <- matrix(c(1,-1,0,0,0,1,-1,0,0,0,1,-1), ncol=4, byrow=T)

n1 <- 30
n2 <- 30

S1 <- cov(datos.h)
S2 <- cov(datos.m)
S <- ((n1-1)*S1+(n2-1)*S2)/(N-2)

T0 <- (n1*n2/N)*(mu1-mu2)%*%t(C1)%*%solve(C1%*%S%*%t(C1))%*%C1%*%(mu1-mu2)
F0  <-  T0*(N-p)/((p-1)*(N-2))
falpha <- qf(alpha, p-1, N-p, ncp=0, lower.tail = FALSE, log.p = FALSE)
pvalor <- pf(F0, p-1, N-p, ncp=0, lower.tail = FALSE, log.p = FALSE)

C1
##      [,1] [,2] [,3] [,4]
## [1,]    1   -1    0    0
## [2,]    0    1   -1    0
## [3,]    0    0    1   -1
F0
##          [,1]
## [1,] 2.579917
falpha
## [1] 2.769431
pvalor[1,1]
## [1] 0.06255945

En efecto, no se rechaza \(H_{01}\) con un p-valor de 0.06. Podemos suponer el paralelismo en los perfiles.

Test de perfiles coincidentes

Sabemos que no se rechaza \(H_{01}\), es decir, hasta ahora podemos suponer paralelismo. Se quiere testear \(H_{02}:\sum_{j=1}^4 \theta_j=\sum_{j=1}^4 \lambda_j\).

Sabemos que esto puede ser expresado en términos de un test de Hotelling de la forma \(H_{02}:\boldsymbol{C_1\theta}=\boldsymbol{C_1\lambda}\) con: \(C_1=\left(\begin{smallmatrix} 1 & 1 & 1 & 1 \end{smallmatrix}\right)\), una matriz de rango 1; o bien, un vector \(\mathbf{1_4}^T=(1,1,1,1)\).

En particular, sabemos que \(T_0^2 \sim F_{1,N-2}\). Luego, se rechazará \(H_{02}\) si \(T_0^2>f_{1, N-2}(\alpha)\).

Además, como la \(F\) tiene 1 grado, rechazaremos si \(\left|T_0\right|>t_{N-2}(\alpha/2)\).

C1 <- matrix(c(1,1,1,1), ncol=4, byrow = T)

#Pruebo el Hotelling con la F
T0 <- (n1*n2/N)*(mu1-mu2)%*%t(C1)%*%solve(C1%*%S%*%t(C1))%*%C1%*%(mu1-mu2)
F0  <-  T0
falpha <- qf(alpha, 1, N-2, ncp=0, lower.tail = FALSE, log.p = FALSE)
pvalor <- pf(F0, 1, N-2, ncp=0, lower.tail = FALSE, log.p = FALSE)
#Verifico que da lo mismo la t (pues la F tiene un grado de libertad)
T0 <- abs(sum((mu1-mu2)))/sqrt(sum(S)*(1/n1+1/n2))
talpha <- qt(alpha/2, N-2, lower.tail = FALSE)
pvalor <- 2*pt(T0, N-2, lower.tail = FALSE)

C1
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
F0
##         [,1]
## [1,] 1.53277
falpha
## [1] 4.006873
pvalor
## [1] 0.2206853

En efecto, no se rechaza \(H_{02}\) con un p-valor de 0.22. Podemos suponer, además del paralelismo en los perfiles, que no hay efecto por poblaciones; es decir, que los perfiles son coincidentes.

Test de perfil común nivelado

Asumiendo perfiles coincidentes, se quiere testear si están al mismo nivel para todas las preguntas. Es decir, se quiere testear \(H_{03}:\theta_1+\lambda_{1}=...=\theta_4+\lambda_{4}\).

Sabemos que esto puede ser expresado en términos de un test de Hotelling de la forma \(H_{03}:\boldsymbol{C_1\theta}=\boldsymbol{C_1(-\lambda)}\) o bien \(H_{03}:\boldsymbol{C_1(\theta+\lambda)}=0\) con: \(C_1=\left(\begin{matrix} 1 & -1 & 0 & 0\\ 0 & 1 & -1 & 0 \\ 0 & 0 & 1 & -1 \end{matrix}\right)\), una matriz de rango \(p-1\).

En particular, sabemos que \(\frac{(N-p)}{(p-1)(N-2)}T_0^2 \sim F_{p-1,N-p}\). Luego, se rechazará \(H_{03}\) si \(T_0^2\frac{N-p}{(p-1)(N-2)}>f_{p-1, N-p}(\alpha)\).

C1 <- matrix(c(1,-1,0,0,0,1,-1,0,0,0,1,-1), ncol=4, byrow=T)

#Nota: OJO, parece equivalente a H01 pero se pude ver que ahora C1 afecta a mu1 + mu2, es decir a la suma (+), no la diferencia (-).
T0 <- (n1*n2/N)*(mu1+mu2)%*%t(C1)%*%solve(C1%*%S%*%t(C1))%*%C1%*%(mu1+mu2)
F0  <-  T0*(N-p)/((p-1)*(N-2))
falpha <- qf(alpha, p-1, N-p, ncp=0, lower.tail = FALSE, log.p = FALSE)
pvalor <- pf(F0, p-1, N-p, ncp=0, lower.tail = FALSE, log.p = FALSE)

C1
##      [,1] [,2] [,3] [,4]
## [1,]    1   -1    0    0
## [2,]    0    1   -1    0
## [3,]    0    0    1   -1
F0
##         [,1]
## [1,] 8.18807
falpha
## [1] 2.769431
pvalor[1,1]
## [1] 0.0001310162

En efecto, se rechaza \(H_{03}\) con un p-valor de 0.0001. Podemos suponer, además de los perfiles coincidentes, que sí existen efectos por preguntas.

Conclusiones

En suma, se concluye con nivel 0.95 que los perfiles son coincidentes (no hay diferencias en las valoraciones de hombres y de mujeres) pero sí hay diferencias entre las valoraciones al interior de las preguntas: o bien porque se percibe una diferencia respecto de la pregunta de “dar” y la de “recibir” o bien porque hay diferencias entre el amor apasionado las medias de algunas de ellas son menores, esto es, de algún modo en las dos poblaciones parece que se perciben más (osentimientos (ya sea compañerismo o amor apasionado) cuando se les pregunta acerca de “dar” respecto de “recibir”.

Conclusiones adicionales a lo pedido

En particular, si se corren tests de la forma del \(H_{03}\) por separado (6 en este caso), es decir, para ver si \(\theta_k+\lambda_{k}=\theta_{j}+\lambda_{j}\) con todas las posibles combinaciones \(k \neq j\), se verifica que: por un lado, dentro de un sentimiento (amor apasionado o compañerismo) no hay diferencias significativas entre la percepción de “dar” y “recibir”; y por otro, sí hay diferencias significativas entre los sentimientos de compañerismo y amor apasionado (sean dados o recibidos). En todos los casos se trabajó con el mismo nivel de significación: 0.95.

#Tests simil H03 con las combinaciones (hip nula) thetak+lambdak=thetaj+lambdaj
C1 <- matrix(c(1,-1,0,0), ncol=4, byrow=T) #Dar y recibir amor apasionado (no rechaza)
C1 <- matrix(c(0,1,-1,0), ncol=4, byrow=T) #Recibir amor apasionado y dar compañerismo (rechaza)
C1 <- matrix(c(0,0,1,-1), ncol=4, byrow=T) #Dar y recibir compañerismo (no rechaza)
C1 <- matrix(c(1,0,-1,0), ncol=4, byrow=T) #Dar amor apasionado y dar compañerismo (rechaza)
C1 <- matrix(c(1,0,0,-1), ncol=4, byrow=T) #Dar amor apasionado y recibir compañerismo (rechaza)
C1 <- matrix(c(0,1,0,-1), ncol=4, byrow=T) #Recibir amor apasionado y recibir compañerismo (rechaza)

T0 <- (n1*n2/N)*(mu1+mu2)%*%t(C1)%*%solve(C1%*%S%*%t(C1))%*%C1%*%(mu1+mu2)
F0  <-  T0
falpha <- qf(alpha, 1, N-2, ncp=0, lower.tail = FALSE, log.p = FALSE)
pvalor <- pf(F0, 1, N-2, ncp=0, lower.tail = FALSE, log.p = FALSE)