2016-05-04 8 views
1

私は、何千ものユニークなテスト(TestNum)とそれに関連するレスポンス(レスポンス)から成る大きなデータセットを持っています。テストは、いくつかの基準に基づいて中止され、TestNum値にシーケンスが欠けています。ここでは簡単な例:グループによって適合モデルからgofstatを取得するにはR

dat <- data.frame(Response=c(rlnorm(10, 2.9, 0.3), rlnorm(14, 2.88, 0.38), rlnorm(19, 2.44, 0.08)),TestNum=rep(c(1,4,9), times=c(10,14,19))) 
dat$TestNum<-factor(dat$TestNum) 
dat 

私は各TestNumにlnorm分布を当てはめると、係数に

dat_fit1 <- with(dat, 
     by(dat[,1], TestNum, fitdist, "lnorm")) 
dat_fit2 <-t(sapply(dat_fit1, coef)) 

を抽出しています、私は他のディストリビューションをテストしたいのですが、適合度統計量が必要になります(gofstat TestNumによってフィットされたそれぞれのカーブから "chi" chisqpvalue "、" cvm "、" ad "、" ks "、" aic "、" bic ")などのコードを使用して、" aic "と" bic "以下の統計情報は含まれません。

gof_f<-do.call(rbind, dat_fit1) 
gof_f<-gof_f[,7:8] 

何か提案がありがとう!

答えて

0
dat.lnorm <- with(dat, 
       by(dat[,1], dat[,2], 
     function(x){ 
     fit<-fitdist(x,"lnorm", method="mme")         
     coef_meanlog <-fit[[1]][[1]] 
     coef_sdlog <-fit[[1]][[2]] 
     ks <-ks.test(jitter(x),"plnorm", meanlog=coef_meanlog, sdlog=coef_sdlog)$p.value 
     ad <-ad.test(plnorm(x, meanlog=coef_meanlog, sdlog=coef_sdlog))$p.value 
     return(list(cbind(rbind(fit[7:8]), ks, ad))) 
})) 
関連する問題