1

RでのRロジスティック回帰では、近似値と観測値を比較する分割表を作成しようとしています(つまり、0または1の実際の値と0または1の近似値)。ただし、私のデータでは、さまざまな変数のさまざまな行に欠測値があるため、近似値ベクトルの長さは元のデータセットよりも短くなっています。次に例を示します。

test <- data.frame(male=c(1,0,1,0,0,1,1,0,1,0,0,1), 
                 height=c(58,100,NA,19,20,69,58,24,46,19,97,69))

model <- glm(male~height, family=binomial("logit"),data=test)

check_model <- table(test$male,fitted.values(model)>0.5)

table(test $ male、fitted.values(model)> 0.5)のエラー:すべての引数は同じ長さでなければなりません

モデルにない行にのみ実際の値(test $ male)を入力する方法を知っている人fitted.valueはいNULLますか?

4

2 に答える 2

2

を見ると、 (デフォルトで)をオブジェクトのコンポーネントとして?glm返すことがわかりますmodel.frameglm

これには、モデルの適合に使用されるデータが含まれています

したがって、使用できます

table(model.frame(model)$male, fitted(model) > 0.5)

また

table(model$model$male, fitted(model) > 0.5)

必要な結果を返すには

##      FALSE TRUE
##   0     4    2
##   1     3    2
于 2012-07-18T01:14:22.827 に答える
1
> table(test$male[complete.cases(test)], fitted(model)>0.5)

    FALSE TRUE
  0     4    2
  1     3    2
于 2012-07-18T02:34:29.410 に答える