Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
LABORATORIO DI STATISTICA AZIENDALE
4. Modello di Regressione lineare con R parte - 2 Enrico Properzi - A.A. 2010/2011
2
Il file azfrutt.txt contiene alcuni dati tratti dai bilanci di un campione di aziende agricole:
codaz Codice dell’azienda ote orientamento produttivo ricavi produzione lorda vendibile capimp capitale impiegato ulut unità lavorative totali sau superficie agricola frutta <- read.table("azfrutt.txt", header=T) str(frutta) 'data.frame': 36 obs. of 6 variables: $ cod : int $ ote : int $ ricavi: int $ capimp: int $ ulut : num $ sau : num
3
La variabile ote riporta le tipologie di coltura prevalenti 31 viticoltura 32 frutta Dobbiamo trasformarle in fattori: frutta$ote <- factor(frutta$ote, labels=c("viticoltura", "frutta")) Studiamo inizialmente un modello di regressione in cui la produzione sia funzione della superficie agricola (sau), del lavoro (ulut) e del capitale (capimp). ricavi = β0 + β1sau + β2ulut + β3capimp + ε > m <- lm(ricavi ~ sau + ulut + capimp) > summary (m) Call: lm(formula = ricavi ~ sau + ulut + capimp) Residuals: Min 1Q Median 3Q Max
4
Stime dei coefficienti e test per la verifica di ipotesi che siano significativamente diversi da 0: Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.393e e * sau 1.907e e e-06 *** ulut 2.500e e capimp 2.456e e * --- Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Indicatori per la valutazione della bontà di adattamento del modello: Residual standard error: on 32 degrees of freedom Multiple R-squared: , Adjusted R-squared: F-statistic: on 3 and 32 DF, p-value: 7.803e-10
5
Per poter confrontare i coefficienti di regressione parziale tra loro , è necessario calcolare i coefficienti di regressione standardizzati: coef(m)[2]*(sd(sau)/sd(ricavi)) sau coef(m)[3]*(sd(ulut)/sd(ricavi)) ulut coef(m)[4]*(sd(capimp)/sd(ricavi)) capimp
6
Verifichiamo le assunzioni del modello OLS:
par(mfrow=c(2,2)) plot(m) par(mfrow=c(1,1))
7
VARIABILI ESPLICATIVE CATEGORIALI IN UN MODELLO DI REGRESSIONE
Tra le variabili indipendenti della formula del comando lm è possibile inserire anche variabili di tipo factor Utilizzando i dati dell’esempio precedente(aziende agricole) possiamo introdurre un nuovo regressore di tipo qualitativo: ote Consideriamo il modello: ricavi = β0 + β1sau + β2ote + β3capimp + ε in cui la variabile fattore ote può assumere due modalità: “viticoltura” o “frutta”. Nell’utilizzare questo fattore, R considera la variabile dummy con valore 0 quando ote = “viticoltura” 1 quando ote = “frutta”
8
m1 <- lm(ricavi ~ sau + ote + capimp) > summary(m1) Call: lm(formula = ricavi ~ sau + ote + capimp) Residuals: Min 1Q Median 3Q Max Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 1.660e e *** sau 1.680e e e-06 *** otefrutta 8.663e e * capimp 2.249e e * --- Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: on 32 degrees of freedom Multiple R-squared: , Adjusted R-squared: F-statistic: on 3 and 32 DF, p-value: 1.338e-10
9
Volendo interpretare il significato dei coefficienti possiamo dire che:
Ogni ettaro di superificie agricola in più determina un incremento di euro di ricavi. Questo è valido sia per le aziende con vite sia per quelle con frutta. Ogni euro di capitale investito determina un incremento di euro di ricavi. Questo è valido sia per le aziende con vite sia per quelle con frutta. A parità degli altri fattori, le aziende frutticole tendono ad avere ricavi di euro più alti rispetto a quelle viticole. ricavi = β0 + β1sau + β3capimp se vinicola ricavi = (β0 + β2) + β1sau + β3capimp se frutticola
10
>plot(sau, ricavi, col=c("blue", "red")[ote])
> plot(capimp, ricavi, col=c("blue", "red")[ote])
11
SELEZIONE DI VARIABILI E AGGIORNAMENTO DEL MODELLO
Il problema che spesso si deve affrontare nella costruzione di un modello di regressione riguarda la scelta delle variabili esplicative. Nel modello bisognerebbe includere quelle variabili esplicative la cui varaizione apporta un contributo reale alla variazione della variabile risposta. In genere aumentando il numero di regressori inseriti nel modello la devianza dei residui tende a diminuire. Tuttavia alcune variabili esplicative potrebbero risultare statisticamente significative, e quindi venire incluse nel modello, unicamente per fattori dovuti al caso. AL contrario variabili esplicative logicamente fondamentali potrebbero risultare statisticamente non significative ed essere così escluse dal modello. La strategia complessiva della scelta di varaibili si può articolare nelle seguenti fasi: Decidere quali sono le variabili che costituiscono l’insieme più ampio dei k regressori Trovare uno o più sottoinsiemi di variabili (p) che spiegano bene la variabile risposta Applicare una regola di arresto per decidere quante variabili esplicative usare Stimare i coefficienti di regressione Saggiare la bontà del modello ottenuto
12
Il problema della scelta della regola di arresto viene risolto con l’Akaike Information Criterion (AIC) o il Bayes Information Criterion (BIC) entrambi basati sui logaritmi della verosimiglianza AIC = -2*logL + k*df dove: L è la verosimiglianza df sono i gradi di libertà k i parametri Il comando AIC(modello) fornisce il valore di AIC per il modello stimato Il comando AIC(modello, k=log(n)), dove n = numero di osservazioni, fornisce il valore di BIC del modello.
13
Consideriamo il dataset risparmi
Consideriamo il dataset risparmi.txt relativo ai dati economici di 50 paesi. dpi è il reddito disponibile pro-capite in dollari USA, ddpi è il tasso percentuale di variazione del reddito disponibile pro capite, RS è il risparmio personale aggregato diviso per reddito disponibile. pop15 è la percentuale di popolazione sotto i 15 anni pop75 è la percentuale di popolazione oltre i 75 anni. risparmi <- read.table("risparmi.txt", header=T) str(risparmi) 'data.frame': 50 obs. of 6 variables: $ Nazione: Factor w/ 50 levels "Australia","Austria",..: $ sr : num $ pop15 : num $ pop75 : num $ dpi : num $ ddpi : num
14
Innanzitutto consideriamo un modello con tutti i predittori: g <- lm(sr ~ pop15 + pop75 + dpi + ddpi) summary(g) Call: lm(formula = sr ~ pop15 + pop75 + dpi + ddpi) Residuals:14 Min 1Q Median 3Q Max Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) *** pop ** pop dpi ddpi * --- Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: on 45 degrees of freedom Multiple R-squared: , Adjusted R-squared: F-statistic: on 4 and 45 DF, p-value:
15
Notiamo che alcuni regressori risultano poco significativi, in particolare dpi. Potremmo stimare un secondo moello escludendo questa variabile dai regressori: g2 <- lm(sr ~ pop15 + pop75 + ddpi) summary(g2) Call: lm(formula = sr ~ pop15 + pop75 + ddpi) Residuals: Min 1Q Median 3Q Max Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) *** pop ** pop ddpi * --- Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: on 46 degrees of freedom Multiple R-squared: , Adjusted R-squared: F-statistic: on 3 and 46 DF, p-value:
16
g3 <- lm(sr ~ pop15 + ddpi) summary(g3) Call:
Potrei eliminare anche il regressore pop75, che non risulta significativo g3 <- lm(sr ~ pop15 + ddpi) summary(g3) Call: lm(formula = sr ~ pop15 + ddpi) Residuals: Min Q Median Q Max Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) e-08 *** pop *** ddpi * --- Signif. codes: 0 ‘***’ ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: on 47 degrees of freedom Multiple R-squared: , Adjusted R-squared: F-statistic: on 2 and 47 DF, p-value: Per la scelta del modello si può far ricorso all’AIC AIC(g) AIC(g2) AIC(g3) [1] [1] [1]
17
Il comando steo consente di effettuare un’analisi di regressione stepwise, basata sul criterio AIC.
Nell’argomento direction si può indicare se usare una procedura: Backward Forward Oppure entrambe (both) gstep <- step(g, direction="backward") Start: AIC=138.3 sr ~ pop15 + pop75 + dpi + ddpi Df Sum of Sq RSS AIC - dpi <none> - pop - ddpi - pop Step: AIC=136.45 sr ~ pop15 + pop75 + ddpi <none> - pop - ddpi - pop
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.