5.3 Come calcolare le previsioni per un modello di regressione lineare
Uno dei motivi della popolarità del modello di regressione lineare consiste nella possibilità di calcolare previsioni in relazione a scenari che non sono stati necessariamente osservati nel campione. Nel corso abbiamo visto che esistono due tipi di previsioni, quella per il valor medio della variabile dipendente e quella per il valore individuale, le quali differiscono per il diverso standard error, nel secondo caso maggiore che nel primo.
R permette di calcolare le previsioni per un modello di regressione lineare attraverso la funzione predict()
, la quale richiede vengano specificati i seguenti argomenti:
object
, ovvero l’oggetto restituito dalla funzionelm()
contenente i risultati della stimanewdata
, che indica un nuovo data frame contenente i valori delle variabili indipendenti da utilizzare per il calcolo delle previsioniinterval
, che può assumere solo tre possibili valori, ovveroconfidence
se si desidera calcolare gli intervalli di confidenza per la previsione del valore medio,prediction
se si desidera calcolare gli intervalli di previsione per i valori individuali,none
se non si vuole calcolare nessun intervallolevel
, il quale consente di specificare il livello di confidenza per il calcolo degli intervalli di confidenza o previsione
Bisogna porre particolare attenzione nell’uso della funzione predict()
, soprattutto nello specificare correttamente il data frame newdata
. Questo data frame può contenere un numero arbitrario di righe, ognuna delle quali si riferisce ad uno scenario (ovvero ad una combinazione di valori delle variabili indipendenti) in cui si intende calcolare la previsione, ma deve contenere lo stesso numero di colonne inserite nel modello. Le colonne di newdata
devono essere obbligatoriamente denominate con gli stessi nomi delle variabili nel modello stimato. In caso contrario, R non riuscirà ad associare le variabili inserite nel modello con quelle incluse nel data frame newdata
. Supponiamo per esempio che, con riferimento al modello multiplo comp_m2
, ci interessi calcolare le previsioni e i relativi intervalli di previsione al 95% per i seguenti due scenari44:
> data_for_predict <- data.frame(ownprice = c(1.60, 1.80),
+ comp1price = c(1.65, 1.90),
+ comp2price = c(1.50, 1.75))
> data_for_predict
ownprice comp1price comp2price
1 1.6 1.65 1.50
2 1.8 1.90 1.75
Il data frame data_for_predict
contiene quindi due righe, una per ciascun scenario, e tre colonne i cui nomi corrispondono a quelli del data frame contenente il campione (ovvero comp
). Ora usiamo la funzione predict()
per calcolare le previsioni:
> predict(object = comp_m2, newdata = data_for_predict,
+ interval = "prediction", level = 0.95)
fit lwr upr
1 0.03019 0.01020 0.05018
2 0.03298 0.01296 0.05301
L’output restituito da predict()
consiste in una matrice con due righe corrispondenti ai due scenari considerati e tre colonne contenenti rispettivamente le previsioni (fit
) e i limiti degli intervalli di previsione (lwr
e upr
).
Il segno
+
che vedete all’inizio della seconda e terza riga di codice viene aggiunto da R e indica semplicemente che il codice nella prima linea prosegue nelle righe successive, ma non dovete scriverlo quando provate a riprodurre il codice.↩