Regressione logaritmica in r (passo dopo passo)


La regressione logaritmica è un tipo di regressione utilizzato per modellare situazioni in cui la crescita o il declino accelerano rapidamente all’inizio e poi rallentano nel tempo.

Ad esempio, il grafico seguente mostra un esempio di decadimento logaritmico:

Per questo tipo di situazione, la relazione tra una variabile predittrice e una variabile di risposta potrebbe essere ben modellata utilizzando la regressione logaritmica.

L’equazione per un modello di regressione logaritmica assume la forma seguente:

y = a + b*ln(x)

Oro:

  • y: la variabile di risposta
  • x: la variabile predittiva
  • a, b: i coefficienti di regressione che descrivono la relazione tra x e y

Il seguente esempio passo passo mostra come eseguire la regressione logaritmica in R.

Passaggio 1: creare i dati

Innanzitutto, creiamo dati falsi per due variabili: x e y :

 x=1:15

y=c(59, 50, 44, 38, 33, 28, 23, 20, 17, 15, 13, 12, 11, 10, 9.5)

Passaggio 2: visualizzare i dati

Successivamente, creiamo un rapido grafico a dispersione per visualizzare la relazione tra x e y :

 plot(x, y) 

Dal grafico possiamo vedere che esiste un chiaro modello di decadimento logaritmico tra le due variabili. Il valore della variabile di risposta, y , inizialmente diminuisce rapidamente, quindi rallenta nel tempo.

Sembra quindi saggio adattare un’equazione di regressione logaritmica per descrivere la relazione tra le variabili.

Passaggio 3: adattare il modello di regressione logaritmica

Successivamente utilizzeremo la funzione lm() per adattare un modello di regressione logaritmica, utilizzando il logaritmo naturale di x come variabile predittrice e y come variabile di risposta.

 #fit the model
model <- lm(y ~ log (x))

#view the output of the model
summary(model)

Call:
lm(formula = y ~ log(x))

Residuals:
   Min 1Q Median 3Q Max 
-4.069 -1.313 -0.260 1.127 3.122 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) 63.0686 1.4090 44.76 1.25e-15 ***
log(x) -20.1987 0.7019 -28.78 3.70e-13 ***
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.054 on 13 degrees of freedom
Multiple R-squared: 0.9845, Adjusted R-squared: 0.9834 
F-statistic: 828.2 on 1 and 13 DF, p-value: 3.702e-13

Il valore F complessivo del modello è 828,2 e il valore p corrispondente è estremamente basso (3,702e-13), indicando che il modello nel suo insieme è utile.

Utilizzando i coefficienti della tabella di output, possiamo vedere che l’equazione di regressione logaritmica adattata è:

y = 63,0686 – 20,1987 * ln(x)

Possiamo utilizzare questa equazione per prevedere la variabile di risposta, y , in base al valore della variabile predittrice, x . Ad esempio, se x = 12, allora prevediamo che y sarebbe 12,87 :

y = 63,0686 – 20,1987 * ln(12) = 12,87

Bonus: sentiti libero di utilizzare questo calcolatore di regressione logaritmica online per calcolare automaticamente l’equazione di regressione logaritmica per un determinato predittore e variabile di risposta.

Passaggio 4: Visualizza il modello di regressione logaritmica

Infine, possiamo creare un rapido grafico per visualizzare quanto bene il modello di regressione logaritmica si adatta ai dati:

 #plot x vs. y
plot(x, y)

#define x-values to use for regression line
x=seq(from= 1 , to= 15 , length. out = 1000 )

#use the model to predict the y-values based on the x-values
y=predict(model,newdata=list(x=seq(from= 1 ,to= 15 ,length. out = 1000 )),
          interval=" confidence ")

#add the fitted regression line to the plot (lwd specifies the width of the line)
matlines(x,y, lwd= 2 )

Regressione logaritmica in R

Possiamo vedere che il modello di regressione logaritmica fa un buon lavoro nell’adattare questo particolare set di dati.

Risorse addizionali

Come eseguire una regressione lineare semplice in R
Come eseguire la regressione lineare multipla in R
Come eseguire la regressione quadratica in R
Come eseguire la regressione esponenziale in R
Come eseguire la regressione polinomiale in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *