1
resposta

Dúvida - introdução de letras ao lado das médias para facilitar a identificação das diferenças

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeOlá,

Com auxílio de ia estou montando código em python para comparação de médias usando o teste de Tukey (ver abaixo). Ao final do código, gostaria de introduzir comandos para aparecer as letras ao lado das médias de cada tratamento, conforme imagem acima de um estudo qualquer da internet, isso ajuda muito na interpretação. Outras ferramentas como sisvar e sas isso é possível. Não estou sendo claro o suficiente para a ia me auxiliar nessa questão, então estou pedindo auxílio dos especialistas.

importar as bibliotecas necessárias

import pandas as pd
from statsmodels.stats.anova import AnovaRM
from statsmodels.stats.multicomp import MultiComparison
from scipy.stats import f_oneway

Carregar os dados do arquivo Excel

df = pd.read_excel("/content/tukey.xlsx")

Calcular a média de cada tratamento

media_por_tratamento = df.groupby('trat')['resposta'].mean()
print("\nMédia de cada tratamento:")
print(media_por_tratamento)

separar os tratamentos e valores resposta

tratamentos = df['trat']
valores = df['resposta']

Realizar o teste de ANOVA

f_statistic, p_value = f_oneway(*[valores[tratamentos == trat].values for trat in tratamentos.unique()])

print("\nResultado do teste de ANOVA:")
print("Estatística F:", f_statistic)
print("Valor P:", p_value)

Realizar o teste de Tukey

multi_comp = MultiComparison(valores, tratamentos)
tukey_results = multi_comp.tukeyhsd()

print("\nResultado do teste de Tukey:")
print(tukey_results)
1 resposta

Olá, Marcos, tudo bem?

O que você pode tentar é criar um dicionário que associe cada tratamento a sua respectiva letra de significância. Isso pode ser feito manualmente com base nos resultados obtidos em tukey_results. Esta etapa exigirá uma interpretação cuidadosa dos resultados do teste de Tukey. Seria algo como:

significancia = {
    'D': 'a',
    'A': 'a b',
    'E': 'b c',
    'C': 'b c',
    'B': 'c',
    'Controle': 'c'
}

Em seguida, você pode adicionar a coluna de significância ao DataFrame das médias.

media_por_tratamento_df['Significância'] = media_por_tratamento_df['trat'].map(significancia)

Entretanto, é importante ressaltar que talvez seja necessário adaptar esse código para que ele se ajuste adequadamente ao seu projeto

Espero ter ajudado. Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!