Liste de liens :
Liste de liens :
Reproduire le graphique de Weblex: http://weblex.ens-lsh.fr/wlx/cgi/plotspecif?wout=&f=14&F=200&t=500&T=10000 dans TXM.
Étapes de développement :
library(textometry) `specif_distrib` <-function(x, F, t, T) { xlimit=(F/4) f=0:xlimit m=((F+1)*(t+1))/(T+2) pf=dhyper(f,F,T-F,t) pfsum=pf for (i in 1:m) { pfsum[i+1] = pfsum[i+1] + pfsum[i] } for (i in (xlimit-1):m) { pfsum[i+1] = pfsum[i+1] + pfsum[i+2] } px=pf[x+1] pfsumx=pfsum[x+1] title <- sprintf("phyper(%s, F=%d, T-F=%d, t=%d) avec f=%d", paste("[",f[1], ",", f[xlimit+1],"]"), F, T-F, t, x) plot(f,pfsum, type="l", col="blue", main=title) lines(f, pf, type="l", col="green") al=max(pfsum)/10 ad=1 if (m > x) {ad = -ad} tpos=4 if (m > x) {tpos = 2} arrows(m, al*0.7,m,0, length=0.1) arrows(x+ad, al*0.7+px, x, px, length=0.1) arrows(x+ad, al*1.4+pfsumx, x, pfsumx, length=0.1) smode <- sprintf("mode = %d", round(m)) spf <- sprintf("p(f'=%d) = %s", x, format.default(px, sci = TRUE, digits = 4)) if (m > x) { sintpf <- sprintf("p(f'>=%d) = %s", x, format.default(pfsumx, sci = TRUE, digits = 4)) } else { sintpf <- sprintf("p(f'<=%d) = %s", x, format.default(pfsumx, sci = TRUE, digits = 4)) } text(m,al,smode,xpd=TRUE) text(x, (al*0.7)+px,spf, pos=tpos,xpd=TRUE) text(x, (al*1.4)+pfsumx,sintpf, pos=tpos,xpd=TRUE) s1 <- sprintf("P(f' = f)") s2 <- sprintf("integral de P(f' <= f) et P(f' >= f)") legend("topright", c(s1, s2, spf, sintpf),lty = 1, title = "Légende", col=c("green", "blue", "white", "white"), inset = .02, cex=0.9) } specif_distrib(x=15,F=200,t=500,T=10000)
Dans ce proto, il manque la courbe de P(n >= x)
Interface minimale : 4 champs comme ceux du manuel de Weblex http://weblex.ens-lsh.fr/doc/weblex/contraste.html
La macro exécute le script R précédent et affiche le résultat dans l’éditeur SVG.