#-------------------------------------------------------------------------------
#Estimation de la loi de survie par Kaplan-Meier
w=survfit(Surv(AncEntree,AncSortie,non_censure,"counting")~round(AgeSurvenance),data=t,type="kaplan-meier",subset=(round(AgeSurvenance)>=ageMin)&(round(AgeSurvenance)<=ageMax))
#Mise en forme des lois de survie en pas mensuel
nomsColonnes=names(w$strata)
nbColonnes=length(nomsColonnes)

tauxBruts=matrix(ncol=nbColonnes,nrow=ancMax)
colnames(tauxBruts)=nomsColonnes
S=as.vector(0:ancMax)
Q=as.vector(0:(ancMax-1))

for(j in 1:nbColonnes){
	for(i in 0:ancMax){
		S[i+1]=min(w[j]$surv[w[j]$time/nbJoursMois<=i])
  	}
	  Q=1-S[2:(ancMax+1)]/S[1:ancMax]	
    tauxBruts[,nomsColonnes[j]]=Q
  }
tauxBruts[is.na(tauxBruts)]=0
tauxBruts=tauxBruts[(ancMin+1):ancMax,]

#Représentation graphique des taux de sortie par âge à la survenance
#par(mfrow=c(2,2))
sauveFigure()
persp((ancMin:(ancMax-1)),(ageMin:ageMax),tauxBruts,theta=-40,phi=15,xlab='ancienneté',ylab='âge de survenance',zlab='qx',col="lightgreen",expand=0.5,shade=0.8,ticktype="detailed")
title(paste(format(tauxEchantillonnage*100)," - Taux de sortie bruts (KM)",sep=""))
dev.off()
#-------------------------------------
#Lecture des tables du BCAC
tauxBCAC=as.matrix(read.table(paste(dossierTables,"/",versionBCAC,".csv",sep=""),header=TRUE,dec=",",sep=";"))
#Suppression des valeurs nulles...
tauxBCAC[tauxBCAC<0]=0
sauveFigure()
persp((ancMin:(ancMax-1)),(ageMin:ageMax),tauxBCAC[(ancMin+1):ancMax,],theta=-40,phi=15,xlab='ancienneté',ylab='âge de survenance',zlab='qx',col="lightgreen",expand=0.5,shade=0.8,ticktype="detailed")
title("Taux de sortie BCAC")
dev.off()
#-------------------------------------------------------------------------------
#Calcul de expositions et des nombres de sorties par mois

expo=matrix(nrow=(ancMax-ancMin),ncol=nbColonnes)
sorties=matrix(nrow=(ancMax-ancMin),ncol=nbColonnes)

ex=as.vector(ancMin:(ancMax-1))
dc=as.vector(ancMin:(ancMax-1))

for (ageBase in ageMin:ageMax){
  t_obs=subset(t,round(t$AgeSurvenance)==ageBase)
	for (x in ancMin:(ancMax-1)){
		#ex[x+1-ancMin]=sum(pmax(0,pmin(x+1,t_obs$AncSortie/nbJoursMois)-pmax(x,t_obs$AncEntree/nbJoursMois)))
		ex[x+1-ancMin]=sum(pmax(0,pmin(x+1,trunc(t_obs$AncSortie/nbJoursMois)+1)-pmax(x,t_obs$AncEntree/nbJoursMois)))
		dc[x+1-ancMin]=sum(t_obs$non_censure[floor(t_obs$AncSortie/nbJoursMois)==x])
		}
	expo[,ageBase-ageMin+1]=ex
	sorties[,ageBase-ageMin+1]=dc
	}
z=sorties/expo
z[z>1]=1
sauveFigure()
persp((ancMin:(ancMax-1)),(ageMin:ageMax),z,theta=-40,phi=15,xlab='ancienneté',ylab='âge de survenance',zlab='qx',col="lightgreen",expand=0.5,shade=0.8,ticktype="detailed")
title(paste(format(tauxEchantillonnage*100)," - Taux de sortie bruts (Hoem)",sep=""))
dev.off()
sauveFigure()
persp((ancMin:(ancMax-1)),(ageMin:ageMax),expo,theta=-40,phi=15,xlab='ancienneté',ylab='âge de survenance',zlab='qx',col="lightgreen",expand=0.5,shade=0.8,ticktype="detailed")
title(paste(format(tauxEchantillonnage*100)," - Exposition au risque",sep=""))
dev.off()