Comment puis-je tester

8

J'ai quelques centaines d'estimations d'un paramètre calculé à partir de deux modèles différents et je voudrais savoir si ces paramètres ont des variances différentes.

Qu'est-ce qu'un test simple pour comparer les variances de ces paramètres? (sens simple, moindres hypothèses).

Abe
la source
Comparez-vous les variances (comme indiqué dans la première ligne) ou les moyennes (comme indiqué dans la troisième ligne)?
whuber
@whuber je m'étais confondu; J'ai clarifié ma question.
Abe
@Abe Il semble maintenant que vous ayez inversé les "moyens" et les "écarts" mais il y a toujours une contradiction! (À moins que vous ne vouliez peut-être comparer les variances des moyennes.) Qu'entendez-vous par "variable": les moyennes ou les valeurs sous-jacentes sur lesquelles elles sont basées?
whuber
@whuber désolé, est-ce mieux?
Abe
@Abe Le nouveau titre aide beaucoup. Mais pour être clair: les carrés sigma sont-ils les variances des moyennes ou des variables sous-jacentes sur lesquelles les moyennes sont basées?
whuber

Réponses:

7

Pour comparer les variances , Wilcox suggère une méthode de bootstrap centile. Voir le chapitre 5.5.1 de «Introduction aux tests robustes d'estimation et d'hypothèse» . Ceci est disponible à comvar2partir du package wrs dans R.

modifier : pour trouver la quantité de différences de bootstrap à couper de chaque côté pour différentes valeurs deα, on effectuerait une étude de Monte Carlo, comme suggéré par Wilcox. J'en ai un rapide et sale ici à Matlab (canard de chaussures jetées):

randn('state',0);           %to make the results replicable.
alphas = [0.001,0.005,0.01,0.025,0.05,0.10,0.15,0.20,0.25,0.333];
nreps  = 4096;
nsizes = round(2.^ (4:0.5:9));
nboots = 599;
cutls  = nan(numel(nsizes),numel(alphas));

for ii=1:numel(nsizes)
    n = nsizes(ii);
    imbalance = nan(nreps,1);
    for jj=1:nreps
        x1 = randn(n,1);x2 = randn(n,1);
        %make bootstrap samples;
        x1b = x1(ceil(n * rand(n,nboots)));
        x2b = x2(ceil(n * rand(n,nboots)));
        %compute stdevs
        sig1 = std(x1b,1);sig2 = std(x2b,1);
        %compute difference in stdevs
        Dvar = (sig1.^2 - sig2.^2);
        %compute the minimum of {the # < 0} and {the # > 0}
        %in (1-alpha) of the cases you want this minimum to match
        %your l number; then let u = 599 - l + 1
        imbalance(jj,1) = min(sum(Dvar < 0),sum(Dvar > 0));
    end
    imbalance = sort(imbalance);
    cutls(ii,:) = interp1(linspace(0,1,numel(imbalance)),imbalance(:)',alphas,'nearest');
end
%plot them;
lh = loglog(nsizes(:),cutls + 1);
legend(lh,arrayfun(@(x)(sprintf('alpha = %g',x)),alphas,'UniformOutput',false))
ylabel('l + 1');
xlabel('sample size, n_m');

Je reçois l'intrigue plutôt inutile: entrez la description de l'image ici

Un peu de piratage indique qu'un modèle de la forme l+0.5=exp5.18α0.94n0.067correspond assez bien à mes simulations de Monte-Carlo, mais elles ne donnent pas les mêmes résultats que Wilcox cite dans son livre. Vous pourriez être mieux servi en exécutant vous-même ces expériences à votre choixα.

edit J'ai relancé cette expérience, en utilisant de nombreuses répliques (218) par taille d'échantillon. Voici un tableau des valeurs empiriques del. La première ligne est un NaN, puis l'alpha (taux de type I). Ensuite, la première colonne est la taille des échantillons,n, puis les valeurs empiriques de l. (Je m'attendrais à ce quen nous aurions l599α/2)

NaN,0.001,0.005,0.01,0.025,0.05,0.1,0.15,0.2,0.25,0.333
16,0,0,1,4,9,22,35,49,64,88
23,0,0,1,4,10,23,37,51,66,91
32,0,0,1,4,10,24,38,52,67,92
45,0,0,1,5,11,25,39,54,69,94
64,0,0,2,5,12,26,41,55,70,95
91,0,1,2,6,13,27,42,56,71,96
128,0,1,2,6,13,28,42,58,72,97
181,0,1,2,6,13,28,43,58,73,98
256,0,1,2,6,14,28,43,58,73,98
362,0,1,2,7,14,29,44,59,74,99
512,0,1,2,7,14,29,44,59,74,99
shabbychef
la source
@shabbychef merci de m'avoir pointé dans cette direction. Il ne m'a fallu que 5 minutes environ pour télécharger, lire le chapitre de la section et calculer; très apprécié, mais je vais continuer d'accepter votre réponse dans l'espoir que d'autres méthodes seront suggérées - car celle-ci est plutôt limitée (seuls les tests à alpha = 0,05, et il peut y avoir d'autres options pour les grands échantillons comme dans le cas présent)
Abe
@shabbychef J'ai déjà +1 mais n'a pas eu de chance avec le package R - La version OS X n'inclut pas la fonction susmentionnée :(
chl
@chl AFAIK le package est juste un ensemble pratique pour les fonctions disponibles sur www-rcf.usc.edu/~rwilcox/Rallfun-v13
caracal
@Abe: pour les valeurs de α0.05, Wilcox décrit la méthode de construction des valeurs limites de l et u, mais je conviens que ce serait bien s'ils étaient disponibles en tant que fonctions approximatives de α.
shabbychef
@shabbychef Je suis confus - dans le livre, il est dit que la méthode ne peut être appliquée qu'avec α=0.05, modifications basées sur d'autres αles valeurs n'ont pas été dérivées "? Son résumé du papier de 2002 suggère le contraire, mais je ne suis pas en mesure d'y accéder.
Abe