// Intervalle de confiance

// Intervalle de confiance exact.

function itc1(n) // on estime la variance connaissant la moyenne
    a=0.05 // valeur du niveau de l'intervalle de confiance
    X=grand(1,n,'nor',1,4) // on va chercher à retrouver la valeur de la variance 16 (attention: 4 est l'écart type )
    b1=zeros(1,n)
    b2=zeros(1,n)
    for i=2:n
        res=0
        for j=1:i
            res=res+(X(j)-1)^2 // estimateur de la variance
        end
        q1=cdfchi("X",i,1-a/2,a/2) // Attention, connaissant m le chi-deux est à i degré de liberté !
        q2=cdfchi("X",i,a/2,1-a/2)
        b1(i)= res/q2 // borne inférieure de l'itc
        b2(i)=res/q1 // borne supérieure de l'itc
    end
    u=[20:n]
    plot(u,b1(20:n))
    plot(u,b2(20:n))
    title('Intervalle de confiance pour l écart-type')
    xlabel('Taille de l échantillon')
    ylabel('Valeur du paramètre d interêt')
endfunction

function itc2(n) // on estime la moyenne connaissant la variance
    a=0.05
    X=grand(1,n,'nor',1,4) // attention: 4 est l'écart type !
    b=zeros(1,n)
    for i=2:n
        xn=0
        for j=1:i
            xn=xn+X(j)
        end
        xn=xn/i // on calcule la moyenne empirique
        res=0
        for j=1:i
            res=res+(X(j)-xn)^2
        end
        q1=cdfchi("X",i-1,1-a/2,a/2)
        q2=cdfchi("X",i-1,1-a,a)
        b1(i)= res/q2
        b2(i)=res/q1
    end
    u=[1:n]
    plot(u,b2)
    plot(u,b1)
    title('Intervalle de confiance pour la moyenne')
    xlabel('Taille de l échantillon')
    ylabel('Valeur du paramètre d interêt')
endfunction


// Intervalle de confiance asymtotique

function ica(n)
    a=0.05
    X=grand(1,n,"bin",1,0.3) // on cherche le paramètre la Bernoulli
    q=cdfnor("X",0,1,1-a/2,a/2) // quantile au niveau 1-a/2 d'une loi normale
    b1=zeros(1,n)
    b2=zeros(1,n)
    for i=1:n
        xn=0
        for j=1:i
            xn=xn+X(j)
        end
        xn=xn/i // moyenne empirique
        b1(i)=-q*sqrt(xn*(1-xn))/sqrt(n)+xn // bornes données par le TCL
        b2(i)=q*sqrt(xn*(1-xn))/sqrt(n)+xn
    end
    u=[1:n]
    plot(u,b1)
    plot(u,b2)
    title('Intervalle de confiance pour le paramètre p')
    xlabel('Taille de l échantillon')
    ylabel('Valeur du paramètre d interêt')
endfunction
