[解決済み】GLM解析での警告
2022-02-01 08:41:45
質問
正規化・変換したデータセットを用いてGLM分析を行ったところ、以下のような警告メッセージが表示されました。
<ブロッククオートglm.fit: フィットした確率の数値が0か1が発生した glm.fit: アルゴリズムが収束しなかった glm.fit: 数値的に0または1が発生した確率をあてはめる
次に、シミュレーションのデータフレームを作成し、実際のデータセットに対して行ったのと同じ方法で実行したところ、警告は出ませんでした。 以下は、私のコードとシミュレーションデータセットです。 何かお手伝いいただけると幸いです。 ありがとうございました。
library(tidyverse)
library(broom)
data <- data.frame(B = c("m","m","m","m","m", "m", "f","f","f","f","f"),
G= c("s","s","s","u","u", "u", "k","k","k","r","r"),
g1 = c(35, 2, 3, 4, 5, 6, 7, 10, 12, 41, 76),
g2 = c(20, 2, 7, 2, 8, 5, 5, 3, 7, 2, 12),
g3 = c(5, 0, 4, 5, 2, 4, 8, 9, 20, 1, 11,
g4 = c(1,3,4,5,7,3,1,5,7,3,10),
g5= c(20,23, 27, 35, 12, 10, 17, 24, 21, 15, 16)))
data %>%
pivot_longer(-c(1:3)) %>%
group_split(name) %>%
set_names(nm = map(., ~ first(.x$name))) %>%
map(~ tidy(glm(factor(data$B) ~ value,family="binomial", data = .))) %>%
map(~ filter(., p.value > 0.05)) %>%
bind_rows(.id = "var")```
解決方法は?
完全分離または準完全分離の問題を抱えている可能性が高いです。予測変数のある組み合わせに対して、失敗のうち成功だけを観察しているのです。これは、小さな標本や大きなパラメータ空間を持つロジスティック回帰では非常に一般的な現象です。
全パラメータの推定値を得るために、尤度に小さなペナルティを加える実装がいくつかあります。Firth logistic regressionを調べてみてください。Rでは、これは
logistf()
関数から
logistf
パッケージを使用します。
交換
glm(factor(data$B) ~ value,family="binomial", data = .)
をコードに追加してください。
logistf(factor(data$B) ~ value, data = .)
をクリックすると、起動するはずです。(最初にパッケージをロードすることを忘れないでください)。
注意すべきは、分離すること自体は必ずしも問題ではないことです。パラメータ推定が必要な場合のみです。
を集計してみると、分離の問題を実際に確認することができます。
B
に対して
G
:
xtabs(~ B + G, data=data)
これは
G
B k r s u
f 9 6 0 0
m 0 0 9 9
ということが分かれば、例えば
G
の結果を知っていることになります。
B
.
関連
-
[解決済み】xtsオブジェクトでエラー: "antempt to set 'colnames' on the object with less than two dimension "を克服する方法
-
[解決済み】エラー:ベクターメモリの枯渇(制限に達したか) R 3.5.0 macOS
-
[解決済み】R - if文の引数の長さが0である。
-
[解決済み】プロット時に 'x' と 'y' の長さが異なる ERROR が発生する。
-
[解決済み】Rでの関数の最適化(L-BFGS-Bでは'fn'に有限の値が必要)。
-
[解決済み】Rでデータフレームのサブセットをプロットする方法は?
-
[解決済み】R4DSのエラー比較(1)は、アトミック型とリスト型でのみ可能です
-
[解決済み】Rでmax.printの制限値を増やす方法
-
[解決済み】forループを実行すると「要因のレベルセットが異なる」というエラーが発生する
-
[解決済み】'NULL'型の非(リストまたはベクトル)に適用されるis.na()は何を意味するのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 'height' はベクトルか行列でなければならない barplot のエラー
-
[解決済み] 変数の型(リスト)が無効です
-
[解決済み】reshape2 meltの警告メッセージ
-
[解決済み】 colMeans(x, na.rm = TRUE) のエラー : KNN分類では 'x' は数値でなければならない
-
[解決済み】データのマージ - fix.by(by.x, x)のエラー)
-
[解決済み】ggplotのエラー。関数型オブジェクトのスケールを自動的に選択する方法がわかりません。
-
[解決済み] ヒートマップ作成時のエラー - 外部関数呼び出しでNA/NaN/Inf (arg 11)
-
[解決済み】 if/while (条件) {: TRUE/FALSEが必要な場所に値がない場合のエラー
-
[解決済み】R4DSのエラー比較(1)は、アトミック型とリスト型でのみ可能です
-
[解決済み】'NULL'型の非(リストまたはベクトル)に適用されるis.na()は何を意味するのか?