我試圖在R中使用the spline2 package來構建單調樣條。R中的單調樣條
我在評估自變量新值的模型時遇到了麻煩。一般來說,我很難掌握R預測的「預測」處理及其與spline2的關係,以及如何使用生成的bs對象。
我試圖關注使用spline1的this example。我的數據是在一個名爲BRIyII數據幀,具有獨立的變量t和相關的變量P這樣:
plot(BRIyII$t,BRIyII$P)
所以我做的:
knots=c(9)
myMat=mSpline(BRIyII$t, knots = knots, degree = 3, intercept = TRUE)
mylm=lm(BRIyII$P~myMat)
現在,如果我們:
pr = predict(mylm,data.frame(BRIyII$t))
points(BRIyII$t,pr,col = "red")
所以我的問題是:
1由於最右邊的預測值(紅點)是一個比它的左下方,我誤解m個樣條線的「單調」的性質?
2-我怎樣才能評估樣品中除BRIyII $ t中定義的值以外的值?我嘗試了幾種東西的組合,但我缺乏R語法知識。我會理想地想要做這樣的事情:
newdata=seq.int(0,41.5,0.1)
我不知道的單調性問題。事實上,當我用'mSpline'和另一個'bs'(使用內置的'mtcars'數據框)進行迴歸時,我得到的係數完全相同。關於預測:首先,你可以像這樣在一行中進行迴歸:'mylm = lm(P_mSpline(t,knots = knots,degree = 3,intercept = TRUE),data = BRIyII)''。 – eipi10
其次,爲了預測你用來擬合模型的數據,你可以做'預測(mylm)',它會自動使用用來擬合模型的數據幀。爲了預測預測變量的其他值,需要用新值對數據幀進行預測(並且新數據幀中的列名必須與用於擬合模型的數據幀中的列名相匹配)。例如,預測(mylm,newdata = data.frame(t = seq(0,41.5,0.1)))'。 – eipi10
感謝至少解決了「易」的部分! :) – cladelpino