Биноминальная отрицательная задача распределения вероятностей с помощью критерия хи-квадрат - PullRequest
0 голосов
/ 05 марта 2019

Я хотел бы создать цикл для тестирования биномиального отрицательного распределения вероятностей, но он не работает.В моем примере:

Создание искусственного набора данных с 2 переменными - Feature и Resp (переменная ответа)

#Package
library(MASS)

Features<-sort(rep(1:3,30))
Resp1<-rnbinom(60,0.75,0.10) ##60 Negative binomial values
Resp2<-rpois(30,10)## 30 Poisson values
Resp<-c(Resp1,Resp2)
d<-as.data.frame(cbind(Features,Resp))

Применение биномиального отрицательного теста на основе хи-квадрат

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") #Extraction of probability parameters (size and mu)
    par <- k$estimate
    size <- par[1]#k parameter
    mu <- par[2]#Mean
    N <- length(data_1$Resp)
    est <-N*dnbinom(data_1$Resp,size=size,mu=mu)  ## Estimation of values 
    fecdf <- ecdf(data_1$Resp) ###ecdf- Cumulative empirical distribution
    knotsX <- knots(fecdf)
    emp <- fecdf(c(knotsX,Inf))  # Empirical distribution
    testChi<-chisq.test(table(emp),table(est),correct=TRUE) #Chi square test empirical vs estimated values
    result<-ifelse(testChi$p.value>0.05,"Binomial Negative","Other distribution") 
    res<-rbind(res,c(uniq[i],result))
    colnames(res)<-c("Features","Distribution")
} 
res

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

Не работает, потому что мои первые 60 чисел имеют биномиальное отрицание (функции 1 и 2), а последние 30 (функция 3) имеют распределение Пуассона (я имитирую эти значения при создании искусственного набора данных).Где проблема с моим скриптом?Заранее спасибо!

...