Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Ordem das amostras na funcao scipy.stats.mannwhitneyu

Não entendi direito como escolher a ordem das amostras para colocar na função scipy.stats.mannwhitneyu e correlacionar com o parâmetro "alternative". O último exercício apresentado pelo professor no curso representa uma hipótese alternativa onde a média da renda das mulheres é menor do que a dos homens. E foi informado assim:

u, p_valor = mannwhitneyu(mulheres, homens, alternative='less')

Daí, eu depreendi que deveria correlacionar a ordem com a hipótese alternativa (mulheres < ('less') homens).

Porém, no exercício que foi proposto para fazermos, isso foi invertido. A hipótese alternativa era se a média com exercícios era maior que a média sem exercícios. Eu achei que, seguindo o exemplo anterior, teria que informar assim:

mannwhitneyu(com_Exercicios, sem_Exercicios, alternative='greater'), já que queria demonstrar "com_exercicios > ('greater') sem_exercicios".

Porém, na resolução informaram exatamente o contrário:

mannwhitneyu(sem_Exercicios, com_Exercicios, alternative='greater').

Fiquei sem entender como escolher essa ordem de informar as amostras e a correlação com o parâmetro 'alternative'.

3 respostas

Olá Maurício, Fiquei com a mesma dúvida que você. Quando estava resolvendo o exercício pensei em utilizar tanto:

mannwhitneyu(com_ex, sem_ex, alternative='greater')

Para descobrir se realizar exercícios era aumentava a média. Quanto pensei em utilizar:

mannwhitneyu(sem_ex, com_ex, alternative='less')

Para verificar se alunos que não praticam exercícios tem nota menor.

Você conseguiu descobri o porquê da resposta correta estar:

mannwhitneyu(sem_Exercicios, com_Exercicios, alternative='greater')

Caso você tenha descoberto, poderia me explicar? Abraços.

Ainda não sei. Estou esperando para ver se alguém consegue explicar, Rafael. Abs.

solução!

Oi Maurício,

Seu raciocínio está totalmente correto. O exercício estava incorreto e eu já modifiquei o conteúdo dele. A resposta correta é exatamente esta que você sugeriu. Em código seria algo assim:

from scipy.stats import mannwhitneyu

sem_Exercicios = pd.Series([7, 6, 7, 8, 6, 8, 6, 9, 5])
com_Exercicios = pd.Series([8, 7, 6, 6, 8, 6, 10, 6, 7, 8])

significancia = 0.10

u, p_valor = mannwhitneyu(com_Exercicios, sem_Exercicios, alternative='greater')

print('u =', u)

if(p_valor <= significancia):
    print('Rejeitar H0')
else:
    print('Aceitar H0')

Valeu pelo feedback