### Biplot de l'ENFA ###biplot.ENFA=function(x, xax=1, yax=2, presence=ncol(x$df), liss=1,colZ='blue', colS='red', epS=2, X=20, ...) {s=kde2d(x$Sscor[,xax], x$Sscor[,yax], h=c(liss,liss))z=kde2d(x$Zscor[,xax], x$Zscor[,yax], h=c(liss,liss))contour(z, drawlabels=F, col=colZ, ...)contour(s, drawlabels=F, col=colS, lwd=epS, add=T)dfarr=data.frame(cbind(x$U[,xax]/crossprod(x$U[,xax]),x$U[,yax]/crossprod(x$U[,yax])))dimnames(dfarr)[[1]]=x$names[-presence]s.arrow(X*dfarr, grid=F, addaxes=F, add.plot=T, clabel=0.75)}### Habitat Suitability glm ###predict.RSF=function(object, newdata=object$df, percent=0.99, ...) {if (object$type=='d/p') {object$HS=exp(predict(object$glm, newdata, ...))object$HS=(object$HS-min(object$HS))/(quantile(object$HS,probs=percent)-min(object$HS))object$HS[object$HS>quantile(object$HS, probs=percent)]=1}else object$HS=predict(object$glm, newdata, type='response', ...)return(invisible(object))}### prédiction Habitat Suitability ###predict.ENFA=function(object, newdata=NULL, nf=object$nf) {if (is.null(newdata)) Zscor=object$Zscorelse Zscor=as.matrix(sweep(sweep(newdata, 2,apply(object$df[,1:object$V], 2, mean)), 2,sqrt(apply(object$df[,1:object$V], 2, var)), FUN="/")) %*%object$USscor=object$Sscor}f1=function(i) {f2=function(j) {n1=sum(Sscor[,j]>Zscor[i,j])n2=object$Ns-n1return(2*min(n1,n2)/object$Ns)}return(mean(unlist(lapply(1:(nf+1),f2))))}if (is.null(newdata)) {object$HS=unlist(lapply(1:object$N,f1))return(invisible(object))}return(invisible(unlist(lapply(1:nrow(newdata),f1))))### histogramme des indices HS ###hist.HS=function(objet) {H=hist(objet$HS[objet$pr==1], plot=F, br=seq(0,1,length=21))G=hist(objet$HS, plot=F, br=seq(0,1,length=21))yrange=c(0,max(H$density, G$density))plot(H, freq=F, col='orange', border='orange', xlim=c(0,1),ylim=yrange, main='Histogramme des indices d habitat', xlab='HSdisponible (bleu) et utilisé (orange)', ylab='Densité')plot(G, freq=F, border='blue', add=T)}35
### Fonction Seuil ###seuil=function(objet, seuil=0.5) {objet$pot = vector(length = length(objet$HS))objet$pot[objet$HS>=seuil]=1return(objet)}### Minimum Area Predicted ###MPA=function(objet, percent=scan(nmax=1)) {cat('\n Quantile de la distribution de présence :\n')print(quantile(objet$HS[objet$pr==1],probs=c(0,0.01,0.05,0.1,0.25,0.5,0.75,1)))objet$MPA=rep(1,length(objet$HS))*(objet$HS>=(quantile(objet$HS[objet$pr==1], probs=percent)))return(objet)}### k-partition d'un tableau ###kpart=function(df, k=5) {sp=sample(1:nrow(df), nrow(df), rep=F)tr=trunc(nrow(df)/k)f1=function(i) {train=df[-sp[((i-1)*tr+1):(i*tr)],]test=df[sp[((i-1)*tr+1):(i*tr)],]return(list(train=train, test=test))}return(lapply(1:k,f1))}### Générique corrélation ###corr=function(x, ...)UseMethod("corr")### Corrélation du modèle de l'ENFA (Boyce et al. 2002) ###corr.ENFA=function(x, presence=ncol(x$df), k=5, nf=x$nf, ...) {par(mfrow=rev(n2mfrow(k)))kdf=kpart(x$df, k)f1=function(i) {hsp=predict(x, newdata=kdf[[i]]$test[,-presence])}quant=quantile(hsp[kdf[[i]]$test[,presence]==1],probs=c(0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1))quant[1]=0quant[11]=1G=hist(hsp, br=quant, plot=F)H=hist(hsp[kdf[[i]]$test[,presence]==1], br=quant, plot=F)ratio=(H$counts/sum(H$counts))/(G$counts/sum(G$counts))plot((1:10)/10,ratio, xlab='HS', ylab='Utilisation relative',type='h')A=cor.test(1:10, ratio, method='spearman')B=cor.test(1:10, ratio, method='kendall')C=cor.test(1:10, ratio)abline(h=1)return(list(A$est, A$p.value, B$est, B$p.value, C$est,C$p.value))M=matrix(unlist(lapply(1:k,f1)), nrow=k, byrow=T,dimnames=list(1:k,c('S.est.cor','S.p.value','K.est.cor','K.p.value','P.est.cor','P.p.value')))par(mfrow=c(1,1))36
- Page 1 and 2: Basille, M. 2004. Le lynx, l'ENFA e
- Page 4: RemerciementsJe voudrais remercier
- Page 7 and 8: premier ordre définit la répartit
- Page 9 and 10: 2. Matériel et méthodes2.1. Donn
- Page 11 and 12: lynx juvéniles (Vandel, 2001). Sep
- Page 13 and 14: 2.2. Méthodes d'analyse2.2.1. L’
- Page 15 and 16: a)Ub)Si s est supérieur à la méd
- Page 17 and 18: GLM-ENFA. En s'appuyant sur un plan
- Page 19 and 20: 2.3.2. Choix du meilleur indiceLa m
- Page 21 and 22: 3. Résultats3.1. Performance des m
- Page 23 and 24: Le test de Monte-Carlo effectué su
- Page 25 and 26: toutes les valeurs d'habitat supér
- Page 27 and 28: pForets pIFN pHydro pNatpOuver pRoa
- Page 29 and 30: 4. DiscussionCe travail s'inscrit d
- Page 31 and 32: Additive Model). Ce résultat montr
- Page 33 and 34: 5. BibliographieBoyce, M.S. & McDon
- Page 35 and 36: Reutter, B.A., Helfer, V., Hirzel,
- Page 38 and 39: }liste=list(df=df, names=names, pr=
- Page 42 and 43: }x$corr=apply(M, 2, mean)return(inv