Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Implemente Jackknife usando la computación paralela

Este ejemplo es de la página de referencia de función, pero se ejecuta en paralelo.jackknife

Genere una muestra de datos de tamaño 10000 desde una distribución normal con la media 0 y la desviación estándar 5.

sigma = 5; rng('default') y = normrnd(0,sigma,10000,1);

Ejecutar en paralelo para estimar la varianza.jackknife Para ello, se utiliza para crear la estructura de opciones y establecer el campo en true.statset UseParallel

opts = statset('UseParallel',true); m = jackknife(@var,y,1,'Options',opts);

Compare la fórmula de sesgo conocida con la estimación de sesgo de Jackknife.

n = length(y); bias = -sigma^2/n % Known bias formula jbias = (n-1)*(mean(m)-var(y,1)) % jackknife bias estimate
Starting parallel pool (parpool) using the 'local' profile ...  Connected to the parallel pool (number of workers: 6).  bias =     -0.0025   jbias =     -0.0025

Compare cuánto tiempo lleva calcular en serie y en paralelo.

tic;m = jackknife(@var,y,1);toc  % Serial computation
Elapsed time is 1.638026 seconds. 
tic;m = jackknife(@var,y,1,'Options',opts);toc % Parallel computation
Elapsed time is 0.507961 seconds.

no utiliza números aleatorios, por lo que da los mismos resultados cada vez, ya sea que se ejecuten en paralelo o en serie.jackknife