########################################################################################## normalevent<-function(cases,events,population,nnmat,cov,signiflevel=0.05){ m<-length(cases) strata1<-cov[,3] strata2<-cov[,4] region<-cov[,1] G<-max(strata1)-min(strata1)+1 A<-max(strata2)-min(strata2)+1 AG<-A*G M<-length(region) pop<-NULL g<-1 for(j in 1:m){ for(k in 1:G){ for(l in 1:A){ for(i in 1:M){ if (region[i]==j & strata1[i]==k & strata2[i]==l){pop[g]<-pop[g]+population[i]}} g<-g+1}}} gend<-NULL Temp<-NULL a<-1 b<-a+A-1 for(i in 1:G){Temp[a:b]<-rep(i,A) a<-b+1 b<-a+A-1} gend<-rep(Temp,m) ag<-rep(c(1:A),G*m) pop_strat<-NULL gg<-1 t<-AG*m for(i in 1:G){ for(k in 1:A){ for(j in 1:t){ if(gend[j]==i & ag[j]==k){pop_strat[gg]<-pop_strat[gg]+pop[j]}} gg<-gg+1}} pop_s<-rep(pop_strat,m) event<-cov[,2] v_s<-NULL v_s_star<-NULL ggg<-1 for(i in 1:G){ for(k in 1:A){ for(j in 1:M){ if(strata1[j]==i & strata2[j]==k){v_s[ggg]<-v_s[ggg]+event[j] v_s_star[ggg]<-v_s_star[ggg]+event[j]^2}} ggg<-ggg+1}} mu<-NULL sigma2<-NULL ClustSize<-NULL p.star.NORMAL<-NULL p-value<-NULL j<-NULL no.i<-matrix(0,ncol=AG,nrow=m) Event<-NULL num<-NULL NO.i<-matrix(0,ncol=AG,nrow=m) MU<-NULL SIGMA2<-NULL de<-1 ee<-de+AG-1 for( i in 1:m){ j[i]<-2 num[i]<-2 mu[i]<-sum(pop[de:ee]*v_s/pop_strat) sigma2[i]<-sum(pop[de:ee]*v_s_star/pop_strat) ClustSize[i]<-1+ceiling(qnorm(1-signiflevel, mean=mu[i], sd=sqrt(sigma2[i]), lower.tail = TRUE, log.p = FALSE)) no.i[i,]<-pop[de:ee] NO.i[i,]<-pop[de:ee] Event[i]<-events[i] while(ClustSize[i] > Event[i]){if (num[i]<=3){bb<-AG*nnmat[i,num[i]] aa<-bb-(AG-1) no.i[i,]<-no.i[i,]+pop[aa:bb] num[i]<-num[i]+1} h<-AG*nnmat[i,j[i]] o<-h-(AG-1) NO.i[i,]<-NO.i[i,]+pop[o:h] Event[i]<-Event[i]+events[nnmat[i,j[i]]] mu[i]<-sum(no.i[i,]*v_s/pop_strat) sigma2[i]<-sum(no.i[i,]*v_s_star/pop_strat) ClustSize[i]<-1+ceiling(qnorm(1-signiflevel, mean=mu[i], sd=sqrt(sigma2[i]), lower.tail = TRUE, log.p = FALSE)) j[i]<-j[i]+1} MU[i]<-sum(NO.i[i,]*v_s/pop_strat) SIGMA2[i]<-sum(NO.i[i,]*v_s_star/pop_strat) p.star.NORMAL[i]<-pnorm(ClustSize[i], mean=MU[i], sd=sqrt(SIGMA2[i]), lower.tail = TRUE, log.p = FALSE) p-value[i]<-1-pnorm((ClustSize[i]-0.5-MU[i])/sqrt(SIGMA2[i]))+pnorm((-0.5-MU[i])/sqrt(SIGMA2[i])) de<-ee+1 ee<-de+AG-1 } TestStat<-NULL W<-NULL for(i in 1:m){if(j[i]==2){TestStat[i]<-0} if(num[i]==2){W[i]<-0} W[i]<-num[i]-2 TestStat[i]<-j[i]-2} NNO.cell<-NULL for(i in 1:m){NNO.cell[i]<-sum(NO.i[i,])} Cell<-c(1:m) result<-cbind(Cell,W,ClustSize,TestStat,Event,NNO.cell,p-value) return(result) }