Esercitazioni di Statistica con Matlab Dott Esercitazioni di Statistica con Matlab Dott. Orietta Nicolis fttp:\ingegneria.unibg.it
Regressione lineare semplice Lo scopo è di stabilire una relazione lineare tra la variabile x e la variabile risposta y.
Regressione multipla Stima dei parametri Lo scopo è di stabilire una relazione quantitativa tra un gruppo di variabili predittive e la risposta y Stima dei parametri
Esempio Si genera una nube di punti x=rand(100,1); y=2+5*x+normrnd(0,0.4, 100,1); plot(x,y,'.')
[norows,nocols]=size(x); Stima dei parametri della retta di regressione [norows,nocols]=size(x); x1=[ones(norows,1) x]; beta=inv(x1'*x1)*x1'*y; Si determinano i valori stimati yh=x1*beta; plot(x, y, '.', x,yh,'-') Si determinano i residui Res=y-yh; Per vedere se provengono da una distribuzione normale si usa normplot o qqplot normplot(Res) qqplot(Res)
Il modello di regressione in matlab [b,bint,r,rint,stats] =regress(y,X,alpha) b = vettore dei coefficienti stimati della retta bint = intervallo di confidenza per i coefficienti b r =residui del modello r = y – yhat rint =intervallo di confidenza per i residui r stats = contiene la statistica R2, insieme al valore F e p.
Esempio x=rand(100,1); y=2+5*x+normrnd(0,0.4, 100,1); plot(x,y,'.') % stima dei prametri della retta di regressione x1=[ones(size(x)) x] [b,bint,r,rint,stats] = regress(y,x1,0.05) yh=b(1)+b(2).*x plot(r) % grafico dei residui normplot(r)
Coefficiente di correlazione lineare In matlab corrcoef(x,y) cov(x,y) std(x) std(y)
Coefficiente di correlazione lineare co=corrcoef(x,y) cf=co(2,1) Coefficiente di determinazione lineare (rapporto tra la devianza spiegata e la devianza totale) cd=co(2,1)^2
BASIC FITTING INTERFACE Dal menu Tools, scegliere Basic Fitting
Esempio Il gestore di una catena di negozi tessili ha deciso di studiare le vendite dei classici pullovers blu in dieci periodi. Indicando con X1 il numero di pullovers venduti, X2 la variazione del prezzo, X3 i costi di pubblicità sui giornali locali e con X4 la presenza di venditori (in ore per periodo), in dieci periodi osserva la seguente matrice X = (X1, X2, X3, X4). Determinare se il numero di pullovers venduti dipende dall’andamento dei prezzi. a) Determinare se il numero di pullovers venduti dipende sia dall’andamento dei prezzi che dai costi di pubblicità’.
Soluzione a) load pullovers .txt –ascii y=pullovers(:,1); x1=pullovers(:,2); X=[ones(size(x1),1) x1 ] ; [B, Bint, Resid, Rint, Stats]=regress(y, X, 0.05);
Soluzione b) load pullovers .txt –ascii y=pullovers(:,1); x1=pullovers(:,2); x2=pullovers(:,3); X=[ones(size(x1)) x1 x2] ; [B, Bint, Resid, Rint, Stats]=regress(y, X, 0.05);
Esercizio (02/07/02)