1

私は3つのパラメータa、b、cを持っています。すべてのパラメータは、3 つのカテゴリを持つ因子です。car パッケージに多項回帰を当てはめたかったのです。

require(car)
a <- sample(3, 100, TRUE)
b <- sample(3, 100, TRUE)
c <- sample(3, 100, TRUE)
a <- as.factor(a)
b <- as.factor(b)
c <- as.factor(c)
testus <- multinom(c ~ a + b)
predictors <-
expand.grid(b=c("1","2","3","4","5"),a=c("1","2","3","4","5"))
p.fit <- predict(testus, predictors, type='probs')
probabilities<-data.frame(predictors,p.fit)

これで、b と c の下にある a の予測確率が得られました。

>

`head(probabilities)
>  b a         X1         X2         X3         X4        X5
>1 1 1 0.10609054 0.22599152 0.20107167 0.21953158 0.2473147
>2 2 1 0.20886614 0.27207108 0.08613633 0.18276394 0.2501625
>3 3 1 0.17041268 0.24995975 0.16234240 0.13111518 0.2861700
>4 4 1 0.23704078 0.21179521 0.08493274 0.03135092 0.4348804
>5 5 1 0.09494071 0.09659144 0.24162612 0.21812449 0.3487172
>6 1 2 0.14059489 0.17793438 0.29272452 0.26104833 0.1276979`

最初の 2 つの列は、独立変数 a と b のカテゴリを示しています。次の 5 つの列は、条件付き確率 (pe P(c=1|b==1&&a==1)=0,10609.

分散共分散が必要で、次のことを行いました。

vcov(testus)
             2:(Intercept)        2:b2         2:b3         2:c2        2:c3 ....
2:(Intercept)   .......................................  
2:b2            ................................ 
2:b3             .................
2:c2             ..............
2:c3            .............
3:(Intercept)  .............
....

マトリックスの一部だけを貼り付けて申し訳ありませんが、そうしないと長くなりすぎます。私が望むのは、2 つの変数 (vcov(a,b&c)) を同時に観測するための分散共分散行列です。つまり、変数 a と、「確率」で作成した b と c の同時観測との間の分散 (共分散) を取得したいということです。出力を取得したい

             2:(Intercept)        2:b2&c2         2:b2&c3         ....
2:(Intercept)   .......................................  
2:b2&c2            ................................ 
2:b3&c3             .................
3:(Intercept)  .............
....

これは可能ですか?

4

1 に答える 1

1

多分:

testus <- multinom(c ~ a : b)
vcov(testus)

c ~ a*bモデルを使用する可能性もあり、正確に何を望んでいるかが明確でないため、「おそらく」と言います。(統計上の問題は定義されておらず、これは安定した推定に十分な観測数ではないと思います。) とにかく:

 colnames( vcov(testus))
 #-----------
 [1] "2:(Intercept)" "2:a1:b1"       "2:a2:b1"      
 [4] "2:a3:b1"       "2:a1:b2"       "2:a2:b2"      
 [7] "2:a3:b2"       "2:a1:b3"       "2:a2:b3"      
[10] "2:a3:b3"       "3:(Intercept)" "3:a1:b1"      
[13] "3:a2:b1"       "3:a3:b1"       "3:a1:b2"      
[16] "3:a2:b2"       "3:a3:b2"       "3:a1:b3"      
[19] "3:a2:b3"       "3:a3:b3"     

rownames( vcov(testus))
#--------
 [1] "2:(Intercept)" "2:a1:b1"       "2:a2:b1"      
 [4] "2:a3:b1"       "2:a1:b2"       "2:a2:b2"      
 [7] "2:a3:b2"       "2:a1:b3"       "2:a2:b3"      
[10] "2:a3:b3"       "3:(Intercept)" "3:a1:b1"      
[13] "3:a2:b1"       "3:a3:b1"       "3:a1:b2"      
[16] "3:a2:b2"       "3:a3:b2"       "3:a1:b3"      
[19] "3:a2:b3"       "3:a3:b3"      
于 2013-09-18T16:19:30.417 に答える