Boa noite Cesar,
Obrigado pela ajuda. Para mim, quando eu rodo aparece também alguns alertas:
Warning messages: 1: In chisq.test(table(emp), table(est), correct = TRUE) : Aproximação do qui-quadrado pode estar incorreta 2: In densfun(x, parm[1], parm[2], ...) : NaNs produzidos 3: In chisq.test(table(emp), table(est), correct = TRUE) : Aproximação do qui-quadrado pode estar incorreta 4: In chisq.test(table(emp), table(est), correct = TRUE) : Aproximação do qui-quadrado pode estar incorreta
-- ====================================================================== Alexandre dos Santos Proteção Florestal IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso Campus Cáceres Caixa Postal 244 Avenida dos Ramires, s/n Bairro: Distrito Industrial Cáceres - MT CEP: 78.200-000 Fone: (+55) 65 99686-6970 (VIVO) (+55) 65 3221-2674 (FIXO) e-mails:alexandresantosbr@yahoo.com.br alexandre.santos@cas.ifmt.edu.br Lattes: http://lattes.cnpq.br/1360403201088680 OrcID: orcid.org/0000-0001-8232-6722 - ResearcherID: A-5790-2016 Researchgate: www.researchgate.net/profile/Alexandre_Santos10 LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635 Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/ ======================================================================
#Pacote MASS
library(MASS)#Crio um banco de dados simulado
Features<-sort(rep(1:3,100))
Resp1<-rnbinom(200,0.75,0.10) ##60 dados com distribuição binomial negativa
Resp2<-rpois(100,10) ##30 dados com distribuição de Poisson
Resp<-c(Resp1,Resp2)
d<-as.data.frame(cbind(Features,Resp))
#Criando um loop para realizar o teste de Chi quadrado para os três conjuntos de dados - Feature 1, 2 e 3
uniq <- unique(unlist(d$Features))
res<-NULL
for (i in 1:length(uniq)){
data_1 <- subset(d, Features == uniq[i])
k <- fitdistr(data_1$Resp,"negative binomial") #Extração dos parâmetros média e mu da binomial negativa
par <- k$estimate
size <- par[1]#Parâmetro k
mu <- par[2]#Média
N <- length(data_1$Resp)
est <-N*dnbinom(data_1$Resp,size=size,mu=mu) ## Criando valores estimados
fecdf <- ecdf(data_1$Resp) ###ecdf- Cria a distribuição cumulativa empírica
knotsX <- knots(fecdf)
emp <- fecdf(c(knotsX,Inf)) # Distribuição empírica
testChi<-chisq.test(table(emp),table(est),correct=TRUE) #Teste de Qui-quadrado sobre a contagem dos dados empíricos versus estimados
result<-ifelse(testChi$p.value>0.05,"Binomial Negative","Other distribution") ## Classifica os testes em binomial negativa ou outra distribuição
res<-rbind(res,c(uniq[i],result))
colnames(res)<-c("Features","Distribution")
}
res