Teste Chi-Quadrado (X2 )
Utilizamos o teste X2 para comparar as frequências observadas de eventos distintos, ou seja, compara-se um conjunto de frequências observadas contra um conjunto de frequências esperadas derivadas de dados de contagem. As frequências esperadas não são independentes do observados por isso há uma perda no grau de liberdade (o número de dados independentes utilizados menos 1)
O resultado do teste determina a probabilidade de obter uma diferença entres as observações encontradas e esperadas nos modelos, já que todos os eventos poderiam acontecer.
Podemos representar estes dados em uma tabela de frequência ou tabela de contingência mostrando quantas vezes dada característica aparece em um conjunto de dados específicos.
Exemplo 1. Em dada população de animais que hibernam, Queremos saber se existe diferenças nas frequencias de hibernação entre machos e femeas
data<- matrix(0, ncol = 2)
data[1,]<-c(44,54)
colnames(data)<- c("macho", "femea")
chi1<-function(x){#x como um dataframe com duas populacoes
hnula<-sum(x)/2 #frequencia da hipotese nula
pop<-ncol(x)
y<- numeric(pop)
for(i in 1:pop){
y[i]<-((x[1,i]-hnula)^2)/hnula
}
chir<-sum(y)
return(chir)
}
dat2<-chi1(data)
dat2
## [1] 1.020408
utilizar tabela dos valores criticos da distribuicao chi-quadrado para compara-lo com nosso resultado
chisq.test(data)
##
## Chi-squared test for given probabilities
##
## data: data
## X-squared = 1.0204, df = 1, p-value = 0.3124
##nao rejeitamos a hipotese nula
EXEMPLO 2 Em dada população de animais que hibernam, Queremos saber se existe diferenças nas frequencias de entre machos e femeas que hibernam em diferentes localidades.
Localidade <- c("A", "B", "C", "D")
Macho <- c(44,31,12,15)
Femea <- c(54,40,18,16)
data2 <- data.frame(Macho, Femea)
data=as.table(as.matrix(data2))
data
## Macho Femea
## A 44 54
## B 31 40
## C 12 18
## D 15 16
library(gplots)
##
## Attaching package: 'gplots'
## The following object is masked from 'package:stats':
##
## lowess
balloonplot(t(data),xlab ="", ylab="", label = FALSE, show.margins = FALSE)#plotando resultado da tabela de contengencia
chi2<-function(x){#x dataframe com conjunto de dados pareados com a mesma hipotese nula
hnulatotal<-sum(x)/2 #frequencia da hipotese nula total
componente1<-(((sum(x[,1]))-hnulatotal)^2)/hnulatotal
componente2<-(((sum(x[,1]))-hnulatotal)^2)/hnulatotal
chitotal<-componente1+componente2 #chi-quadrado total
pop<-nrow(x)
hnula<-numeric(pop)
y<- numeric(pop)
for(i in 1:pop){
hnula[i]<-(sum(x[i,]))/2
y[i]<-(((x[i,1]-hnula[i])^2)/hnula[i])+(((x[i,2]-hnula[i])^2)/hnula[i])
}
chir<-sum(y)
chihetero<- chir-chitotal
return(chihetero)
}
rexemplo2<-chi2(data2)
rexemplo2
## [1] 0.4543809
chisq.test(data2)
##
## Pearson's Chi-squared test
##
## data: data2
## X-squared = 0.46026, df = 3, p-value = 0.9275
##nao rejeitamos a hipotese nula