A. Pollice - STATISTICA MULTIVARIATA
Modello lineare generale e modelli lineari generalizzati
lm()
La funzione lm() è utilizzata per la stima di modelli lineari generali, ovvero modelli di regressione, di analisi
della varianza e della covarianza.
Si utilizza il comando stima.mod<-lm(formula,data,...) dove data è il data frame che contiene le
variabili da analizzare e formula specifica l’espressione del modello lineare in termini simbolici, tipicamente
nella forma
y~x1+...+xp
dove y, x1,...,xp sono rispettivamente i vettori che contengono le osservazioni della variabile risposta
(quantitativa) e di p variabili esplicative (non necessariamente quantitative). L’intercetta viene
automaticamente inclusa nel modello stimato, e qualora si voglia ometterla bisogna specificare il modello
nella forma
y~-1+x1+...+xp
Si possono includere nel modello termini che tengono conto delle interazioni tra variabili esplicative (ad
esempio x1 e x2) nel modo seguente
y~x1+...+xp+x1:x2
Inoltre si può specificare un modello "completo" che tenga conto di tutte le variabili esplicative e delle
interazioni tra le stesse. Ad esempio per x1, x2 e x3 la formula y~x1*x2*x3 equivale alla formula
y~x1+x2+x3+x1:x2+x2:x3+x1:x3+x1:x2:x3.
Il risultato della funzione lm(), ovvero l'oggetto stima.mod, è una lista composta da numerosi elementi che
riguardano tutti la stima del modello. I principali sono i vettori stima.mod$coefficient, che contiene la
stima dei coefficienti del modello, stima.mod$residuals, che contiene i residui e
stima.mod$fitted.values che contiene i valori teorici stimati con il modello di regressione.
Vi sono diverse funzioni che possono essere applicate agli oggetti prodotti tramite la funzione lm(), in
particolare
summary(): risultato convenzionale di un'analisi di regressione;
deviance(): somma dei quadrati dei residui;
anova(): tabella di analisi della varianza riferita alla stima del modello;
plot(): grafici diagnostici della bontà della stima del modello:
• Grafico dei residui contro i valori teorici: può rivelare la presenza di una dipendenza residua
sistematica non individuata dal modello lineare stimato. In un buon modello questo grafico
dovrebbe apparire come completamente accidentale;
• Normal q-q plot dei residui standardizzati: verifica visuale dell'assunzione di normalità della
componente erratica del modello lineare. Quanto più i punti che rappresentano i residui ordinati
giacciono in prossimità della linea q-q, tanto più plausibile è detta assunzione;
• Grafico delle radici quadrate dei residui standardizzati contro i valori teorici: utile
nell'individuazione di osservazioni anomale e per visualizzare strutture di dipendenza residue
non individuate dal modello stimato;
• Grafico delle distanze di Cook: misure dell'influenza di ciascuna osservazione individuale sulla
stima dei parametri del modello.
influence.measures(): misure diagnostiche per verificare la presenza di osservazioni anomale;
predict(): valori teorici stimati per osservazioni diverse da quelle utilizzate per la stima del
modello.
Infine, oltre alle funzioni contenute nel package base della distribuzione di R vi sono altri tre packages
scaricabili da CRAN che contengono molte altre funzioni utili per la stima di modelli lineari e la verifica del
buon adattamento: acepack, car, lmtest.
drop1(), add1(), step()
Le funzioni drop1(mod, form,...) e add1(mod, form,...) permettono di eliminare/aggiungere
singole variabili esplicative da/ad un modello lineare già stimato. Vanno specificati un modello di partenza
(mod) e una formula (form) che individua le variabili da eliminare/aggiungere. Vengono stimati tutti i modelli
ottenibili eliminando/aggiungendo al modello specificato una variabile di quelle indicate e vengono calcolati
degli indici di adattamento per ciascun modello ottenuto.
La funzione step(mod, form, direction=, keep=,...) sceglie le covariate del modello tramite un
algoritmo stepwise basato sull'AIC (Akaike Information Criterion: AIC=-2*verosim. mass.+2*#param.),
utilizzando iterativamente le funzioni drop1() e add1(). L'opzione direction= serve a scegliere la
modalità di selezione delle variabili ("forward", "backward", "both"), mentre l'opzione keep= permette
di specificare le variabili da tenere nel modello anche se scarsamente significative.
aov()
Calcola l'analisi della varianza. Sintassi analoga a quella della funzione lm(), produce come output una
tradizionale tabella di analisi della varianza. Funzioni print() e summary() per oggetti creati tramite
aov().
gls() [package nlme]
La funzione gls(formula, data, correlation=, weights=,...) serve a stimare i parametri di un
modello lineare generale attraverso il metodo dei minimi quadrati generalizzati. In tal caso si può assumere
che le osservazioni siano correlate e/o non abbiano la stessa varianza.
L'opzione correlation= permette di specificare un oggetto che individui la struttura della correlazione tra
le osservazioni. Per informazioni sui diversi tipi di strutture di correlazione disponibili in R e sui comandi
corrispondenti consultate ?corClasses.
L'opzione weights= permette di specificare un oggetto che individui la struttura della variabilità delle
osservazioni. Per informazioni sui diversi tipi di strutture di variabilità disponibili in R e sui comandi
corrispondenti consultate ?varClasses.
Funzioni print(), plot() e summary() per oggetti creati tramite gls().
glm()
La funzione glm(formula, family =, data,...) serve per stimare i modello lineari generalizzati. In
questo caso nella formula vengono specificate la variabile risposta e le variabili antecedenti presenti nel
predittore lineare, mentre l'argomento family riguarda la distribuzione della variabile risposta e la funzione
link. Per informazioni sulle diverse distribuzioni e funzioni link disponibili e sulla relativa sintassi consultate
?family.
Il risultato della funzione glm() è una lista che contiene varie informazioni sul modello stimato. Anche in
questo caso tra gli elementi principali della lista vi sono i vettori $coefficients, $residuals ,
$fitted.values, $deviance e $aic.
Funzioni anova() e summary() per oggetti creati tramite glm().