Epidemiologia: o teste de qui-quadrado
As Indústrias Médicas da Edabit estão desenvolvendo um novo medicamento, o Edabitin™, que (esperamos) aumentará as habilidades de programação dos pacientes. Vários testes são realizados com diferentes programadores: durante uma semana, alguns recebem o Edabitin™, enquanto outros recebem apenas pó Tutorial genérico. Depois de uma semana, registra-se, para os dois grupos de controle, quantos programadores conseguem resolver dez exercícios de nível médio em meia hora e quantos levam duas horas.
Você deve determinar se o Edabitin™ exerce influência estatística sobre o desempenho por meio de um teste de qui-quadrado.
Observe a tabela abaixo:
| Tratamento | 2 horas | ½ hora |
|---|---|---|
| Edabitin | 207 | 282 |
| Tutorial | 231 | 242 |
A primeira coisa a fazer é calcular a população total de programadores envolvidos no teste; portanto, some os valores das quatro células. Depois, calcule os totais das linhas: o total de tratamentos com Edabitin™ e o total de tratamentos Tutorial. Calcule também os totais das colunas: programadores normais que passaram 2 horas resolvendo os exercícios e programadores melhorados que passaram apenas 1/2 hora. A nova tabela fica assim:
| Tratamento | 2 horas | ½ hora | Total da linha |
|---|---|---|---|
| Edabitin | 207 | 282 | 489 |
| Tutorial | 231 | 242 | 473 |
| Total da col. | 438 | 524 | 962 |
O valor no canto inferior direito é o total geral. Agora, cada célula deve ser transformada no resultado esperado correspondente: multiplique o total da linha pelo total da coluna (cruzando-os) e divida o resultado pelo total geral. A tabela fica assim:
| Tratamento | 2 horas | ½ hora | Total da linha |
|---|---|---|---|
| Edabitin | (489 * 438) / 962 | (489 * 524) / 962 | 489 |
| Tutorial | (473 * 438) / 962 | (473 * 524) / 962 | 473 |
| Total da col. | 438 | 524 | 962 |
Agora, para cada célula, subtraia o valor esperado obtido do valor original da célula, eleve o resultado ao quadrado e divida-o pelo valor esperado. A tabela fica assim:
| Tratamento | 2 horas | ½ hora |
|---|---|---|
| Edabitin | (207 - 222.64)² / 222.64 | (282 - 266.36)² / 266.36 |
| Tutorial | (231 - 215.36)² / 215.36 | (242 - 257.64)² / 257.64 |
Por fim, você pode somar todos os valores das células e obter o valor do qui-quadrado (χ²), arredondado para o décimo mais próximo:
χ² = 1.099 + 0.918 + 1.136 + 0.949 = 4.1
Para determinar se o efeito do Edabitin é estatisticamente significativo, compare o valor do qui-quadrado com dois valores alfa diferentes (ou níveis de confiança): alpha1 e alpha5.
Se o valor do qui-quadrado for maior que 6.635 (alpha1), haverá 1% de possibilidade de que o efeito do Edabitin™ seja um falso positivo, mas 99% de possibilidade de que ele realmente funcione; se for menor que alpha1, mas maior que 3.841 (alpha5), as possibilidades de uma melhora efetiva serão de 95% (com 5% de possibilidade de falsos positivos). Se o valor do qui-quadrado for menor que alpha5, o efeito do Edabitin™ não será estatisticamente relevante para o desempenho dos programadores.
Para a tabela de exemplo acima, o valor do qui-quadrado é menor que alpha1 e maior que alpha5; portanto, podemos afirmar que: as melhorias nos programadores tratados com Edabitin™ são causadas em 95% pela eficácia do medicamento.
Dado um dicionário data que contém a tabela com os resultados a serem analisados ("E" é a linha do Edabitin e "T" é a linha do Tutorial, com as duas colunas representando os casos registrados de "passaram-se 2 horas" e "passou-se 1/2 hora", como nas tabelas acima), implemente uma função que retorne um array contendo dois elementos:
- O valor do qui-quadrado, arredondado para o décimo mais próximo.
- Uma string com a análise final:
"Edabitin effectiveness = 99%"se o valor do qui-quadrado for maior que alpha1."Edabitin effectiveness = 95%"se o valor do qui-quadrado for menor que alpha1 e maior que alpha5."Edabitin is ininfluent"se o valor do qui-quadrado for menor que alpha5.
Exemplos
chi_squared_test({"E": [207, 282], "T": [231, 242]}) ➞ [4.1, "Edabitin effectiveness = 95%"]
chi_squared_test({"E": [100, 50], "T": [100, 20]}) ➞ [9.6, "Edabitin effectiveness = 99%"]
chi_squared_test({"E": [90, 50], "T": [80, 40]}) ➞ [0.2, "Edabitin is ininfluent"]Observações
- Arredonde apenas o resultado final para o décimo mais próximo; os valores dos exemplos estão arredondados para facilitar a leitura.
- Além da epidemiologia, o teste de qui-quadrado também é usado na agricultura, em pesquisas, na economia e em casos nos quais estão implícitos dados "categóricos" em vez de dados "numéricos". Esse teste é usado para casos registrados de médios a grandes; para números menores, outros testes são usados. Os valores alpha1 e alpha5 são constantes relacionadas às tabelas específicas deste exercício, com duas linhas e duas colunas (resultados de 1 grau de liberdade); portanto, mudam para tabelas de tamanhos diferentes. Para mais informações, consulte os links específicos na aba Recursos.
- Nenhum programador foi ferido durante a criação deste desafio!