Publicado em Deixe um comentário

Desvendar Spline Regressão no R

Quando falamos de regressão, as primeiras coisas que vêm à nossa mente são lineares ou de regressão logística e em algum lugar distante de trás da mente de regressão polinomial. Regressão Linear e logística são dois dos tipos mais populares de métodos de regressão. No entanto, existem muitos tipos diferentes de métodos de regressão que podem revelar-se úteis em diferentes cenários. Hoje vamos estar olhando para a regressão de curvas usando funções Step.

regressão ao eixo é uma técnica de regressão não paramétrica. Esta técnica de regressão divide os conjuntos de dados em caixas em intervalos ou pontos chamados nós e cada caixa tem o seu ajuste separado. Vamos olhar para uma implementação simples da regressão de curvas usando a função step em R.

visualizando o conjunto de dados:

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:

podemos ver que a regressão linear produz um terrível ajuste, neste caso, como visto no gráfico acima, e o valor de R-quadrado.

vamos agora introduzir um termo polinomial (quadrático aqui) para a equação e analisar o desempenho do modelo.

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:

podemos ver que não é um ajuste ruim, mas não é um grande de um tanto. O ápice previsto está um pouco longe do ápice real. Regressão polinomial também vem com várias desvantagens que tende a overfit. Pode levar a um aumento da complexidade à medida que o número de recursos aumenta.

As desvantagens da regressão polinomial e a incompetência do modelo linear podem ser superadas usando a regressão de curvas.vamos visualizar o conjunto de dados dividindo-o em duas caixas. Um no lado esquerdo do pico que ocorre em quantidade = 89 e o outro no seu lado direito, como mostrado nas duas imagens abaixo, respectivamente.

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.

Este foi um exemplo simples de regressão à curva. Splines podem ser montadas usando polinˆ omios de funções, chamado de Polinômio de Estrias, de modo que, em vez de montar um alto grau do polinômio para todo o intervalo de X, splines ou piecewise regressão polinomial com grau mais baixo de polinˆ omios podem ser enquadrados em sperate regiões de X.

A ESCOLHA do LOCAL E do NÚMERO DE NÓS

Splines podem ser modelados pela adição de mais, o número de nós, aumentando a flexibilidade do modelo. Em geral, a colocação de nós K conduz à instalação de funções K + 1. A escolha de fazer um nó pode depender de vários fatores. Uma vez que a regressão é altamente flexível em áreas onde há mais nós colocados, é intuitivo colocar nós onde há mais variação nos dados ou onde a função muda mais rapidamente. As regiões que parecem relativamente estáveis não precisam de ter demasiados nós e podem utilizar menos.

conclusão:

aprendemos sobre a regressão de curvas usando a função step neste artigo. Existem outros tipos de funções polinomiais que podem ser aplicadas também. Um dos mais comuns é o eixo cúbico que usa função polinomial da terceira ordem. Outro método de implementação das linhas é a suavização das linhas. As curvas muitas vezes fornecem melhores resultados em comparação com a regressão polinomial. Em curvas, a flexibilidade pode ser aumentada aumentando o número de nós e sem aumentar o grau do polinômio. Eles também produzem resultados mais estáveis em comparação com regressão polinomial, em geral.

espero que este artigo tenha sido útil para agarrar a ideia de regressão em trechos e trechos e começar com ele.

Deixe uma resposta

O seu endereço de email não será publicado.