diff --git a/Comparaison_of_methods.rmd b/Comparaison_of_methods.rmd index 13a3e74..d5e2a49 100644 --- a/Comparaison_of_methods.rmd +++ b/Comparaison_of_methods.rmd @@ -11,6 +11,8 @@ library("localScore") library("latex2exp") library("Rcpp") library("caret") +library("ROCR") +library("pROC") ``` ## 1. Proposition for simulations under $\mathcal{H}_1$ @@ -119,17 +121,18 @@ CDF=Plot_CDF(lambda0,n_sample,T,tau) Compute $p$-value for scan statistic of `ppH1` with `Emp`: ```{r} PValue <- function(Emp,ppH, T, tau){ - scanH1=ScanStat(ppH,T,tau)[2] - index_scanH1=ScanStat(ppH,T,tau)[1] - index=Emp$index_scan + SS = ScanStat(ppH,T,tau) + scanH = SS[2] + index_scanH = SS[1] + index = Emp$index_scan n=length(index) - if (scanH1< min(Emp$index_scan)){ - return (c(scanH1,1,index_scanH1)) + if (scanH< min(Emp$index_scan)){ + return (c(scanH,1,index_scanH)) } else{ - if(min(Emp$index_scan)ppH1.repo[length(ppH1.repo)])] - ppH1=c(ppH0_avant,ppH1.repo,ppH0_apres) - return (ppH1) -} -``` - -```{r} -TimeBetweenEvent <- function(pp){ - n=length(pp) - tbe=pp[2:n]-pp[1:n1-1] - tbe=c(0,tbe) - return (tbe) -} - -DataFrame <- function(pp,tbe){ - list=data.frame(ProcessusPoisson=pp, TimeBetweenEvent=tbe) -} -``` - -```{r} -ScanStat <- function(pp, T, tau){ - n=length(pp) - stop=n-length(which(pp>(T-tau))) - ScanStat=0 - for (i in (1:stop)) { - x=which((pp>=pp[i])&(pp<=(pp[i]+tau))) - scan=length(x) - if (scan>ScanStat) {ScanStat=scan - max=i} - } - return (c(max,ScanStat)) -} -``` - -```{r} -EmpDistrib <- function(lambda, n_sample,T,tau){ - pp=PoissonProcess(lambda,T) - scan=c(ScanStat(pp,T, tau)[2]) - index=c(ScanStat(pp,T, tau)[1]) - for (i in 2:(n_sample)){ - pp=PoissonProcess(lambda,T) - scan=rbind(scan,ScanStat(pp,T, tau)[2]) - index=rbind(index,ScanStat(pp,T, tau)[1]) - } - min_scan=min(scan)-1 - max_scan=max(scan) - table1=table(factor(scan, levels = min_scan:max_scan)) - EmpDis=data.frame(cdf=cumsum(table1)/sum(table1), proba=table1/sum(table1), index_scan=min_scan:max_scan) - EmpDis<-EmpDis[,-2] - return(EmpDis) - } -``` - - -```{r} -Plot_CDF <- function(lambda,n_sample,T,tau){ - Emp=EmpDistrib(lambda,n_sample,T,tau) - title=TeX(paste(r'(Cumulative distribution function for $\lambda=$)', lambda)) - plot(Emp$index_scan, Emp$cdf,type="s",xlab="Number of occurrences",ylab="Probability", main=title, col="red") - return(Emp) -} -``` - -```{r} -n_sample=10**4 -lambda0=3 -T=10 -tau=1 -ppH0=PoissonProcess(lambda0,T) -#CDF=Plot_CDF(lambda0,n_sample,T,tau) -``` - -```{r} -PValue <- function(Emp,ppH, T, tau){ - scanH1=ScanStat(ppH,T,tau)[2] - index_scanH1=ScanStat(ppH,T,tau)[1] - index=Emp$index_scan - n=length(index) - if (scanH1< min(Emp$index_scan)){ - return (c(scanH1,1,index_scanH1)) - } else{ - if(min(Emp$index_scan)