私は政治ネットワークのネットワークモデルに取り組んでいます。私がやっていることの一つは、刑罰を受けた推論です。私はglmnetのペナルティファクタを設定することで、適応型のラッソのアプローチを使用しています。私のモデルにはさまざまなパラメータがあります:alphas
とphis
です。 alphas
は修正された効果ですので、phis
がペナルティされている間にそれらをモデルに残しておきたいと思います。罰則回帰のGLMNetコンバージェンスの問題
ペナルティ係数glmnet()
によって設定された適応重みを計算するために、glm()
のMLE推定プロセスからの開始係数があります。
これはコードです:いくつかのネットワークで
# Generate Generalized Linear Model
GenLinMod = glm(y ~ X, family = "poisson")
# Set coefficients
coefficients = coef(GenLinMod)
# Set penalty
penalty = 1/(coefficients[-1])^2
# Protect alphas
penalty[1:(n-1)] = 0
# Generate Generalized Linear Model with adaptive lasso procedure
GenLinModNet = glmnet(XS, y, family = "poisson", penalty.factor = penalty, standardize = FALSE)
このコードがうまく実行される、しかし、私はこれらのエラーを取得しているため、特定のネットワークがあります。
Error: Matrices must have same number of columns in rbind2(.Call(dense_to_Csparse, x), y)
In addition: Warning messages:
1: from glmnet Fortran code (error code -1); Convergence for 1th lambda value not reached after maxit=100000 iterations; solutions for larger lambdas returned
2: In getcoef(fit, nvars, nx, vnames) :
an empty model has been returned; probably a convergence issue
を奇妙なことは、彼らということですすべて同じコードを使用しているので、データの問題かどうか疑問に思っています。 追加情報:1の場合
+私は500 alphas
と21 phis
の上に持っており、これらのエラーが表示され、動作していない別のケースでは、私は200 alphas
と28 phis
を持っています。しかし、一方で私は600以上のケースを持っていますalphas
と28 phis
とそれはうまく収束します。
+ lambda.min.ratio
とnlambda
の設定を無効にしました。
その他の質問:罰金の最初の入力は傍受と関連していますか?または、それはglmnet()
によって自動的に追加されますか?私はglmnet
ビネットでこれについての明確さを見いだせなかった。私の思考は、ペナルティが内部的にnvars
の合計にリサイズされていると言われているため、インターセプトの言葉を含めてはいけないということです。