2016-01-30 1 views
4

J'ai un ensemble de courbes variant dans le temps, qui sont stockées dans une matrice MATLAB. Chaque rangée de la matrice est l'une de ces courbes, se déroulant dans le temps. Ce sont des répétitions d'une expérience aléatoire.Calculer et tracer des intervalles de confiance pour la moyenne dans MATLAB (bootci)

J'ai besoin de tracer la moyenne de ces courbes dans le temps, avec les intervalles de confiance à 95%.

Ma compréhension des statistiques est plutôt mauvaise, mais il m'a été suggéré d'utiliser des intervalles de confiance bootstrap en utilisant la fonction bootci de MATLAB.

J'ai implémenté un exemple minimal dans MATLAB, mais j'ai quelques doutes. J'espère que vous pourrez m'aider à mieux comprendre cela et à éviter les erreurs stupides.

Voici l'exemple:

NVARIABLES = 200; 
NOBSERVATIONS = 1000; 
RESAMPLING = 10000; 

DATA = rand(NOBSERVATIONS, NVARIABLES); 

[CI, STAT] = bootci(RESAMPLING, @mean, DATA); 

MEAN = mean(DATA); % <------- [1] 

x = 1:NVARIABLES; 

figure; 
hold on; 
plot(x, MEAN, 'LineWidth', 2); 
plot(x, CI(1,:), '--', 'LineWidth', 2); % [2] 
plot(x, CI(2,:), '--', 'LineWidth', 2); 
% plot(x, MEAN-CI(1,:)); % ? 
% plot(x, MEAN+CI(2,:)); % ? 
hold off; 

Voici mes questions:

  • Suis-je utiliser la fonction correctement?
  • Lors de la déclaration/du traçage de la moyenne, est-il correct de tracer la moyenne (DATA) (voir la ligne 1) ou de tracer une moyenne obtenue par la procédure de bootstrap? J'ai vu que STAT contient la moyenne pour chaque exemple de bootstrap, mais je ne sais pas si je devrais utiliser cette information, et comment
  • Est-il correct de tracer les intervalles de confiance comme je le fais (voir ligne [2]) , ou je devrais tracer MEAN-CI (1, :) et MEAN + CI (2, :)?

Vous trouverez ci-joint l'intrigue générée par le code.

enter image description here

Répondre

3

Je peux répondre à Q1 et Q3.

Q1. Le premier argument doit être le nombre d'échantillons bootstrap utilisés dans le calcul, le second, une fonction qui retourne la statistique pour laquelle vous souhaitez trouver les intervalles de confiance, et le troisième est l'ensemble de données lui-même que vous voulez donner en entrée la fonction. Vous devrez vous assurer que si le premier argument est correct pour vous, le reste semble correct.

Q3. Ce que vous avez fait est juste - CI donne la gamme, et non la variation de la moyenne. Il existe également une autre façon de tracer le graphique, qui peut être meilleure dans certains scénarios ou simplement basée sur des préférences personnelles. plot_ci est une fonction qui vous permet de tracer des intervalles de confiance et d'afficher des correctifs propres pour ces intervalles sur le même tracé. Les parcelles ressemblent à ceci (ce qui est une placette, ne repose pas sur l'ensemble de données dans la question): Confidence Interval plot

Voici la commande:

plot_ci(x,[MEAN,CI(1,:),CI(2,:)],'PatchColor', 'k', 'PatchAlpha', 0.1, 'MainLineWidth', 2, 'MainLineStyle', '-', 'MainLineColor', 'b','LineWidth', 1.5, 'LineStyle','--', 'LineColor', 'k');