coef method for class "btfit"

# S3 method for btfit
coef(object, subset = NULL, ref = NULL, as_df = FALSE,
  ...)

Arguments

object

An object of class "btfit", typically the result ob of ob <- btfit(..). See btfit.

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 names(object$pi)), a single predicate function (that takes a vector of object$pi as its argument), or a logical vector of the same length as the number of components, (i.e. length(object$pi)).

ref

A reference item. Either a string with the item name, or the number 1, or NULL. If NULL, then the coefficients are constrained such that their mean is zero. If an item name is given, the coefficient estimates are shifted so that the coefficient for the ref item is zero. If there is more than one component, the components that do not include the ref item will be treated as if ref = NULL. If ref = 1, then the first item of each component is made the reference item.

as_df

Logical scalar, determining class of output. If TRUE, the function returns a data frame. If FALSE (the default), the function returns a named vector (or list of such vectors).

...

other arguments

Value

If as_df = TRUE, a data frame a numeric vector of estimated coefficients, where the first column is the component the item is in, the second column in the item and the third column in the coefficient. If as_df = FALSE, then a numeric vector is returned if the model is fitted on the full dataset, or else a list of numeric vectors is returned, one for each fully connected component. Within each component, the items are arranged by estimate, in descending order.

Details

Note that the values given in the estimate column of the item_summary element are NOT the same as the values in object$pi. Rather, they are the \(\lambda_i\), where \(\lambda_i = \log{\pi_i}\). By default, these are normalised so that mean(\(\lambda_i\)) = 0. However, if ref is not equal to NULL, then the \(\lambda_i\) in the component in which ref appears are shifted to \(\lambda_i - \lambda_{ref}\), for \(i = 1, \dots, K_c\), where \(K_c\) is the number of items in the component in which ref appears, and \(\lambda_{ref}\) is the estimate for the reference item.

Examples

citations_btdata <- btdata(BradleyTerryScalable::citations) fit1 <- btfit(citations_btdata, 1) coef(fit1)
#> JRSS-B Biometrika JASA Comm Statist #> 1.0604065 0.7897537 0.3095638 -2.1597241
toy_df_4col <- codes_to_counts(BradleyTerryScalable::toy_data, c("W1", "W2", "D")) toy_btdata <- btdata(toy_df_4col) fit2a <- btfit(toy_btdata, 1) coef(fit2a)
#> $`2` #> Han Gal Fin #> 0.6956415 0.4125361 -1.1081777 #> #> $`3` #> Cyd Amy Ben Dan #> 0.59239992 0.03250119 -0.24307179 -0.38182932 #>
coef(fit2a, subset = function(x) length(x) > 3, as_df = TRUE)
#> # A tibble: 4 x 3 #> component item coef #> <chr> <chr> <dbl> #> 1 3 Cyd 0.59239992 #> 2 3 Amy 0.03250119 #> 3 3 Ben -0.24307179 #> 4 3 Dan -0.38182932
coef(fit2a, subset = function(x) "Amy" %in% names(x))
#> $`3` #> Cyd Amy Ben Dan #> 0.59239992 0.03250119 -0.24307179 -0.38182932 #>
coef(fit2a, as_df = TRUE)
#> # A tibble: 7 x 3 #> component item coef #> <chr> <chr> <dbl> #> 1 2 Han 0.69564153 #> 2 2 Gal 0.41253614 #> 3 2 Fin -1.10817768 #> 4 3 Cyd 0.59239992 #> 5 3 Amy 0.03250119 #> 6 3 Ben -0.24307179 #> 7 3 Dan -0.38182932
fit2b <- btfit(toy_btdata, 1.1) coef(fit2b)
#> Eve Cyd Han Amy Gal Ben #> 1.90113420 0.47237293 0.24535391 -0.07655328 -0.10175687 -0.42296697 #> Dan Fin #> -0.53638389 -1.48120003
coef(fit2b, ref = "Cyd")
#> Eve Cyd Han Amy Gal Ben Dan #> 1.4287613 0.0000000 -0.2270190 -0.5489262 -0.5741298 -0.8953399 -1.0087568 #> Fin #> -1.9535730