%-------------------------------------------------------------------------------- % Quinto laboratorio 17 Dicembre 2002 % Argomento: intervalli di confidenza %-------------------------------------------------------------------------------- %-------------------------------------------------------------------------------- % 1. INTERVALLO DI CONFIDENZA SIMMETRICO PER LA MEDIA DI UNA POPOLAZIONE CON VARIANZA NOTA % % mu+- = X_n +- z_beta * sigma / sqrt(n) %-------------------------------------------------------------------------------- % generiamo un campione di 10 osservazioni con legge normale standard % e dimentichiamo di averlo generato ma supponiamo che sia frutto dell'osservazione % di un determinato fenomeno che IPOTIZZIAMO abbia media = 0 e che sappiamo con CERTEZZA % avere varianza = 1 mu = 0; n = 10; sigma = 1; x = normrnd (mu, sigma, n, 1); % ed ora cerchiamo l'ampiezza di un intervallo SIMMETRICO rispetto a xmedio % che contenga la media con probabilita' del 95% (chiariremo in seguito il significato di questa espressione) alpha = 0.95; xmedio = mean (x); beta = (1 + alpha)/2; zbeta = norminv (beta, 0, 1); errore = zbeta*sigma/sqrt(n) intervallo = [xmedio-errore xmedio+errore] % proviamo con diversi valori di : come varia l'ampiezza dell'intervallo % al crescere di n? for n = 1 : 1000 x = normrnd (mu, sigma, n, 1); xmedio = mean (x); zbeta = norminv (beta, 0, 1); errore(n) = zbeta*sigma/sqrt(n); end plot(errore) % NOTA: con questo procedimento non siamo arrivati a conoscere il valore vero della media % (ovvero il valore atteso della v.a. che modellizza il fenomeno) % ma ora sappiamo che, ripetendo un numero grande di volte () l'esperimento, % nel 95% dei casi il valore vero della media sarà contenuto nell'intervallo centrato in e di ampiezza % pari a % generiamo 200 intervalli di confidenza al 95%. (Ancora una volta dobbiamo "fingere" che i dati così generati % siano invece frutto dell'osservazione ripetuta di un fenomeno) % Quanti di questi contengono il valore vero della media? n = 50; nprove = 200; x = normrnd (mu, sigma, n, nprove); xmedio = mean (x); zbeta = norminv (beta, 0, 1); mumeno = xmedio-zbeta*sigma/sqrt (n); mupiu = xmedio+zbeta*sigma/sqrt (n); nok = sum (mumeno dovrebbe essere vicino ad % vediamo la variabilita' degli intervalli: plot(mumeno); hold on plot(mupiu); hold off %------------------------------------------------------------------------------------ % 2. INTERVALLO DI CONFIDENZA SIMMETRICO PER LA FREQUENZA DI POPOLAZIONE BERNOULLIANA % % La formula è ancora la stessa ma questa volta approssimiamo sigma: % % mu+- = X_n +- z_beta * sqrt{X_n * (1 - X_n) / n) % % !!!!!! assicurarsi che np>5 e n(1-p)>5 !!!!!! %------------------------------------------------------------------------------------ p = 0.2; mu = p; alpha = 0.95; beta = (1 + alpha)/2; n = 100; nprove = 200; x = binornd (1, p, n, nprove); xmedio = mean (x); sigma = sqrt (xmedio.*(1-xmedio)); % attenzione al punto!!! zbeta = norminv (beta, 0, 1); mumeno = xmedio-zbeta*sigma/sqrt (n); mupiu = xmedio+zbeta*sigma/sqrt (n); nok = sum (mumeno: come varia l'ampiezza dell'intervallo % al crescere di n? for n = 1 : 1000 x = normrnd (mu, sigma, n, 1); xmedio = mean (x); tbeta = tinv (beta, n-1); errore(n) = tbeta*S/sqrt(n); end plot(errore) % confrontiamo gli intervalli di confidenza per la media % con varianza nota e quelli con varianza incognita: % si puo' dire a priori quali sono piu' ampi? [no] zbeta = norminv (beta, 0, 1); errore2 = zbeta*sigma/sqrt(n) intervallo2 = [xmedio-errore2 xmedio+errore2] bar([errore errore2]) % confrontiamo ora gli intervalli di confidenza per la media % con varianza nota, usando come varianza la varianza campionaria calcolata % invece di sigma^2, e quelli con varianza incognita: % si puo' dire a priori quali sono piu' ampi? [si, errore>errore3] zbeta = norminv (beta, 0, 1); errore3 = sbeta*S/sqrt(n) intervallo3 = [xmedio-errore3 xmedio+errore3] bar([errore errore3]) % generiamo 200 intervalli di confidenza al 95%. % Quanti di questi contengono il valore vero della media? n = 50; nprove = 200; x = normrnd (mu, sigma, n, nprove); xmedio = mean (x); tbeta = tinv (beta,n-1); S = std(x); mumeno = xmedio-tbeta*S/sqrt (n); mupiu = xmedio+tbeta*S/sqrt (n); nok = sum (mumeno