R-Fácil - r-facil.webnode.com¡cil... · deixe de conferir os demais materiais da séria R-fácil...
Transcript of R-Fácil - r-facil.webnode.com¡cil... · deixe de conferir os demais materiais da séria R-fácil...
Universidade Federal de Goiás
Escola de Veterinária e Zootecnia
R-FácilTestes de Hipóteses
Apostila destinada a usuários do
R, com demonstrações de uso de funções
em exemplos da área de Ciências
Agrárias.
Goiânia
Janeiro de 2014
Apresentação
Atualmente encontram-se grande número de apostilas e livros abordando o uso do software
R (R Core Team, 2014) para análises estatísticas. No entanto, são raros os materiais didáticos
aplicados à área de ciências agrárias. Visando estimular o aprendizado com linguagem mais simples
e aplicada, com exemplos práticos voltados, principalmente, as áreas de ciências agrárias e
biológicas, o presente material foi desenvolvido para auxiliar a utilização do R na realização de
testes de hipóteses. O público alvo são alunos de graduação, pós-graduação, professores e
pesquisadores. O objetivo desta apostila não é aprofundar em aspectos teóricos, mas apenas
apresentar um tutorial de análise de dados utilizando pacotes e funções de forma bastante prática.
A apostila “R-fácil: Testes de Hipóteses” faz parte de uma séria de quatro apostilas que
contemplam parte do conteúdo do site http://r-facil.webnode.com/. Deve-se destacar que este material
utiliza-se de funções de uso mais prático para a demonstração das análises e por isso o título R-fácil,
com intuito de descomplicar um pouco a utilização do software.
No texto as discussões estão na fonte Times 12 e as análises realizadas no R em fonte
Inconsolata 14 em negrito, sendo a programação em azul e os resultados em preto. Boa leitura e não
deixe de conferir os demais materiais da séria R-fácil (download em http://r-facil.webnode.com/).
O autor
Índice
páginaTeste F 1Teste t 2 uma média 2 duas médias 3 dados pareados 5Teste de Wilcoxon 6 um grupo 6 dois grupos 8 dados pareados 9Teste de Kruskal-Wallis 10Teste de Friedman 12Teste Qui-quadrado 14aderência 14independência 16Teste Exato de Fisher 17Odds Ratio 19Teste Binomial 21 uma proporção 21 duas proporções 23Teste de Mcnemar 24Coeficiente de Kappa 25Referências 30
Teste F
O teste F é utilizado para avaliar a diferença entre duas variâncias obtidas de amostras
de duas populações.
Considere duas amostras (a,b) de duas populações abaixo. Será avaliado se as
variâncias destas populações podem ser consideradas estatisticamente iguais.
a=c(10,15,12,13,14,17,18)
b=c(2,10,32,13,14,16)
Obtendo as variâncias utilizando a função “var( )” e o teste F utilizando a função
“var.test( )”.
var(a)
[1] 7.809524
var(b)
[1] 97.5
var.test(b,a)
F test to compare two variances
data: b and a
F = 12.4848, num df = 5, denom df = 6, p-value = 0.007992
alternative hypothesis: true ratio of variances is not
equal to 1
95 percent confidence interval:
2.085114 87.114906
sample estimates:
ratio of variances
12.48476
1
Repare que a variância de “b” é muito superior a de “a”. O p-value foi menor que
0,05, então, rejeita-se H0, ou seja, as variâncias são estatisticamente diferentes. A
probabilidade de a diferença ter ocorrido ao acaso é menor que 0,05 (p-value = 0.007992).
Teste t
O teste t de Student é comumente utilizado para comparar um média amostral com
uma média populacional ou referência (teste t para uma média amostral). Também é muito
utilizado para comparar médias de duas populações (teste t para duas médias amostrais). E
ainda, também é utilizado para avaliar um grupo experimental ou amostral submetidos a uma
avaliação antes e depois de certo procedimento ou uma avaliação por duas técnicas ou
equipamentos no mesmo grupo (teste t para dados pareados).
Teste t para uma média
Para exemplificar usaremos exemplo de Kaps e Lamberson (2009), página 70, onde é
avaliado ("testado") se a média da produção de leite em kg de uma população de vacas é igual
a 4000 kg.
Abaixo seguem os dados de produção de leite de amostra de 10 vacas e a média
amostral.
dados=c(3000,3270,3400,3720,3780,3800,3940,4090,4300,4700)
mean(dados)
[1] 3800
Aplicando o teste para comparar se a média da população amostrada é estatisticamente
igual a 4000 kg, utiliza-se a função t.test( ) onde se inclui o conjunto de dados (primeiro
argumento da função) e o valor da média a ser comparada (mu=4000 neste caso).
2
t.test(dados, mu=4000)
One Sample t-test
data: dados
t = -1.2645, df = 9, p-value = 0.2378
alternative hypothesis: true mean is not equal to 4000
95 percent confidence interval:
3442.21 4157.79
sample estimates:
mean of x
3800
Assim, pode-se concluir que a média populacional pode ser considerada
estatisticamente igual a 4000 kg, pois p-value>0,05.
Teste t para duas médias
Em exemplo de Kaps e Lamberson (2009), foram injetadas gonodatropina e solução
salina em porcas. O objetivo foi determinar se a gonodatropina resultava em maior taxa de
ovulação. Seguem os dados da taxa de ovulação mensurada em dois grupos de animais:
Grupo tratado com gonodatropina:
gonodatropina=c(14,14,7,45,18,36,15)
Grupo tratado com solução salina:
salina=c(12,11,12,12,14,13,9)
Observando as médias (abaixo) temos que que a taxa de ovução média no grupo
tratado com gonodatropina é superior.3
mean(gonodatropina)
[1] 21.28571
mean(salina)
[1] 11.85714
Para testar (comparar estatisticamente) estas médias, primeiro deve-se fazer um teste F
para verificar se as variâncias das duas amostras são estatisticamente iguais (abaixo) onde se
conclui que as variâncias são estatisticamente diferentes, pois p<0,05.
var.test(gonodatropina,salina)
F test to compare two variances
data: gonodatropina and salina
F = 76.6923, num df = 6, denom df = 6, p-value = 4.183e-05
alternative hypothesis: true ratio of variances is not
equal to 1
95 percent confidence interval:
13.17792 446.33056
sample estimates:
ratio of variances
76.69231
Então se deve aplicar o teste t considerando variâncias diferentes. Abaixo segue
programação, onde é incluído as duas amostras (gonodatropina e salina e o argumento
var.equal=FALSE que indica variâncias diferentes).
4
t.test(gonodatropina,salina, var.equal = FALSE)
Welch Two Sample t-test
data: gonodatropina and salina
t = 1.7985, df = 6.156, p-value = 0.1209
alternative hypothesis: true difference in means is not
equal to 0
95 percent confidence interval:
-3.320571 22.177714
sample estimates:
mean of x mean of y
21.28571 11.85714
Apesar da diferença média aparentemente elevada, estatisticamente não se pode
considerar as médias diferentes, pois p-value>0,05. Caso as variâncias fossem
estatisticamente iguais, sugere-se "var.equal=TRUE".
Teste t para dados pareados
Neste teste tem-se duas avaliações em um mesmo grupo de elementos amostrais
(animais, pessoas, plantas, etc). Será utilizado exemplo de Kaps e Lamberson (2009) página
76, onde testou-se o efeito de um tratamento para elevar a produção diária de leite em vacas.
Para o experimento foi utilizado 9 vacas na mesma ordem de parição e estágio de lactação.
Avaliou-se a produção de leite antes e após a aplicação de um tratamento. Seguem os dados:
antes=c(27,45,38,20,22,50,40,33,18)
depois=c(31,54,43,28,21,49,41,34,20)
Utilizando a função t.test( ) com o argumento paired=TRUE aplica-se o teste t para
dados pareados, como programado a seguir.
5
t.test(antes,depois, paired=TRUE)
Paired t-test
data: antes and depois
t = -2.5534, df = 8, p-value = 0.034
alternative hypothesis: true difference in means is not
equal to 0
95 percent confidence interval:
-5.9208122 -0.3014101
sample estimates:
mean of the differences
-3.111111
Sendo p-value<0,05 tem-se efeito significativo do tratamento no aumento da produção
de leite.
Teste de Wilcoxon
O teste de Wilcoxon também conhecido como Mann-Whitney ou Teste U pode
substituir o teste t nas três situações vistas anteriormente. O teste t tem menor precisão quando
a variável em estudo não tem boa aproximação da normalidade ou se tratar de variável
qualitativa ordinal. Nestes casos recomenda-se utilizar o teste de Wicoxon.
Teste de Wilcoxon para comparar um grupo em relação a um valor referência
Considere um iogurte comercial A e uma nova versão teste B. Considere que a versão
A e B foram avaliadas por 17 testadores e que a nota dada considerando o sabor foi:
1 se inferior a A
2 se pouco inferior a A
3 se equivalente a A
4 se pouco superior a A
5 se superior a A
6
Os resultados obtidos foram:
resultados=c(3,4,4,3,5,2,5,4,3,2,5,3,4,3,4,5,2)
Abaixo segue a programação para realizar o teste de Wilcoxon e test t para avaliar se a
versão teste B é superior a versão original A. O argumento mu na função define a média
referência que se que comparar, no caso mu=3 é referente a “produto B equivalente ao
produto A”.
wilcox.test(resultados, mu=3)
Wilcoxon signed rank test with continuity
correction
data: resultados
V = 64.5, p-value = 0.04173
alternative hypothesis: true location is not equal to 3
t.test(resultados, mu=3)
One Sample t-test
data: resultados
t = 2.2792, df = 16, p-value = 0.03671
alternative hypothesis: true mean is not equal to 3
95 percent confidence interval:
3.041115 4.135356
sample estimates:
mean of x
3.588235
Conclui-se que B é superior a A com significância estatística nos dois testes (p<0,05).
Como se trata de uma variável qualitativa ordinal sugere-se utilizar o teste de Wilcoxon, onde
o valor de p foi 0,04173.
7
Teste de Wilcoxon para dois grupos independentes
Aqui será utilizado o mesmo exemplo do teste t para duas médias, pois os dois testes
são utilizados em situações semelhantes.
Em exemplo de Kaps e Lamberson (2009), foram injetadas gonodatropina e solução
salina em porcas. O objetivo foi determinar se a gonodatropina resultava em maior taxa de
ovulação. Seguem os dados da taxa de ovulação mensurada em dois grupos de animais:
Grupo tratado com gonodatropina:
gonodatropina=c(14,14,7,45,18,36,15)
Grupo tratado com solução salina:
salina=c(12,11,12,12,14,13,9)
Avaliando a normalidade das duas amostras (programação abaixo) conclui-se que as
mesmas têm aproximação da normalidade, pois o valor de p do teste de Shapiro-Wilk é maior
que 0,05. Neste caso o teste mais indicado é o teste t, pois se trata de uma variável
quantitativa com aproximação da normalidade. Porém, para ilustrar, será aplicado o teste de
Wilcoxon.
shapiro.test(gonodatropina)
Shapiro-Wilk normality test
data: gonodatropina
W = 0.8385, p-value = 0.09613
8
shapiro.test(salina)
Shapiro-Wilk normality test
data: salina
W = 0.9322, p-value = 0.5699
wilcox.test(gonodatropina, salina)
Wilcoxon rank sum test with continuity correction
data: gonodatropina and salina
W = 41, p-value = 0.03915
alternative hypothesis: true location shift is not equal to
0
Sendo o valor de probabilidade menor que 0,05 conclui-se pela diferença entre os dois
grupos.
Teste de Wilcoxon para dados pareados
Neste teste tem-se duas avaliações em um mesmo grupo de elementos amostrais
(animais, pessoas, plantas, etc). Será utilizado exemplo de Kaps e Lamberson (2009) página
76 (mesmo exemplo do teste t para dados pareados), onde testou-se o efeito de um tratamento
para elevar a produção diária de leite em vacas. Para o experimento foi utilizado 9 vacas na
mesma ordem de parição e estágio de lactação. Avaliou-se a produção de leite antes e após a
aplicação de um tratamento. Seguem os dados:
antes=c(27,45,38,20,22,50,40,33,18)
depois=c(31,54,43,28,21,49,41,34,20)
9
Utilizando a função wilcox.test( ) com o argumento paired=TRUE aplica-se o teste
como programado abaixo.
wilcox.test(antes,depois, paired=TRUE)
Wilcoxon signed rank test with continuity correction
data: antes and depois
V = 5, p-value = 0.04216
alternative hypothesis: true location shift is not equal to
0
Ocorre diferença estatisticamente significativa. Verificando a normalidade nos
resíduos (programação abaixo) verifica-se que os resíduos têm aproximação da normalidade
(p>0,05). Portanto, neste caso, o teste mais recomendado seria o teste t.
desvios=antes-depois
shapiro.test(desvios)
Shapiro-Wilk normality test
data: desvios
W = 0.9138, p-value = 0.3436
Teste de Kruskal-Wallis
O teste de Kruskal-Wallis pode substituir uma análise de variância em delineamento
inteiramente ao acaso em situações onde a variável resposta é qualitativa ordinal ou quando a
resposta é quantitativa e não atende pressuposições da análise de variância.
Como exemplo será simulado (programação abaixo) 3 tratamentos avaliados em 3
grupos de 6 animais. A variável resposta é o grau de doença sendo: 1= doença ausente;
2=doença em estágio inicial, 3=doença em estágio intermediário e 4=doença em estágio final.10
tratamentos=c(rep("medicamento_A",6),rep("medicamento_B",6)
, rep("placebo",6))
resposta=c(1,2,2,1,1,2,1,4,3,3,4,2,2,3,4,4,4,2)
dados=data.frame(tratamentos,resposta)
dados
tratamentos resposta
1 medicamento_A 1
2 medicamento_A 2
3 medicamento_A 2
4 medicamento_A 1
5 medicamento_A 1
6 medicamento_A 2
7 medicamento_B 1
8 medicamento_B 4
9 medicamento_B 3
10 medicamento_B 3
11 medicamento_B 4
12 medicamento_B 2
13 placebo 2
14 placebo 3
15 placebo 4
16 placebo 4
17 placebo 4
18 placebo 2
11
Para aplicar o teste será utilizado a função ea1( ) do pacote "easyanova" que deve ser
carregado previamente. Na função especifica-se o design que no caso é o de número 14,
referente ao teste de Kruskal-Wallis.
require(easyanova)
ea1(dados, design=14) #somente parte do resultado
$`Kruskal-Wallis Rank Sum Test`
Estimates
Kruskal-Wallis chi-squared = 7.1400
p.value = 0.0282
$`Ranks, Means and Medians`
treatment rank mean median t adjust.Holm adjust.Bonferroni adjust.fdr
1 placebo 12.5 3.1667 3.5 a a a a
2 medicamento_B 11.0 2.8333 3.0 a a ab a
3 medicamento_A 5.0 1.5000 1.5 b b b b
Com o resultado do teste verifica-se diferença estatística entre tratamentos (p=0,0282).
Posteriormente verifica-se a diferença par a par entre os tratamentos, onde é verificado
superioridade estatisticamente significativa do medicamento B em relação aos demais. É
recomendado utilizar alguma forma de ajuste no teste t e nas opções que o teste dispõe uma
possível recomendação é o ajuste f.d.r.
Teste de Friedman
O teste de Friedman pode substituir uma análise de variância em delineamento de
blocos ao acaso em situações onde a variável resposta é qualitativa ordinal ou quando a
resposta é quantitativa e não atende pressuposições da análise de variância.
No exemplo abaixo segue programação para obter conjunto de dados hipotéticos, onde
os tratamentos (quatro tipos de vinho) são avaliados por 5 provadores. A variável resposta é o
grau de qualidade da bebida sendo: 1=muito ruim, 2=ruim, 3=mediana, 4=boa, 5=muito boa.
vinhos=rep(c("Vinho_A","Vinho_B","Vinho_C","Vinho_D"),each=
5)
provadores=rep(c("a","b","c","d","e"),4)
resposta=c(4,5,4,5,3, 1,1,2,1,2, 1,1,3,4,1 ,3,5,4,5,3)
12
dados=data.frame(vinhos, provadores, resposta)
dados
vinhos provadores resposta
1 Vinho_A a 4
2 Vinho_A b 5
3 Vinho_A c 4
4 Vinho_A d 5
5 Vinho_A e 3
6 Vinho_B a 1
7 Vinho_B b 1
8 Vinho_B c 2
9 Vinho_B d 1
10 Vinho_B e 2
11 Vinho_C a 1
12 Vinho_C b 1
13 Vinho_C c 3
14 Vinho_C d 4
15 Vinho_C e 1
16 Vinho_D a 3
17 Vinho_D b 5
18 Vinho_D c 4
19 Vinho_D d 5
20 Vinho_D e 3
Observe no objeto “dados”a ordem das colunas, primeiro os tratamentos, depois os
blocos (provadores) e depois a variável resposta
13
Aplica-se o teste, utilizando a função ea1( ) com o argumento design=15, indicando
que será feito o teste de Friedman. Não esqueça que o pacote “easyanova” deve estar
carregado para utilizar a função.
require(easyanova)
ea1(dados, design=15) #somente parte do resultado
$`Friedman Rank Sum Test`
Estimates
Friedman chi-squared = 12.120
p.value = 0.007
$`Ranks, Means and Medians`
treatment rank mean median non.adjusted adjust.Holm adjust.Bonferroni adjust.fdr
1 Vinho_A 18 4.2 4 a a a a
2 Vinho_D 17 4.0 4 a ab ab a
3 Vinho_C 8 2.0 1 b ab ab b
4 Vinho_B 7 1.4 1 b b b b
Com o resultado do teste verifica-se diferença estatística entre tratamentos (p=0,007).
Posteriormente verifica-se a diferença par a par entre os tratamentos (vinhos). É recomendado
utilizar alguma forma de ajuste no valor de probabilidade e nas opções que o teste dispõe uma
possível recomendação é o ajuste f.d.r.
Teste Qui-quadrado
O teste qui-quadrado é utilizado para avaliar uma distribuição de freqüência. Pode-se
utilizá-lo comumente em duas situações que serão abordadas a seguir.
Qui-quadrado para aderência
Este teste pode ser utilizado para testar se uma proporção observada é estatisticamente
igual a uma proporção esperada.
14
Em exemplo de Sampaio (2010) página 113, o autor informa que a pelagem de
Porquinho-da-índia é produto de dois pares de genes. O animal caramelo tem genótipo AABB
e o marrom aabb. O cruzamento entre eles resulta em uma geração F1 AaBb com animais
caramelo. A geração F2 (F1 x F1) resulta em animais esperados nas proporções 9:3:3:1,
sendo, 9 na cor caramelo (A_B_), 3 na cor preta (aaB_), 3 na cor canela (A_bb) e 1 na cor
marrom (aabb). Em estudo de pelagem de 480 filhotes F2, foram observados 260 na cor
caramelo, 98 na cor preta, 87 na cor canela e 35 na cor marrom. Avaliaremos se a diferença
dos valores observados em relação aos valores esperados ocorrem devido ao acaso.
Valores observados.
o=c(260,98,87,35)
Probabilidade dos valores esperados
e=c(9/16,3/16,3/16,1/16)
e
Valores esperados
480*e
Teste Qui-quadrado para aderência
chisq.test(o,p=e)
Chi-squared test for given probabilities
data: o
X-squared = 2.0148, df = 3, p-value = 0.5693
Como p-value>0,05 não se rejeita H0, ou seja, o valor observado não foi exatamente
igual ao esperado devido ao acaso.
15
Qui-quadrado para independência
Este teste avalia se a frequência de uma variável X depende de uma variável Y. Será
considerado um exemplo de Sampaio (2010) página 118 onde será avaliado se a prenhez de
éguas depende do diluente. Neste exemplo um diluente A foi avaliado em 30 éguas sendo os
resultados de prenhez 17(+) e 13(-). Um diluente B também foi avaliado em 30 éguas sendo
os resultados de prenhez 25(+) e 5(-).
Entrada dos dados (forma de matriz)
dados=matrix(c(17,25,13,5), ncol=2)
dados
[,1] [,2]
[1,] 17 13
[2,] 25 5
Pode-se inserir nomes na matriz
colnames(dados)=c("Prenhez_Positiva","Prenhez_Negativa")
rownames(dados)=c("Diluente_A","Diluente_B")
dados
Prenhez_Positiva Prenhez_Negativa
Diluente_A 17 13
Diluente_B 25 5
Teste qui-quadrado (é feito a correção de Yates por padrão)
chisq.test(dados)
Pearson's Chi-squared test with Yates' continuity
correction
data: dados
X-squared = 3.8889, df = 1, p-value = 0.04861
16
Teste qui-quadrado (sem a correção de Yates)
chisq.test(dados, correct = FALSE)
Pearson's Chi-squared test
data: dados
X-squared = 5.0794, df = 1, p-value = 0.02421
Em ambos os casos p-value<0,05 e, portanto, conclui-se que a prenhez depende do
diluente.
Observação: sugere-se não utilizar o teste qui-quadrado em amostras pequenas (n<20)
e no caso em que uma das freqüências esperadas seja menor que 5. Em amostras com n>20 e
n<40 a correção de Yates deve ser usada. Essa é uma regra geral e um teste que pode ser
utilizado para substituir o qui-quadrado neste casos é o teste exato de Fisher, abordado a
seguir.
Teste Exato de Fisher
Este teste avalia se a freqüência de uma variável X depende de uma variável Y. É
utilizado geralmente em situações onde o teste qui-quadrado para independência não é
recomendado (amostras pequenas, em geral com n<20 e no caso em que uma das freqüências
esperadas seja menor que 5).
Será considerado exemplo de Sampaio (2010) página 118 (o mesmo utilizado para
exemplificar o qui-quadrado para independência) onde será avaliado se a prenhez de éguas
depende do diluente. Neste exemplo um diluente A foi avaliado em 30 éguas sendo os
resultados de prenhez 17(+) e 13(-). Um diluente B também foi avaliado em 30 éguas sendo
os resultados de prenhez 25(+) e 5(-).
Entrada dos dados (forma de matriz)
dados=matrix(c(17,25,13,5), ncol=2)
17
dados
[,1] [,2]
[1,] 17 13
[2,] 25 5
Pode-se inserir nomes na matriz (tabela)
colnames(dados)=c("Prenhez_Positiva","Prenhez_Negativa")
rownames(dados)=c("Diluente_A","Diluente_B")
dados
Prenhez_Positiva Prenhez_Negativa
Diluente_A 17 13
Diluente_B 25 5
Realizando o teste Exato de Fisher
fisher.test(dados)
Fisher's Exact Test for Count Data
data: dados
p-value = 0.04702
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
0.06254638 0.98558345
sample estimates:
odds ratio
0.267663
Como o p-value<0,05 conclui-se que a prenhez depende do diluente.18
Odds Ratio (Razão de Chances)
A odds ratio ou razão de chances quantifica a probabilidade de um evento ocorrer em
um grupo em relação a outro (ou outros) grupo(s). É na verdade uma medida que quantifica o
grau associação entre variáveis.
Pode ser usada nas mesmas situações que o teste qui-quadrado para independência.
Nestes casos o teste qui-quadrado testa se existe uma dependência (associação) entre variáveis
e a odds ratio quantifica este grau de associação.
Será considerado exemplo de Sampaio (2010) página 118 (o mesmo utilizado para
exemplificar o qui-quadrado para independência) onde será avaliado se a prenhez de éguas
depende do diluente. Neste exemplo um diluente A foi avaliado em 30 éguas sendo os
resultados de prenhez 17(+) e 13(-). Um diluente B também foi avaliado em 30 éguas sendo
os resultados de prenhez 25(+) e 5(-).
Entrada dos dados (forma de matriz)
dados=matrix(c(17,25,13,5), ncol=2)
dados
[,1] [,2]
[1,] 17 13
[2,] 25 5
Pode-se inserir nomes na matriz (tabela)
colnames(dados)=c("Prenhez_Positiva","Prenhez_Negativa")
rownames(dados)=c("Diluente_A","Diluente_B")
dados
Prenhez_Positiva Prenhez_Negativa
Diluente_A 17 13
Diluente_B 25 5
Para obter a odds vamos requerer o pacote "epitools" que deve estar instalado previamente.
require(epitools)
19
Realizando a odds ratio a seguir
oddsratio(dados)
$data
Prenhez_Positiva Prenhez_Negativa Total
Diluente_A 17 13 30
Diluente_B 25 5 30
Total 42 18 60
$measure
NA
odds ratio with 95% C.I. estimate lower upper
Diluente_A 1.0000000 NA NA
Diluente_B 0.2715598 0.07330721 0.8759577
$p.value
NA
two-sided midp.exact fisher.exact chi.square
Diluente_A NA NA NA
Diluente_B 0.02857265 0.04702233 0.02421223
A odds estimada foi de 0,27, ou seja, uma égua inseminada com o diluente B tem 0,27
menos chance de não prenhez que uma égua inseminada com o diluente A. No entanto é mais
interessante interpretar a odds com valores maiores que 1 e para isso faremos o seguinte:
oddsratio(dados, rev="c")
20
$data
Prenhez_Negativa Prenhez_Positiva Total
Diluente_A 13 17 30
Diluente_B 5 25 30
Total 18 42 60
$measure
NA
odds ratio with 95% C.I. estimate lower upper
Diluente_A 1.000000 NA NA
Diluente_B 3.682407 1.141608 13.64122
$p.value
NA
two-sided midp.exact fisher.exact chi.square
Diluente_A NA NA NA
Diluente_B 0.02857265 0.04702233 0.02421223
A odds estimada neste caso foi de 3,68, ou seja, existe 3,68 mais chance de prenhez
quando utilizado o diluente B em relação ao diluente A. Essa seria a melhor maneira de
apresentar a odds (com valores acima de 1), que foi significativa (p-value<0,05).
Teste Binomial
O teste binomial pode ser utilizado para comparar uma ou duas proporções,
exemplificadas a seguir.
Teste binomial para uma proporção
Considere uma situação onde a incidência de uma determinada doença em amostra de
260 indivíduos foi de 26 (26/260 = 0,10). Caso a incidência na amostra seja estatisticamente
igual a 0,15 deverá se proceder a práticas de controle da doença. Então, com base nos dados21
amostrais, pode-se utilizar o teste binomial para testar se a freqüência amostral é
estatisticamente igual a 0,15.
Entrada de dados (freqüência da doença +/-)
freq=c(26, 260-26)
Porcentagem de indivíduos doentes
100*26/260
[1] 10
Na função deve-se inserir a freqüência de sucessos e insucessos e, fornecer o valor de
p que se pretende comparar (no caso 0,15).
binom.test(freq, p=0.15)
Exact binomial test
data: freq
number of successes = 26, number of trials = 260, p-value =
0.02358
alternative hypothesis: true probability of success is not
equal to 0.15
95 percent confidence interval:
0.06636889 0.14308479
sample estimates:
probability of success
0.1
Neste caso conclui-se que a freqüência deve ser inferior a 0,15 (15%) (p=0,0236).
22
Teste binomial para duas proporções
Considere que a incidência de uma doença em dois estados do Brasil foi de 22 positivos
em 123 indivíduos avaliados no estado A e 29 positivos em 231 avaliados no estado B. Com
base nestas informações pode-se utilizar o teste binomial para duas proporções para comparar
se a incidência da doença no estado A é estatisticamente igual a do estado B.
Entrada de dados
freq1=c(22,29) # incidência de positivos
freq2=c(123,231) # tamanho das amostras
Aplicação do teste
prop.test(freq1,freq2)
2-sample test for equality of proportions with continuity
correction
data: freq1 out of freq2
X-squared = 1.4434, df = 1, p-value = 0.2296
alternative hypothesis: two.sided
95 percent confidence interval:
-0.03298744 0.13962877
sample estimates:
prop 1 prop 2
0.1788618 0.125
Com o resultado conclui-se que a incidência de doença nos dois estados é
estatisticamente a mesma (p>0,05).
23
Teste de McNemar
O teste de McNemar é utilizado para avaliar a concordância entre categorias de duas
variáveis qualitativas dicotômicas (variável que possui duas categorias). Pode ser utilizado
para testar a concordância entre dois testes ou duas avaliações aplicados nos mesmos
indivíduos (ou elementos amostrais). Também pode ser usado para testar se ocorreu mudança
de resultado (frequência) em uma avaliação "antes" e "depois" da aplicação de um tratamento.
Exemplo 1: Considere dois métodos diagnósticos para detectar determinada doença em cães,
aplicados em amostra de 200 animais. Os resultados (dados hipotéticos) foram:
p="positivo"
n="negativo"
mA=c(rep(p,182),rep(n,18))
mB=c(rep(p,175),rep(n,25))
Criação de uma tabela com os dados
tabela=table(mA,mB)
tabela
mB
mA negativo positivo
negativo 18 0
positivo 7 175
Observe que ocorreram sete resultados discordantes (positivo para mA e negativo para mB).
O teste avalia se a discordância é estatisticamente significativa.
mcnemar.test(tabela)
McNemar's Chi-squared test with continuity correction
data: tabela
McNemar's chi-squared = 5.1429, df = 1, p-value = 0.02334 24
Como o valor de probabilidade foi menor que 0,05, conclui-se que a discordância
entre o diagnóstico dos métodos é estatisticamente significativa.
Exemplo 2: Considere um tratamento para uma doença X em cães, aplicados em amostra de
200 animais. Os resultados "antes" e "depois" do tratamento (dados hipotéticos) foram:
b="bem"
m="mal"
antes=c(rep(m,182),rep(b,18))
depois=c(rep(m,185),rep(b,15))
Criação de uma tabela com os dados
tabela=table(antes,depois)
tabela
depois
antes bem mal
bem 15 3
mal 0 182
Observe que ocorreram três resultados discordantes (três animais que estavam "bem" antes do
tratamento passaram a ser classificados como "mal" depois).
O teste avalia se a discordância é estatisticamente significativa
mcnemar.test(tabela)
McNemar's Chi-squared test with continuity correction
data: tabela
McNemar's chi-squared = 1.3333, df = 1, p-value = 0.2482
Como o valor de probabilidade foi maior que 0,05 (0,2482), conclui-se que o
tratamento não teve efeito estatisticamente significativo.
25
Abaixo segue modificação no exemplo com efeito significativo do tratamento.
b="bem"
m="mal"
antes=c(rep(m,182),rep(b,18))
depois=c(rep(m,20),rep(b,180))
tabela=table(antes,depois)
tabela
depois
antes bem mal
bem 18 0
mal 162 20
mcnemar.test(tabela)
McNemar's Chi-squared test with continuity correction
data: tabela
McNemar's chi-squared = 160.0062, df = 1, p-value < 2.2e-16
Coeficiente de Kappa
O coeficiente de Kappa é uma medida de concordância entre resultados qualitativos,
geralmente utilizado como medida de concordância entre testes diagnósticos e avaliações
clínicas.
Exemplo: Considere três métodos diagnóstico para detectar determinada doença em cães,
aplicados em amostra de 200 animais. Os resultados (dados hipotéticos) foram:
p="positivo"
n="negativo"
mA=c(rep(p,182),rep(n,18))
mB=c(rep(p,175),rep(n,25))
mC=c(rep(p,186),rep(n,14))
26
Criação de tabelas com os dados
tabela1=table(mA,mB)
tabela1
mB
mA negativo positivo
negativo 18 0
positivo 7 175
tabela2=table(mA,mC)
tabela2
mC
mA negativo positivo
negativo 14 4
positivo 0 182
tabela3=table(mB,mC)
tabela3
mC
mB negativo positivo
negativo 14 11
positivo 0 175
Abaixo a obtenção do Coeficiente de Kappa para avaliar a concordância entre os
métodos. (observação: para usar a função é necessário requerer o pacote "epicalc", que deve
estar previamente instalado)
require(epicalc)
27
kap(tabela1)
Table for calculation of kappa
mB
mA negativo positivo
negativo 18 0
positivo 7 175
Observed agreement = 96.5 %
Expected agreement = 80.75 %
Kappa = 0.818
Standard error = 0.07 , Z = 11.767 , P value = < 0.001
kap(tabela2)
Table for calculation of kappa
mC
mA negativo positivo
negativo 14 4
positivo 0 182
Observed agreement = 98 %
Expected agreement = 85.26 %
Kappa = 0.864
Standard error = 0.07 , Z = 12.337 , P value = < 0.001
kap(tabela3)
Table for calculation of kappa
mC
mB negativo positivo
negativo 14 11
positivo 0 175
28
Observed agreement = 94.5 %
Expected agreement = 82.25 %
Kappa = 0.69
Standard error = 0.067 , Z = 10.265 , P value = < 0.001
Quanto mais próximo de 1 o valor de Kappa maior a concordância entre resultados.
Como p < 0,05 o valor de concordância estimado em todos os pares é estatisticamente
significativo.
Para obter uma concordância geral entre todos os métodos pode-se fazer como
programado abaixo.
kap.m.raters(data.frame(mA,mB,mC))
kappa std.error z p.value
0.787 0.041 19.27 < 0.001
29
Referências
KAPS, M. and LAMBERSON, W. R. Biostatistics for Animal Science: an
introductory text. 2nd Edition. CABI Publishing, Wallingford, Oxfordshire, UK,
2009. 504p.
SAMPAIO, I. B. M. Estatistica aplicada a experimentacao animal. 3nd Edition.
Belo Horizonte: Editora FEPMVZ, Fundacao de Ensino e Pesquisa em Medicina
Veterinaria e Zootecnia, 2010. 264p.
R-Fácil (2014)
URL http://r-facil.webnode.com/
R Core Team (2014). R: A language and environment for statistical computing.
R Foundation for Statistical Computing, Vienna, Austria. URL
http://www.R-project.org/ .
30