lars
R パッケージで自分のデータのモデルを推定するのに苦労しています。
たとえば、偽のデータセット x と対応する値 y を次のように作成します。
x = cbind(runif(100),rnorm(100))
colnames(x) = c("a","b")
y = 0.5 + 3 * x[,1,drop = FALSE]
次に、lars 関数を使用して、なげなわ正則化を使用するモデルをトレーニングします。
m = lars(x,y,type = "lasso", normalize = FALSE, intercept = TRUE)
今、私は推定モデルが何であるかを知りたいです ( that I know to be: y = 0.5 + 3 * x[,1] + 0 * x[,2]
)
最後のステップで得られた係数にのみ関心があります。
cf = predict(m, x, s=1, mode = "fraction", type = "coef")$coef
cf
a b
3 0
これらは私が期待する係数ですが、0.5
から切片 ( )を取得する方法が見つかりませんm
。
のコードをチェックしようとしましたpredict.lars
が、適合は次のように行われます。
fit = drop(scale(newx,
object$meanx, FALSE) %*% t(newbetas)) + object$mu)
変数がスケーリングされ、y
(object$mu) の平均が使用されていることがわかりますが、探している切片の値を取得する簡単な方法が見つかりません。どうすればそれを手に入れることができますか?