0

エフェクト パッケージを使用して、ロジスティック回帰モデルから予測される確率を示す確率グラフを作成しています。ただし、奇妙なエラー メッセージが表示され、何が問題なのかわかりません。

プロットを生成しようとすると、次のエラーが発生します。警告は問題ではありません。エラー メッセージが何を伝えているのか理解していないということです。

library(effects)    

dat$won_ping = as.factor(dat$won_ping)

mod2 = glm(won_ping ~ our_bid +
  age_of_oldest_driver2 + 
  credit_type2 + 
  coverage_type2 +
  home_owner2 +
  vehicle_driver_score + 
  currently_insured2 +
  zipcode2,
  data=dat, family=binomial(link="logit"))

> plot(effect("our_bid*vehicle_driver_score", mod2), rescale.axis=FALSE, multiline=TRUE)
Warning message:
In analyze.model(term, mod, xlevels, default.levels) :
  our_bid:vehicle_driver_score does not appear in the model
Error in plot(effect("our_bid*vehicle_driver_score", mod2), rescale.axis = FALSE,  : 
  error in evaluating the argument 'x' in selecting a method for function 'plot': Error in apply(mod.matrix[, components], 1, prod) : 
  subscript out of bounds

データと glm コマンドに関する情報は次のとおりです。

> str(dat)
'data.frame':   85240 obs. of  71 variables:
 $ our_bid                     : num  155 123 183 98 108 159 98 123 98 200 ...
 $ won_ping                    : Factor w/ 2 levels "0","1": 1 1 2 1 1 1 1 1 1 1 ...
 $ zipcode2                    : Factor w/ 4 levels "1:6999","10000:14849",..: 4 3 2 1 3 2 3 1 2 2 ...
 $ age_of_oldest_driver2       : Factor w/ 4 levels "18 to 21","22 to 25",..: NA 3 NA NA NA NA 3 NA 3 NA ...
 $ currently_insured2          : Factor w/ 2 levels "0","1": 2 1 2 2 1 1 2 2 1 1 ...
 $ credit_type2                : Ord.factor w/ 4 levels "POOR"<"FAIR"<..: 2 3 2 3 2 2 1 3 3 2 ...
 $ coverage_type2              : Factor w/ 4 levels "BASIC","MINIMUM",..: 4 3 3 3 3 3 3 3 4 3 ...
 $ home_owner2                 : Factor w/ 2 levels "0","1": 1 2 2 2 2 2 2 2 2 2 ...
 $ vehicle_driver_score        : Factor w/ 2 levels "0","1": 1 1 1 1 1 1 1 1 1 1 ...

そして最後に、ここにいくつかの有用な情報があるかもしれません:

> sessionInfo()
R version 2.14.0 (2011-10-31)
Platform: x86_64-pc-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] grid      stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] effects_2.2-1    colorspace_1.1-1 nnet_7.3-1       MASS_7.3-16      lattice_0.20-0   foreign_0.8-46  

loaded via a namespace (and not attached):
[1] tools_2.14.0

ヘルプ!エラーメッセージは何を意味していますか? 通常、「添え字が範囲外」の場合、そのデータ構造の範囲外のものを選択していることを意味しますが、それは単に発生していません。

編集:

@ローランドへ

上で述べたように、警告メッセージとエラー メッセージは別個のものであり、無関係です。zipcode2 を取り出して glm を実行するとします。

mod2 = glm(won_ping ~ our_bid +
  age_of_oldest_driver2 + 
  credit_type2 + 
  coverage_type2 +
  home_owner2 +
  vehicle_driver_score + 
  currently_insured2,
  data=dat, family=binomial(link="logit"))

> plot(effect("our_bid*home_owner2", mod2), rescale.axis=FALSE, multiline=TRUE)
Warning message:
In analyze.model(term, mod, xlevels, default.levels) :
  our_bid:home_owner2 does not appear in the model

これにより、警告が生成されますが、目的の結果が得られるので問題ありません。したがって、「:」がモデルに表示されないという事実は問題ではなく、エラー メッセージの原因にもなりません。

4

1 に答える 1

0

これを試して:

with(dat, table(our_bid, vehicle_driver_score))

人口の少ない細胞があるのではないかと思います。あなたの編集では、問題がこれら2つの変数にあるため、私が仮定しているまばらさはありそうにないようです。モデルがこれらすべての因子変数で構築されている場合、多くの場合でも空のセルがまだ存在する可能性があります。

于 2012-10-16T16:43:29.960 に答える