Changelog
Source:NEWS.md
PlackettLuce 0.4.3
 Update functions to read Preflib Election Data Files (
read.soc
etc) so that they work for updated Preflib file formats.  Update Preflib URLs.
PlackettLuce 0.4.1
CRAN release: 20210816
New features
 Extend
pltree
to allow option of modelling logworth with a linear predictor (viapladmm()
).  Improved handling of model formula in
pladmm()
, including possibility to specify contrasts for any factors in the formula.  Add anova method for PLADMM models.
 Add
weights
argument topladmm()
, allowing aggregated rankings to be modelled, optionally using anaggregate_rankings
object to specify rankings and weights together.
Bug fixes
 Avoid computing variancecovariance matrix in
predict.PLADMM(vcov = FALSE)
andAIC
when new data specified (partial fix to #50).  Correct residual df for PLADMM models based on partial rankings (previously assumed all rankings had equal number of items).
 Update URL for Preflib data sets.
PlackettLuce 0.4.0
CRAN release: 20210329
 New
pladmm
function to fit the PlackettLuce model with logworth modelled by item covariates.  Add three new variables to the
beans
data. The planting date, and geographical coordinates (@kauedesousa, #41).
PlackettLuce 0.3.2
CRAN release: 20210104
 Fix test that fails with new behaviour of
all.equal()
.  Update citation to use Computational Statistics paper (#44).
PlackettLuce 0.3.0
 Now correctly handles cases where intermediate tie orders are not observed, fixing corresponding tie parameters to zero (#42).
PlackettLuce 0.29
CRAN release: 20190916

vcov.PlackettLuce()
works again forref = NULL
(bug introduced with vcov method in version 0.24)  avoid dependency on R >= 3.6.0 by providing alternatives to
asplit()

read.soi()
andread.toi()
now handle incomplete rankings with very irregular lengths correctly. 
read.*()
functions for Preflib formats now give a meaningful error when the file or URL does not exist, and a warning if the file is corrupt. 
as.rankings
withinput = "orderings"
now checks coded values can be matched to item names, if provided. 
PlackettLuce()
now works withnspeudo > 0
when there are no observed paired comparisons. 
?PlackettLuce
now gives advice on analysing data with higher order ties.
PlackettLuce 0.28
CRAN release: 20190905
 Fix bug in
as.rankings.matrix()
introduced in version 0.27.  Import
eigs
from RSpectra vs rARPACK.
PlackettLuce 0.27
New Features
 New
"aggregated_rankings"
object to store aggregated rankings with the corresponding frequencies. Objects of class"rankings"
can be aggregated via theaggregate
method; alternativelyrankings()
andas.rankings()
will create an"aggregated_rankings"
object whenaggregate = TRUE
.as.rankings()
also handles preaggregated data, accepting frequencies via thefreq
argument.  New
freq()
function to extract frequencies from aggregated rankings. 
as.rankings()
can now create a"grouped_rankings"
object, if a grouping index is passed via theindex
argument.  New
as.matrix()
methods for rankings and aggregated rankings to extract the underlying matrix of rankings, with frequencies in the final column if relevant. This means rankings can be saved easily withwrite.table()
.  New
complete()
anddecode()
functions to help preprocess orderings before converting to rankings,complete()
infers the item(s) in r’th rank given the items in the other (r  1) ranks.decode()
converts coded (partial) orderings to orderings of the items in each ordering.  New
read.soi()
,read.toc()
andread.toi()
to read the corresponding PrefLib file formats (for data types “Strict Orders  Incomplete List”, “Orders with Ties  Complete List” and “Orders with Ties  Incomplete List”). Anas.aggregated_rankings()
method is provided to convert the data frame of aggregated orderings to an"aggregated_rankings"
object.
Improvements

pltree()
now respectsna.action
and will pad predictions and fitted values forna.action = "na.exclude"
if the rankings are missing for a whole group or one of the model covariates has a missing value. 
PlackettLuce()
now has anna.action
argument for handling of missing rankings. 
fitted()
andchoices()
now return data frames, with list columns as necessary.
Changes in behaviour

rankings()
now sets redundant/inconsistent ranks toNA
rather than dropping them. This does not affect the final ranking, unless it is completelyNA
.  The frequencies column in the data frame returned by
read.soc()
is now namedFreq
rather thann
.  The
"item"
attribute of the data frame returned byread.soc()
is now named"items"
.  The
labels
argument inas.rankings()
has been deprecated and replaced byitems
. 
grouped_ranking()
has been deprecated and replaced bygroup()
.  The redundant columns in the
nascar
data have been dropped.
PlackettLuce 0.26
CRAN release: 20190401
 Avoid using
isFALSE()
for compatibility with R < 3.5.  Don’t test number of iterations when comparing models on grouped and ungrouped rankings.
PlackettLuce 0.25
CRAN release: 20190320
 Higher tolerance in tests of
vcov()
for CRAN Windows test machine.
PlackettLuce 0.24
New Features

PlackettLuce()
now supports MAP estimation with a multivariate normal prior on logworths and/or a gamma prior on ranker adherence. 
PlackettLuce()
now returns loglikelihood and degrees of freedom for the null model (where all outcomes, including ties, have equal probability).  There is now a
vcov
method for PlackettLuce trees.
Changes in Behaviour

itempar.PlackettLuce()
now always returns a matrix, even for a single node tree.
Bug Fixes

pltree()
orPlackettLuce()
with grouped rankings now work correctly with weights.
PlackettLuce 0.23
CRAN release: 20180409
Improvements
 Print methods for
"PlackettLuce"
and"summary.PlacketLuce"
objects now respectoptions("width")
.
PlackettLuce 0.22
CRAN release: 20180219
New features
 Add
AIC.pltree
to enable computation of AIC on new observations (e.g. data held out in crossvalidation).  Add
fitted.pltree
to return combined fitted probabilities for each choice within each ranking, for each node in a PlackettLuce tree.
Bug fixes

vcov.PlackettLuce
now works for models with noninteger weights (fixes #25). 
plot.pltree
now works forworth = TRUE
with psychotree version 0.152 (currently prerelease on https://rforge.rproject.org/R/?group_id=330) 
PlackettLuce
andplfit
now work whenstart
argument is set. 
itempar.PlackettLuce
now works withalias = FALSE
PlackettLuce 0.21
CRAN release: 20171207
New features
 Add pkgdown site.
 Add content to README (fixes #5).
 Add
plot.PlackettLuce
method so that plotting works for a saved"PlackettLuce"
object
Improvements
 Improved vignette, particularly example based on
beans
data (which has been updated).  Improved help files particularly
?PlackettLuce
and newpackage?PlackettLuce
. (Fixes #14 and #21).
Changes in behaviour

maxit
defaults to 500 inPlackettLuce
.  Steffensen acceleration only applied in iterations where it will increase the loglikelihood (still only attempted once iterations have reached a solution that is “close enough” as specified by
steffensen
argument).
Bug fixes

coef.pltree()
now respectslog = TRUE
argument (fixes #19).  Fix bug causes lack of convergence with iterative scaling plus pseudorankings.

[.grouped_rankings]
now works for replicated indices.
PlackettLuce 0.20
New Features
 Add vignette.
 Add data sets
pudding
,nascar
andbeans
.  Add
pltree()
function for use withpartykit::mob()
. Requires new objects of type"grouped_rankings"
that add a grouping index to a"rankings"
object and store other derived objects used byPlackettLuce
. Methods to print, plot and predict from PlackettLuce tree are provided.  Add
connectivity()
function to check connectivity of a network given adjacency matrix. Newadjacency()
function computes adjacency matrix without creating edgelist, so removeas.edgelist
generic and method for `“PlackettLuce” objects.  Add
as.data.frame
methods so that rankings and grouped rankings can be added to model frames.  Add
format
methods for rankings and grouped_rankings, for pretty printing.  Add
[
methods for rankings and grouped_rankings, to create valid rankings from selected rankings and/or items.  Add method argument to offer choices of iterative scaling (default), or direct maximisation of the likelihood via BFGS or LBFGS.
 Add
itempar
method for “PlackettLuce” objects to obtain different parameterizations of the worth parameters.  Add
read.soc
function to read Strict Orders  Complete List (.soc) files from https://www.preflib.org.
Changes in behaviour
Old behaviour should be reproducible with arguments
= 0, steffensen = 0, start = c(rep(1/N, N), rep(0.1, D)) npseudo
where N
is number of items and D
is maximum order of ties.
 Implement pseudodata approach  now used by default.
 Improve starting values for ability parameters
 Add Steffensen acceleration to iterative scaling algorithm
 Dropped
ref
argument fromPlackettLuce
; should be specified instead when callingcoef
,summary
,vcov
oritempar
. 
qvcalc
generic now imported from qvcalc
Improvements
 Refactor code to speed up model fitting and computation of fitted values and vcov.
 Implement ranking weights and starting values in
PlackettLuce
.  Add package tests
 Add
log
argument tocoef
so that worth parameters (probability of coming first in strict ranking of all items) can be obtained easily.