2017-02-09 5 views
0

私はcarバージョン2.1.4を実行していて、Anova関数を使用して、成功/失敗設定のロジスティック回帰を使用して電力解析のWaldベースのp値を取得しようとしています。次の簡単な階乗を実行すると、0の残差自由度に起因する誤差による関数ですが、明らかにサンプルサイズは非常に大きくなります。私は何をしているのですか?RのCar ANOVA関数に関する問題?

と同様にglm()コールに問題がありますか?

X <- matrix(c(100,66566,73,66593,1201,398799,165,66501), 
      nrow = 4,ncol = 2,byrow = TRUE) 
x_df <- data.frame(premium = c(300,300,500,500), 
        restrict = c(500,2500,500,2500)) 
x_df$int <- x_df$premium * x_df$restrict 
mod <- glm(X~premium+restrict+int, 
      data=x_df,family=binomial) 
summary(mod) 
car::Anova(mod,type="III","Wald") 

ADD#1:

成功/失敗の構文が正しく動作しないことが表示されます。私は手動〜60万行にデータを展開するとフィット感は同じですが、res.dfは正しいです:

X<-matrix(c(100,66566,73,66593,1201,398799,165,66501),nrow = 4,ncol = 2,byrow = TRUE) 
x_df<-data.frame(premium=c(300,300,500,500),restrict=c(500,2500,500,2500)) 
x_df$int<-x_df$premium*x_df$restrict 
mod<-glm(X~premium+restrict+premium*restrict, data=x_df,family=binomial) 
summary(mod) 
Anova(mod,type = "III",test.statistic = "Wald") 

    y=c(rep(1,100),rep(0,66566),rep(1,73),rep(0,66593),rep(1,1201),rep(0,398799),rep(1,165),rep(0,66501)) 
    premium<-c(rep(300,66666*2),rep(500,1201+398799+165+66501)) 
    restrict<-c(rep(500,66666),rep(2500,66666),rep(500,1201+398799),rep(2500,165+66501)) 
    x<-data.frame(y=y,premium=premium,restrict=restrict)   
    mod2<-glm(y~premium+restrict+premium*restrict,data=x,family=binomial) 
    summary(mod2) 

    Anova(mod2,type = "III",test.statistic = "Wald") 
+0

数式自体に対話用語を入れて、後でその製品を追加しないでください。 – C8H10N4O2

+0

これはプログラミング上の問題ではなく統計的な問題です。 CrossValidatedにクローズ/マイグレーションするための投票。 –

+0

私は、成功/失敗の構文は、同じ数のレコードに展開するのとまったく同じ結果を出そうとしているのではないと思います。 –

答えて

0

自由の残留度(観測値の数)である - (パラメータの数)。 4つの観測値と4つのパラメータがあります。他に何が言いたいのか分かりません...

+0

しかし、サンプルサイズは大量です。 4自由度以上の道があります。 –

+0

私は追加を追加しました。成功/失敗の構文から展開するとうまく動作します。 –

関連する問題