Pubblicato il Lascia un commento

Dipanando Spline di Regressione con R

Quando si parla di regressione, le prime cose che vengono in mente sono lineari o di regressione logistica e da qualche parte nel lontano posteriore della mente di regressione polinomiale. La regressione lineare e logistica sono 2 dei tipi più popolari di metodi di regressione. Tuttavia, ci sono molti diversi tipi di metodi di regressione che possono rivelarsi utili in diversi scenari. Oggi esamineremo la regressione spline usando le funzioni Step.

La regressione spline è una tecnica di regressione non parametrica. Questa tecnica di regressione divide i set di dati in contenitori a intervalli o punti chiamati nodi e ogni contenitore ha il suo adattamento separato. Diamo un’occhiata a una semplice implementazione della regressione Spline utilizzando la funzione step in R.

Visualizzazione del set di dati:

Quantity Vs Sales Data
library(plotly)plot_ly(data,x=~Quantity,
y=~Sales,
type="scatter"
)

Quantity Vs Sales Plot

Let’s fit a linear regression on and see how it works:

fit <- lm(Sales ~ Quantity, data=data)
summary(fit)

plot_ly(data,x=~Quantity,
y=~Sales,
type="scatter") %>% add_lines(x = ~Quantity, y = fitted(fit))

The equation here takes the form of:

In this case:

Possiamo vedere che la regressione lineare produce una terribile forma in questo caso, come si vede dal grafico di cui sopra e il valore di R al quadrato.

Introduciamo ora un termine polinomiale (quadratico qui) all’equazione e analizziamo le prestazioni del modello.

fit2 <- lm(Sales ~ poly(Quantity,2) + Quantity, data=data)
summary(fit2)

plot_ly(data,x=~Quantity,
y=~Sales,
type="scatter") %>% add_lines(x = ~Quantity, y = fitted(fit2))

The equation here takes the form of:

In this case:

Possiamo vedere che non è un male in forma, ma non è un grande uno. L’apice previsto è un po ‘ lontano dall’apice effettivo. La regressione polinomiale presenta anche vari svantaggi che tende a sovrapporsi. Può portare ad un aumento della complessità all’aumentare del numero di funzionalità.

Gli svantaggi della regressione polinomiale e dell’incompetenza del modello lineare possono essere superati usando la regressione spline.

Visualizziamo il set di dati dividendolo in due bin. Uno sul lato sinistro del picco che si verifica a Quantità = 89 e l’altro sul suo lato destro, come mostrato nelle due immagini sottostanti, rispettivamente.

Now let’s combine the above two images into one equation and perform piecewise regression or spline regression using step function.

The equation would take the form of:

In this case:

Xbar here is called the Knot value.

data$Xbar <- ifelse(data$Quantity>89,1,0)
data$diff <- data$Quantity - 89
data$X <- data$diff*data$Xbar
data

After performing the above manipulation the data would look like this:

Let us now fit the equation we saw above:

The X in the equation below is (x-xbar)*Xk

reg <- lm(Sales ~ Quantity + X, data = data)
plot_ly(data,x=~Quantity,
y=~Sales,
type="scatter") %>% add_lines(x = ~Quantity, y = fitted(reg))

summary(reg)

As we can see from the plot and the R-squared values above, spline regression produces a much better result, in this scenario.

Above results can also be obtained using Segmented package in R:

Note: If you are not providing the breakpoint value (Quantity = 89, here), then use “psi = NA”

summary(fit_seg)

Both methods produce the same result.

Questo era un semplice esempio di regressione spline. Le spline possono essere montati utilizzando polinomi funzioni, chiamato Polinomio Spline, così, invece di montare un alto grado polinomiale per l’intera gamma di X, spline o regressione polinomiale a tratti con polinomi di grado inferiore può essere in forma in sperate regioni di X.

SCEGLIERE la POSIZIONE E IL NUMERO DI NODI

Spline può essere modellato con l’aggiunta di più il numero di nodi aumentando così la flessibilità del modello. In generale, il posizionamento di nodi K porta al montaggio di funzioni K + 1. La scelta di posizionare un nodo può dipendere da vari fattori. Poiché la regressione è altamente flessibile nelle aree in cui sono posizionati più nodi, è intuitivo posizionare nodi dove c’è più variazione nei dati o dove la funzione cambia più rapidamente. Le regioni che sembrano relativamente stabili non hanno bisogno di troppi nodi e possono utilizzarne meno.

CONCLUSIONE:

Abbiamo imparato a conoscere la regressione spline utilizzando la funzione step in questo articolo. Ci sono altri tipi di funzioni polinomiali che possono essere applicate anche. Uno di quelli comuni è la spline cubica che utilizza la funzione polinomiale del terzo ordine. Un altro metodo per implementare le spline è lo Smoothing Spline. Le spline spesso forniscono risultati migliori rispetto alla regressione polinomiale. Nelle spline, la flessibilità può essere aumentata aumentando il numero di nodi e senza aumentare il grado del polinomio. Producono anche risultati più stabili rispetto alla regressione polinomiale, in generale.

Spero che questo articolo sia stato utile per afferrare l’idea di Spline e Regressione a tratti e iniziare con esso.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.