非線性模型之二:分步函數

在多項式迴歸模型中,我們把整個線性模型改成了非線性模型。但是有的時候, 自變量X和因變量Y之間總的來說是線性關係,只是在局部出現了非線性關係。

比方說你開車從城市A到城市B,總的來說一路上能保持每小時100公里的速度。但出城和進城的時候可能有點堵車,走走停停,造成了一些非線性的關係。這時候,我們就可以使用分步函數(Step function)。

我們可以把X分成若干段,在每一段中擬合線性模型。這時候,我們把連續型變量,變成了類別型變量。

我們來講點理論。我們在c1,c2,…,cK這K個點上X分成K+1段,那麼我們就獲得了

K+1個新的變量,即:

K+1個新的變量,即:

其中,I()叫做指示函數(Indicator function)。如果括號內的條件成立I的值為1,否則I的值就是0。這就是啞變量(Dummy variable)。我們還可以發現,對於X的任意值,都存在以下關係:

也就是說X的值只能在K+1段的某一段上,而不可能在兩段或者更多段上。

注意,接下來是重點!我們可以用最小二乘法擬合以下模型:

(1)

對於任意值X,C1,C2,…, Ck之中,最多只有一個不是0。不過,當X<c1時,(1)式中所有的beta都是0。那麼我們可以把beta0理解為當X<c1時Y的平均值。

同樣,當X介於(c1,c2)之間時,Y的預測值就是beta0+beta1。所以,我們可以認為beta1是X從小於c1到介於(c1,c2)之間時Y預測值的增量。

最後,還要這個方法的問題。不知道大家發現了沒有,這個方法並沒有告訴我們在哪裡劃分c1,c2,…ck。這其實也是分步函數的最大問題。

不過有的時候,這也不是問題。比方說對年齡分段,我們很容易就會想到按照5年或者10年來劃分。事實上,在生物統計和流行病學中,總是按照5年劃分一個階段。

可見,之所以有這麼多的機器學習模型,並不是大家閒來無事,非要編個模型出來。事實上,模型源於生活,而高於生活!

相關文章

如何跳出線性模型的能力圈?

如何跳出線性模型的能力圈?

一般在資料分析的時候,我們總是喜歡用到線性模型。這倒不是說線性模型有多好,而是因為它簡單。 舉個例子,兩個城市相距300公里,如果開車速度為...