ESta prueba esta diseñada para determinar si 2 muestras han sido extraidas de la misma poblacion, ademas de que las muestras no necesiten tener una distribucion especifica; y nos ayuda a comparar 2 grupos de rangos y determinar si la diferencua no se deba al azar (osea que la diferencia esta estadísticamente significativa).
Para nuestro proyecto tendremos una muestra de la temperatura ambiente entre hombres y mujeres que encontraron mas comoda. Y el problema es determinar, dada esta muestra aletoria, si la temperatura promedio es la misma para hombres y para mujeres.
Matriz de Muestra
datos=matrix(c(Hombres,Mujeres),ncol=2)
colnames(datos)=c("XY","XX") #Los hombres se les asigna XY y a las mujeres XX
datos
## XY XX
## [1,] 74 75
## [2,] 72 77
## [3,] 77 78
## [4,] 76 79
## [5,] 76 77
## [6,] 73 73
## [7,] 75 78
## [8,] 73 79
## [9,] 74 78
## [10,] 75 80
Parámetro alfa Para efectos practicos y comunes siempre se aplica una alfa=5% para la 1ª prueba y un alfa=1% para la 2º prueba.
alfa=0.05
alfa
## [1] 0.05
Función: prueba U-Mann y Whitney de 2 colas
Nuestra funcion de Mann-Whitney la llamaremos “Mann_W”, la cual realizará la prueba y nos dirá si aceptamos o rechazamos H0:
Mann_W=function(datos,alfa){
aux=NULL
aux_n=NULL
nn=NULL
comb_ord=NULL
for(i in 1:ncol(datos)){
aux=datos[,i]
comb_ord=c(comb_ord,aux)
aux_n=length(datos[,i])
nn=c(nn,aux_n)
}
comb_ord=sort(comb_ord)
N=sum(nn)
N
tab_ran=matrix(c(comb_ord,1:N,rank(comb_ord)), ncol=3)
tab_ran
colnames(tab_ran)=c("datos_combi","rango_sup","ran_real")
tab_ran
for(k in 1:length(nn)){
contador=NULL
for(i in 1:nn[k]){
for(j in 1:N){
if(datos[i,k]==tab_ran[j,1]){
Ran_x=tab_ran[j,3]
}
}
contador=rbind(contador,Ran_x)
}
datos=cbind(datos,contador)
}
Z=qnorm(1-alfa/2)
k
T_o=sum(datos[,k+1])
empates=length(which(duplicated(c(unique(datos[,1]),
unique(datos[,2])))))
##estadistico de prueba sin empates
if(empates==0){
T_1=T_o
}else{ ###Estadistcio de prueba cuando hay empates
aux_2=NULL
sum_cua=NULL
for(s in (k+1):ncol(datos)){
aux_2=datos[,s]**2
sum_cua=c(sum_cua,sum(aux_2))
}
sum_cua=sum(sum_cua)
T_1=(T_o*nn[1]*((N+1)/2))/sqrt(prod(nn)*sum_cua-prod(nn)*((N+1)**2)/(4*(N+1)))
}
###Prueba de hipótesis
if(T_1>Z || T_1< (-Z)){
return(list("Rechazamos Ho","T1=",T_1,"Z=",Z,"Tabla",datos))
}else{
return(list("No Rechazamos Ho","T1=",T_1,"Z=",Z,"Tabla",datos))
}
}
Prueba 1
Mann_W(datos,.05)
## [[1]]
## [1] "Rechazamos Ho"
##
## [[2]]
## [1] "T1="
##
## [[3]]
## [1] 13.36214
##
## [[4]]
## [1] "Z="
##
## [[5]]
## [1] 1.959964
##
## [[6]]
## [1] "Tabla"
##
## [[7]]
## XY XX ran_real ran_real
## Ran_x 74 75 5.5 8.0
## Ran_x 72 77 1.0 13.0
## Ran_x 77 78 13.0 16.0
## Ran_x 76 79 10.5 18.5
## Ran_x 76 77 10.5 13.0
## Ran_x 73 73 3.0 3.0
## Ran_x 75 78 8.0 16.0
## Ran_x 73 79 3.0 18.5
## Ran_x 74 78 5.5 16.0
## Ran_x 75 80 8.0 20.0
Prueba 2
Mann_W(datos,.01)
## [[1]]
## [1] "Rechazamos Ho"
##
## [[2]]
## [1] "T1="
##
## [[3]]
## [1] 13.36214
##
## [[4]]
## [1] "Z="
##
## [[5]]
## [1] 2.575829
##
## [[6]]
## [1] "Tabla"
##
## [[7]]
## XY XX ran_real ran_real
## Ran_x 74 75 5.5 8.0
## Ran_x 72 77 1.0 13.0
## Ran_x 77 78 13.0 16.0
## Ran_x 76 79 10.5 18.5
## Ran_x 76 77 10.5 13.0
## Ran_x 73 73 3.0 3.0
## Ran_x 75 78 8.0 16.0
## Ran_x 73 79 3.0 18.5
## Ran_x 74 78 5.5 16.0
## Ran_x 75 80 8.0 20.0
Mann_W(datos,.1)
## [[1]]
## [1] "Rechazamos Ho"
##
## [[2]]
## [1] "T1="
##
## [[3]]
## [1] 13.36214
##
## [[4]]
## [1] "Z="
##
## [[5]]
## [1] 1.644854
##
## [[6]]
## [1] "Tabla"
##
## [[7]]
## XY XX ran_real ran_real
## Ran_x 74 75 5.5 8.0
## Ran_x 72 77 1.0 13.0
## Ran_x 77 78 13.0 16.0
## Ran_x 76 79 10.5 18.5
## Ran_x 76 77 10.5 13.0
## Ran_x 73 73 3.0 3.0
## Ran_x 75 78 8.0 16.0
## Ran_x 73 79 3.0 18.5
## Ran_x 74 78 5.5 16.0
## Ran_x 75 80 8.0 20.0