為什么做分段函數(shù)
在線性回歸模型中,當X作為特征變量對因變量Y的影響趨勢非線性,用普通的線性回歸往往無法捕捉到。
一種方法是可以使用特征變量的多項式作為預(yù)測變量,可以得到在X取值的空間全局皆非線性的擬合函數(shù)。
但如果不希望得到全局的模型,希望每一段的變化斜率可以被表達出來,那么則可以使用分段函數(shù)。
如何做分段函數(shù)
這里,把X的取值范圍分成一些區(qū)間,對每個區(qū)間擬合一個函數(shù),相當于講一個連續(xù)變量轉(zhuǎn)換成多個有序的變量。
在X取值空間上創(chuàng)建分割點C1,C2,...,Ck,構(gòu)造k+1個新變量如下(在R的實現(xiàn))Rcode如下
x<-c(1:100)
y<-log(x)
#線性模型擬合
linear_fit<-lm(y~x)
#分段擬合:5、10、20、50作為分割點
stage_fit<-lm (y~??I(x<=5) + I((x<=5)*x)
? ?? ?? ?? ???+ I(x>5 & x<=10) + I((x>5 & x<=10)*x)
? ?? ?? ?? ???+ I(x>10 & x<=20) + I((x>10 & x<=20)*x)
? ?? ?? ?? ???+ I(x>20 & x<=50) + I((x>20 & x<=50)*x)
? ?? ?? ?? ???+ I(x>50) + I((x>50)*x))
summary(stage_fit)
qplot(x,y)+geom_line(aes(x, fitted.values(linear_fit)),colour=2)+geom_line(aes(x, fitted.values(stage_fit)),colour=3)
其中,
是示性函數(shù),條件成立返回1否則0。這樣的定義的變量有時候也可稱為啞變量。要帶上數(shù)值可以進一步調(diào)整運算
需要注意的是,如果想要分段擬合的效果好,必須考慮每段回歸的截距不同,所以在每段回歸需要加上相應(yīng)的示性函數(shù)








暫無數(shù)據(jù)