1

我有三个参数a,b和c。每个参数都是一个具有三个类别的因素。我想用汽车包拟合多项式回归。

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`

前两列显示了自变量 a 和 b 的类别。接下来的五列显示条件概率(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)  .............
....

很抱歉只粘贴了矩阵的一部分,否则它会太长。我想要的是一个方差协方差矩阵,用于同时观察两个变量(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 回答