簡體   English   中英

R中脊回歸的預測

[英]Predictions of ridge regression in R

我一直堅持這個,希望有人能幫助我! 我有一個包含54列的數據集,我想在使用嶺回歸的測試集上進行預測。

nn <-nrow(longley)
index <- 1:nrow(longley)
testindex <- sample(index, trunc(length(index)/3))
testset <- longley[testindex,]
trainset <-longley[-testindex,]
trainset1 <- trainset[,-7]

# Fit the ridge regression model:

mod <- lm.ridge(y ~., data = trainset, lambda = 0.661)

# Predict and evaluate it by using MAE function:

mae <- function(model) {
  y = trainset$Employed  
  y.pred <- predict(model, trainset)
  return(mean(abs(y-y.pred)))
}

當我這樣做時,我收到以下錯誤消息:

Error in UseMethod("predict") : 
  no applicable method for 'predict' applied to an object of class "ridgelm"

什么可能是使用嶺回歸進行預測的另一種方法(也有評估指標,如rsquared和MAE)?

確實沒有ridgelm物體的predict方法:你必須用手去做。 順便說summary ,你看不到任何summary

> methods(class = 'ridgelm')
[1] coef   plot   print  select

這是線性模型,因此擬合只是一個基本計算的問題:

y.pred <- as.matrix(cbind(const=1,trainset)) %*% coef(model)

我們需要將常數1加到與線性模式的常系數相關聯。

重要提示:使用嶺回歸,通常可以縮放解釋變量,從而減少均值。 最佳實踐應該是從訓練中學習縮放定義,然后使用訓練集方法來中心來自新數據的變量。 您可能對這個相關的交叉驗證帖子感興趣:

https://stats.stackexchange.com/questions/152203/how-to-calculate-predicted-values-using-an-lm-ridge-object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM