Publikováno Napsat komentář

Rozpad Spline Regrese v R

Když mluvíme o regresi, první věci, které přicházejí do naší mysli, jsou lineární nebo logistická regrese a někde v daleké zadní části mysli polynomiální regrese. Lineární a logistická regrese jsou 2 z nejpopulárnějších typů regresních metod. Existuje však mnoho různých typů regresních metod, které se mohou ukázat jako užitečné v různých scénářích. Dnes se podíváme na spline regresi pomocí krokových funkcí.

Spline regrese je neparametrická regresní technika. Tato regresní technika rozděluje datové sady do zásobníků v intervalech nebo bodech nazývaných uzly a každý zásobník má své samostatné uložení. Podívejme se na jednu jednoduchou implementaci Spline regrese pomocí krokové funkce v r.

vizualizace datové sady:

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:

můžeme vidět, že lineární regrese vytváří hrozné fit v tomto případě, jak je vidět z pozemku výše a hodnota spolehlivosti R.

nyní zavedeme do rovnice polynomiální termín (zde kvadratický) a analyzujeme výkon modelu.

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:

můžeme vidět, že to není špatné fit, ale ne velký. Předpokládaný vrchol je poněkud daleko od skutečného vrcholu. Polynomiální regrese také přichází s různými nevýhodami, které má sklon k overfitu. To může vést ke zvýšení složitosti, jak se zvyšuje počet funkcí.

nevýhody polynomiální regrese a nekompetence lineárního modelu lze překonat pomocí Spline regrese.

vizualizujme dataset rozdělením do dvou košů. Jeden na levé straně vrcholu, který se vyskytuje při množství = 89, a druhý na jeho pravé straně, jak je znázorněno na dvou obrázcích níže.

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.

to byl jeden jednoduchý příklad spline regrese. Splajny lze namontovat pomocí polynomů funkce, stejně, nazývá Polynom, Spline, takže místo toho, aby montáž high-stupeň polynomu pro celou řadu X, spline nebo po částech polynomiální regrese s nižší stupeň polynomů může být fit v sperate regionů z X.

VOLBA UMÍSTĚNÍ A POČET UZLŮ,

Splines lze modelovat přidáním větší počet uzlů, čímž se zvyšuje pružnost modelu. Obecně platí, že umístění uzlů K vede k montáži funkcí k + 1. Volba umístění uzlu může záviset na různých faktorech. Protože regrese je velmi flexibilní v oblastech, kde je umístěno více uzlů, je intuitivní umístit uzly tam, kde je více variací v datech nebo kde se funkce mění rychleji. Regiony, které se zdají být poměrně stabilní, nemusí mít příliš mnoho uzlů a mohou jich používat méně.

závěr:

v tomto článku jsme se dozvěděli o spline regresi pomocí krokové funkce. Existují i jiné druhy polynomiálních funkcí, které lze použít také. Jedním z běžných je krychlový spline, který používá polynomiální funkci třetího řádu. Dalším způsobem implementace drážek je vyhlazování drážek. Splines často poskytují lepší výsledky ve srovnání s polynomiální regresí. V drážkách může být flexibilita zvýšena zvýšením počtu uzlů a bez zvýšení stupně polynomu. Produkují také stabilnější výsledky ve srovnání s polynomiální regresí, obecně.

doufám, že tento článek byl užitečný v popadl nápad Spline a po Částech Regrese a začínáme s ním.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.