Prueba de Mann-Whitney

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