Learn R Programming

quanteda (version 0.9.9-50)

textmodel_wordshoal: wordshoal text model

Description

Estimate Lauderdale and Herzog's (2016) model for one-dimensional document author (eg speakers) positions based on multiple groups of texts (eg debates). Each group of texts is scaled using Slapin and Proksch's (2008) "wordfish" Poisson scaling model of one-dimensional document positions, and then the positions from a particular author are scaled across groups using a second-level linear factor model, using conditional maximum likelihood.

Usage

textmodel_wordshoal(x, groups, authors, dir = c(1, 2), tol = 0.001)

Arguments

x
the dfm from which the model will be fit
groups
the name of a variable in the document variables for data giving the document group for each document
authors
the name of a variable in the document variables for data giving the author of each document
dir
set global identification by specifying the indexes for a pair of authors such that \(\hat{\theta}_{dir[1]} < \hat{\theta}_{dir[2]}\).
tol
tolerance for convergence. A convergence threshold for the log-posterior of the model.

Value

An object of class textmodel_fitted_wordshoal. This is a list containing:
tol
log-posterior tolerance used in fitting
dir
global identification of the dimension
theta
estimated document positions
beta
debate marginal effects
alpha
estimated document fixed effects
psi
estimated document debate-level positions
groups
document groups
authors
document authors
ll
log likelihood at convergence
se.theta
standard errors for theta-hats
data
corpus to which the model was fit

Details

Returns estimates of relative author positions across the full corpus of texts.

References

Benjamin E. Lauderdale and Alexander Herzog. (forthcoming) "Measuring Political Positions from Legislative Speech." Political Analysis.

Examples

Run this code
## Not run: ------------------------------------
# data(data_corpus_irish30, package = "quantedaData")
# iedfm <- dfm(data_corpus_irish30, remove_punct = TRUE)
# wordshoalfit <- 
#     textmodel_wordshoal(iedfm, dir = c(7,1),
#                         groups = docvars(ie30corpus, "debateID"), 
#                         authors = docvars(ie30corpus, "member.name"))
# fitdf <- merge(as.data.frame(summary(wordshoalfit)),
#                docvars(ie30corpus), 
#                by.x="row.names", by.y="member.name")
# fitdf <- subset(fitdf,!duplicated(memberID))
# aggregate(theta ~ party.name, data = fitdf, mean)
## ---------------------------------------------

Run the code above in your browser using DataLab