我正在嘗試使用線性迴歸來找出3個模型的最佳權重以預測結果。所以有3個變量(x1, x2, x3)
是因變量的預測,y
。我的問題是,我該如何運行帶有約束迴歸的係數的總和相加爲1。例如:R在迴歸中的正則化係數
這是件好事:
y = .2(x1) + .4(x2) + .4(x3)
因爲.2 + .4 + .4 = 1
這是沒有好:
y = 1.2(x1) + .4(x2) + .3(x3)
因爲1.2 + .4 + .3 > 1
如果可能,我期待在R中這樣做。謝謝。讓我知道是否需要移動到統計區域('交叉驗證')。
編輯:
的問題是每一行分類爲1個或0,y是實際值(0或1)從訓練集中,X 1是從KNN模型的預測值,X 2是從一個randomForest,x3來自gbm模型。我試圖讓每個模型的最佳權重,因此每個係數< = 1,係數==總和1. 會是這個樣子:
y/Actual value knnPred RfPred gbmPred
0 .1111 .0546 .03325
1 .7778 .6245 .60985
0 .3354 .1293 .33255
0 .2235 .9987 .10393
1 .9888 .6753 .88933
... ... ... ...
成功的措施是AUC 。所以我想設定的係數最大化AUC,同時確保他們和爲1
嘗試:http://stats.stackexchange.com/q/3143/229 – James
這裏是你做什麼:構建一個小例子,列出你所使用的包和代碼來創建你所看到的輸出然後有人會提供建議。 –
'mgcv'軟件包提供了一個函數'pcls()'(懲罰約束最小二乘擬合),該函數允許爲參數指定線性相等_和_不等式約束。您需要將模型設置在略低於'lm()',但它購買的電力可能會帶來額外的麻煩。 –