fitted.btfit | R Documentation |
fitted.btfit
returns the fitted values from a fitted btfit model object.
## S3 method for class 'btfit' fitted(object, subset = NULL, as_df = FALSE, ...)
object |
An object of class "btfit", typically the result |
subset |
A condition for selecting one or more subsets of the components. This can either be a character vector of names of the components (i.e. a subset of |
as_df |
Logical scalar, determining class of output. If |
... |
Other arguments |
Consider a set of K items. Let the items be nodes in a graph and let there be a directed edge (i, j) when i has won against j at least once. We call this the comparison graph of the data, and denote it by G_W. Assuming that G_W is fully connected, the Bradley-Terry model states that the probability that item i beats item j is
p_{ij} = \frac{π_i}{π_i + π_j},
where π_i and π_j are positive-valued parameters representing the skills of items i and j, for 1 ≤ i, j, ≤ K.
The expected, or fitted, values under the Bradley-Terry model are therefore:
m_{ij} = n_{ij}p_{ij},
where n_{ij} is the number of comparisons between item i and item j.
If there are values on the diagonal in the original btdata$wins
matrix, then these appear as the values on the diagonal of the fitted matrix. These values do not appear in the data frame if the as_df
argument is set to TRUE
.
The function btfit
is used to fit the Bradley-Terry model. It produces a "btfit"
object that can then be passed to fitted.btfit
to obtain the fitted values m_{ij}. Note that the Bradley-Terry probabilities p_{ij} can be calculated using btprob
.
If G_W is not fully connected, then a penalised strength parameter can be obtained using the method of Caron and Doucet (2012) (see btfit
, with a > 1
), which allows for a Bradley-Terry probability of any of the K items beating any of the others. Alternatively, the MLE can be found for each fully-connected component of G_W (see btfit
, with a = 1
), and the probability of each item in each component beating any other item in that component can be found.
If as_df = FALSE
and the model has been fit on the full dataset, returns a matrix where the i,j-th element is the Bradley-Terry expected value m_{ij} (See Details). Otherwise, a list of such matrices is returned, one for each fully-connected component. If as_df = TRUE
, returns a five-column data frame, where the first column is the component that the two items are in, the second column is item1
, the third column is item2
, the fourth column, fit1
, is the expected number of times that item 1 beats item 2 and the fifth column, fit2
, is the expected number of times that item 2 beats item 1. If btdata$wins
has named dimnames, these will be the colnames
for columns one and two. Otherwise these colnames will be item1
and item2
. See Details.
Ella Kaye
Bradley, R. A. and Terry, M. E. (1952). Rank analysis of incomplete block designs: 1. The method of paired comparisons. Biometrika, 39(3/4), 324-345.
Caron, F. and Doucet, A. (2012). Efficient Bayesian Inference for Generalized Bradley-Terry Models. Journal of Computational and Graphical Statistics, 21(1), 174-196.
btfit
, btprob
, btdata
citations_btdata <- btdata(BradleyTerryScalable::citations) fit1 <- btfit(citations_btdata, 1) fitted(fit1) fitted(fit1, as_df = TRUE) toy_df_4col <- codes_to_counts(BradleyTerryScalable::toy_data, c("W1", "W2", "D")) toy_btdata <- btdata(toy_df_4col) fit2a <- btfit(toy_btdata, 1) fitted(fit2a) fitted(fit2a, as_df = TRUE) fitted(fit2a, subset = function(x) "Amy" %in% names(x)) fit2b <- btfit(toy_btdata, 1.1) fitted(fit2b, as_df = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.