Posted on Leave a comment

Kibontakozása Spline Regresszió R

Amikor arról beszélünk, regresszió, az első dolog, ami eszünkbe, lineáris vagy logisztikai regressziós pedig valahol a távoli vissza az elme polinom regresszió. A lineáris és logisztikai regresszió a regressziós módszerek 2 legnépszerűbb típusa. Számos különböző típusú regressziós módszer létezik, amelyek különböző forgatókönyvekben hasznosnak bizonyulhatnak. Ma a Spline regressziót vizsgáljuk Lépésfüggvények segítségével.

a Spline regresszió nem paraméteres regressziós technika. Ez a regressziós technika osztja az adatkészleteket tartályokra időközönként vagy csomóknak nevezett pontokban, és minden tárolónak külön illeszkedése van. Nézzük meg a Spline regresszió egy egyszerű megvalósítását a step függvény használatával R.

az adatkészlet megjelenítése:

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:

láthatjuk, hogy a lineáris regresszió termel egy rettenetes választás ebben az esetben, amint látható a telek fenti R-négyzet érték.

most vezessünk be egy polinom kifejezést (itt másodfokú) az egyenletbe, és elemezzük a modell teljesítményét.

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:

láthatjuk, hogy ez nem rossz illeszkedés, de nem is nagyszerű. Az előrejelzett csúcs kissé messze van a tényleges csúcstól. A polinomiális regresszió különféle hátrányokkal is jár, amelyek hajlamosak a túlfit. Ez a komplexitás növekedéséhez vezethet, mivel a funkciók száma növekszik.

a polinom regresszió és a lineáris modell inkompetenciájának hátrányait Spline regresszióval lehet kiküszöbölni.

vizualizáljuk az adatkészletet úgy, hogy két tárolóra osztjuk. Az egyik a csúcs bal oldalán, amely = 89 mennyiségben fordul elő, a másik pedig a jobb oldalán, amint az az alábbi két képen látható.

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.

Ez a spline regresszió egyik egyszerű példája volt. A spline-ok polinomfüggvények használatával is felszerelhetők, úgynevezett polinomiális spline-ok, így ahelyett, hogy egy nagyfokú polinomot illesztenének a teljes tartományba X, spline-ok vagy darabonkénti polinom regresszió alacsonyabb fokú polinomokkal illeszkedhetnek x sperate régióiba.

a csomópontok helyének és számának kiválasztása

spline-ok modellezhetők több csomó hozzáadásával, ezáltal növelve a modell rugalmasságát. Általában a K csomók elhelyezése a K + 1 funkciók illesztéséhez vezet. A csomó elhelyezésének megválasztása különböző tényezőktől függhet. Mivel a regresszió nagyon rugalmas azokon a területeken, ahol több csomó van elhelyezve, intuitív a csomók elhelyezése ott, ahol nagyobb az eltérés az adatokban, vagy ahol a funkció gyorsabban változik. A viszonylag stabilnak tűnő régióknak nem kell túl sok csomóval rendelkezniük, és kevesebbet tudnak használni.

következtetés:

ebben a cikkben megtudtuk a Spline regressziót a step funkció használatával. Vannak más típusú polinomfüggvények is, amelyek alkalmazhatók. Az egyik leggyakoribb az köbös spline amely a harmadik rend polinomfüggvényét használja. A spline-ek megvalósításának egy másik módja a spline-ek simítása. A spline-ek gyakran jobb eredményeket nyújtanak a polinom regresszióhoz képest. A spline-ekben a rugalmasság növelhető a csomók számának növelésével és a polinom fokának növelése nélkül. Stabilabb eredményeket is produkálnak, mint általában a polinom regresszió.

remélem, hogy ez a cikk hasznos volt a Spline és a Piecewise regresszió ötletének megragadásában és a kezdéshez.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.