linear2btl.RdTransforms linear model coefficients to Bradley-Terry-Luce (BTL) model parameter estimates.
linear2btl(object, order = FALSE)The design matrix used by glm or lm usually results from
a call to pcX. It is assumed that the reference category is
the first level. The covariance matrix is estimated by employing the delta
method. See Imrey, Johnson, and Koch (1976) for more details.
a matrix; the first column holds the BTL parameter estimates, the second column the approximate standard errors
the approximate covariance matrix of the BTL parameter estimates
a vector of the original linear coefficients as returned
by glm or lm
Imrey, P.B., Johnson, W.D., & Koch, G.G. (1976). An incomplete contingency table approach to paired-comparison experiments. Journal of the American Statistical Association, 71, 614–623. doi:10.2307/2285591
data(drugrisk)
y1 <- t(drugrisk[, , 1])[lower.tri(drugrisk[, , 1])]
y0 <- drugrisk[, , 1][ lower.tri(drugrisk[, , 1])]
## Fit BTL model using glm (maximum likelihood)
btl.glm <- glm(cbind(y1, y0) ~ 0 + pcX(6), binomial)
linear2btl(btl.glm)
#> $btl.parameters
#> estimate se
#> 0.019008209 0.004754588
#> pcX(6)1 0.014786508 0.003805432
#> pcX(6)2 0.009350402 0.002539089
#> pcX(6)3 0.167877536 0.029825405
#> pcX(6)4 0.604458817 0.053500761
#> pcX(6)5 0.184518527 0.032155050
#>
#> $cova
#> h
#> h 2.260610e-05 1.163555e-05 7.658454e-06 4.320552e-05 -1.278855e-04
#> 1.163555e-05 1.448131e-05 6.253761e-06 3.372737e-05 -9.947951e-05
#> 7.658454e-06 6.253761e-06 6.446971e-06 2.138760e-05 -6.290748e-05
#> 4.320552e-05 3.372737e-05 2.138760e-05 8.895548e-04 -1.214332e-03
#> -1.278855e-04 -9.947951e-05 -6.290748e-05 -1.214332e-03 2.862331e-03
#> 4.277986e-05 3.338151e-05 2.116070e-05 2.264572e-04 -1.357726e-03
#>
#> h 4.277986e-05
#> 3.338151e-05
#> 2.116070e-05
#> 2.264572e-04
#> -1.357726e-03
#> 1.033947e-03
#>
#> $linear.coefs
#> pcX(6)1 pcX(6)2 pcX(6)3 pcX(6)4 pcX(6)5
#> -0.2511558 -0.7094516 2.1783638 3.4594626 2.2728789
#>
## Fit BTL model using lm (weighted least squares)
btl.lm <- lm(log(y1/y0) ~ 0 + pcX(6), weights=y1*y0/(y1 + y0))
linear2btl(btl.lm)
#> $btl.parameters
#> estimate se
#> 0.02268394 0.005231406
#> pcX(6)1 0.01818484 0.004549953
#> pcX(6)2 0.01244278 0.003256660
#> pcX(6)3 0.16018025 0.029897451
#> pcX(6)4 0.59402701 0.053218843
#> pcX(6)5 0.19248117 0.033218284
#>
#> $cova
#> h
#> h 2.736761e-05 1.441924e-05 1.010296e-05 3.154721e-05 -1.187031e-04
#> 1.441924e-05 2.070207e-05 9.140673e-06 2.082393e-05 -9.412027e-05
#> 1.010296e-05 9.140673e-06 1.060583e-05 1.168456e-05 -6.197128e-05
#> 3.154721e-05 2.082393e-05 1.168456e-05 8.938576e-04 -1.163586e-03
#> -1.187031e-04 -9.412027e-05 -6.197128e-05 -1.163586e-03 2.832245e-03
#> 3.526607e-05 2.903435e-05 2.043726e-05 2.056726e-04 -1.393865e-03
#>
#> h 3.526607e-05
#> 2.903435e-05
#> 2.043726e-05
#> 2.056726e-04
#> -1.393865e-03
#> 1.103454e-03
#>
#> $linear.coefs
#> pcX(6)1 pcX(6)2 pcX(6)3 pcX(6)4 pcX(6)5
#> -0.2210691 -0.6005164 1.9546424 3.2652675 2.1383410
#>