Vai al contenuto principale

GLM in R: Modello lineare generalizzato

Scopri i modelli lineari generalizzati (GLM) e in cosa differiscono dai modelli lineari.
· 2 min leggi

Scopri con l'IA

Il modello lineare generalizzato (GLM) è una generalizzazione della regressione lineare classica che consente variabili di risposta con modelli di errore diversi dalla distribuzione normale, come la distribuzione gaussiana.

Basi dei GLM

I GLM si adattano con la funzione glm(). Come i modelli lineari (lm()), i glm() hanno formule e dati come input, ma includono anche un parametro family.

Sintassi del modello lineare generalizzato

Sintassi del modello lineare generalizzato

La famiglia Gaussian è il modo in cui R si riferisce alla distribuzione normale ed è l’impostazione predefinita per glm().

Somiglianza con i modelli lineari

Se la famiglia è Gaussian, allora un GLM è uguale a un LM.

Somiglianza con i modelli lineari

Errori o distribuzioni non normali

I modelli lineari generalizzati possono avere errori o distribuzioni non normali. Tuttavia, ci sono limitazioni alle distribuzioni possibili. Ad esempio, puoi usare la famiglia Poisson per i dati di conteggio, oppure la famiglia binomiale per i dati binomiali.

I GLM hanno anche funzioni di link non lineari, che collegano i coefficienti di regressione alla distribuzione e consentono di generalizzare il modello lineare.

Esempio interattivo di previsione con glm()

Questo esempio prevede il numero atteso di vittime civili ferite da incendi al giorno per i mesi estivi nordamericani di giugno, luglio e agosto utilizzando la regressione di Poisson e il dataset newDat.

Ecco i dati nel dataset newDat:

  Month   
1     6
2     7
3     8 

Le stime della pendenza e dell’intercetta di Poisson sono sulla scala del logaritmo naturale e possono essere esponenziate per essere più facili da interpretare. Puoi farlo specificando type = "response" con la funzione predict.

# use the model to predict with new data
predOut <- predict(object = poissonOut, newdata = newDat, type = "response")

# print the predictions
print(predOut)

Eseguendo il codice sopra si ottiene il seguente risultato:

         1          2          3
0.08611111 0.12365591 0.07795699 

Provalo tu stesso.

Per saperne di più sui modelli lineari generalizzati in R, guarda questo video del nostro corso Generalized Linear Models in R.

Questo contenuto è tratto dal corso di DataCamp Generalized Linear Models in R di Richard Erickson.

Dai un’occhiata anche al nostro Tutorial sulla regressione logistica in R.

Argomenti

Correlato