[R-br] Teste de Qui-quadrado aplicado para a distribuição binomial

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[R-br] Teste de Qui-quadrado aplicado para a distribuição binomial

R-br mailing list

Prezados Membros,

    Estou tentando realizar um teste de aderência (Qui-quadrado) aplicado a dados com distribuição binomial negativa sem sucesso. Em meu CRM:

#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

Meu output é: 

    Features Distribution        
[1,] "1"      "Other distribution"
[2,] "2"      "Other distribution"
[3,] "3"      "Binomial Negative" 

Ou seja, dá o resultado errado, na verdade as Features 1 e 2 é que são binomial negativa e a Feature 3 que são dados com distribuição de Poisson que tem que dar "Other distribution".
Alguém teria alguma sugestão para dar?
Obrigado
-- 
======================================================================
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)
[hidden email] 
        [hidden email] 
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/
======================================================================

_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Teste de Qui-quadrado aplicado para a distribuição binomial

R-br mailing list
Na minha tentativa de rodar s/exemplo antes da linha 
> res

As seguintes msgs de alerta são impressas:
Warning messages:
1: In densfun(x, parm[1], parm[2], ...) : NaNs produzidos
2: In chisq.test(table(emp), table(est), correct = TRUE) :
  Aproximação do qui-quadrado pode estar incorreta
3: In densfun(x, parm[1], parm[2], ...) : NaNs produzidos
4: In densfun(x, parm[1], parm[2], ...) : NaNs produzidos
5: In chisq.test(table(emp), table(est), correct = TRUE) :
  Aproximação do qui-quadrado pode estar incorreta
6: In chisq.test(table(emp), table(est), correct = TRUE) :
  Aproximação do qui-quadrado pode estar incorreta

CONFERE?



On Tue, Mar 5, 2019 at 5:07 PM ASANTOS por (R-br) <[hidden email]> wrote:

Prezados Membros,

    Estou tentando realizar um teste de aderência (Qui-quadrado) aplicado a dados com distribuição binomial negativa sem sucesso. Em meu CRM:

#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

Meu output é: 

    Features Distribution        
[1,] "1"      "Other distribution"
[2,] "2"      "Other distribution"
[3,] "3"      "Binomial Negative" 

Ou seja, dá o resultado errado, na verdade as Features 1 e 2 é que são binomial negativa e a Feature 3 que são dados com distribuição de Poisson que tem que dar "Other distribution".
Alguém teria alguma sugestão para dar?
Obrigado
-- 
======================================================================
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)
[hidden email] 
        [hidden email] 
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/
======================================================================
_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Teste de Qui-quadrado aplicado para a distribuição binomial

R-br mailing list
In reply to this post by R-br mailing list
Alexandre:

Por favor explique-no o seu raciocínio para fazer este teste aqui:

> result<-ifelse(testChi$p.value>0.05,"Binomial Negative","Other distribution") ## Classifica os testes em binomial negativa ou outra distribuição 

HTH
--
Cesar Rabak


On Tue, Mar 5, 2019 at 5:07 PM ASANTOS por (R-br) <[hidden email]> wrote:

Prezados Membros,

    Estou tentando realizar um teste de aderência (Qui-quadrado) aplicado a dados com distribuição binomial negativa sem sucesso. Em meu CRM:

#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

Meu output é: 

    Features Distribution        
[1,] "1"      "Other distribution"
[2,] "2"      "Other distribution"
[3,] "3"      "Binomial Negative" 

Ou seja, dá o resultado errado, na verdade as Features 1 e 2 é que são binomial negativa e a Feature 3 que são dados com distribuição de Poisson que tem que dar "Other distribution".
Alguém teria alguma sugestão para dar?
Obrigado
-- 
======================================================================
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)
[hidden email] 
        [hidden email] 
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/
======================================================================
_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.

_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Teste de Qui-quadrado aplicado para a distribuição binomial

R-br mailing list
In reply to this post by R-br mailing list

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)
[hidden email] 
        [hidden email] 
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/
======================================================================
Em 06/03/2019 19:41, Cesar Rabak escreveu:

#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


_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.
Reply | Threaded
Open this post in threaded view
|

Re: [R-br] Teste de Qui-quadrado aplicado para a distribuição binomial

R-br mailing list
> result<-ifelse(testChi$p.value>0.05,"Binomial Negative","Other distribution") ## Classifica os testes em binomial negativa ou outra distribuição 

Se a distribuição estimada table(est) for igual a empírica table (emp) pelo teste de independência de Qui-quadrado, ou seja, testChi$p.value>0.05, então os dados tem distribuição binomial negativa, caso contrário, testChi$p.value<0.05, então os dados tem outra distribuição de probabilidade.

Em qua, 6 de mar de 2019 22:24, ASANTOS <[hidden email]> escreveu:

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)
[hidden email] 
        [hidden email] 
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/
======================================================================
Em 06/03/2019 19:41, Cesar Rabak escreveu:

#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


_______________________________________________
R-br mailing list
[hidden email]
https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forne�a c�digo m�nimo reproduz�vel.