Methode de Lahiri, tirage d'echantillon.

Fermé
Curieuse - 17 mai 2011 à 22:04
Bonjour à tous,

J'ai un problème que vous pourrez, j'espère, m'aider à résoudre :
je dois programmer un échantillon avec remise selon un plan pps pour de la statistique, l'algorithme est le suivant :

Soit U un vecteur contenant les variables d'interêt u={x1,x2,....xN}, N la longueur de U et M son maximum.

L'algorithme est le suivant :

1) tirer un nombre entre 1 et N : k
2)tirer un nombre entre 1 et M : r
Si r<=xk alors k va dans l'échantillon s sinon on recommence à l'étape 1)
3) recommencer jusqu'à la taille d'échantillon voulue

J'ai ainsi programmé en matlab ce qui suit mais le problème est que l'échantillon reste la liste vide et donc que mon programme ne s'arrête jamais, pouvez vous m'aider ?

function [s] = echarpps(U,n)
%Donne un echantillon pour un plan pps avec remise sur la population V
%ayant pour vecteur U contenant une variable auxiliaire bien corellee
%renvoyant un echantillon de taille n
N=length(U);
M=max(U);
s=[];
while (length(s)<n)
k=randi(N,1,1); %donne un entier de maniere aleatoire entre 1 et N
e=randi(M,1,1); %donne un entier de maniere aleatoire entre 1 et M
if (e<=(U(k)))
(s==[s [k]]);
end
end
end


Merci beaucoup