¿Cómo puedo probar


8

Tengo unos cientos de estimaciones de un parámetro calculado a partir de dos modelos diferentes y me gustaría saber si estos parámetros tienen diferentes variaciones.

¿Qué es una prueba sencilla para comparar las variaciones de estos parámetros? (significado directo, menos suposiciones).


¿Está comparando variaciones (como se afirma en la primera línea) o medias (como se indica en la tercera línea)?
whuber

@whuber me había confundido a mí mismo; He aclarado mi pregunta.
Abe

@Abe Parece que ahora has invertido "medios" y "variaciones", ¡pero todavía hay una contradicción! (A menos que desee comparar las variaciones de las medias). ¿Qué quiere decir con "variable": las medias o los valores subyacentes en los que se basan?
whuber

@whuber lo siento, ¿eso es mejor?
Abe

@Abe El nuevo título ayuda mucho. Pero para ser claros: ¿son los cuadrados sigma las varianzas de las medias o de las variables subyacentes en las que se basan las medias?
whuber

Respuestas:


7

Para comparar las variaciones , Wilcox sugiere un método de arranque por percentil. Consulte el capítulo 5.5.1 de 'Introducción a la estimación robusta y las pruebas de hipótesis' . Está disponible a comvar2partir del paquete wrs en R.

editar : para encontrar la cantidad de diferencias de arranque para recortar de cada lado para diferentes valores de , se realizaría un estudio de Monte Carlo, como lo sugiere Wilcox. Tengo uno rápido y sucio aquí en Matlab (pato de los zapatos arrojados):α

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');

Me sale la trama bastante inútil: ingrese la descripción de la imagen aquí

l+0.5=exp5.18α0.94n0.067α

218lnlnl599α/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 gracias por señalarme en esta dirección. Solo me llevó unos 5 minutos descargar, leer el capítulo de la sección y calcular; lo aprecio mucho, pero voy a esperar aceptar su respuesta con la esperanza de que se sugieran otros métodos, ya que este es bastante limitado (solo pruebas en alfa = 0.05, y puede haber otras opciones para muestras grandes como en el presente caso)
Abe

@shabbychef Ya hice +1 pero tuve mala suerte con el paquete R: la compilación de OS X no incluye la función mencionada anteriormente :(
chl

@chl AFAIK el paquete es solo un paquete conveniente para las funciones que están disponibles en www-rcf.usc.edu/~rwilcox/Rallfun-v13
caracal

α0.05luα

α=0.05α
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.