All Projects → jamesdunham → dgo

jamesdunham / dgo

Licence: other
Dynamic estimation of group-level opinion in R

Programming Languages

r
7636 projects
Stan
76 projects
Makefile
30231 projects

Projects that are alternatives of or similar to dgo

EduCDM
The Model Zoo of Cognitive Diagnosis Models, including classic Item Response Ranking (IRT), Multidimensional Item Response Ranking (MIRT), Deterministic Input, Noisy "And" model(DINA), and advanced Fuzzy Cognitive Diagnosis Framework (FuzzyCDF), Neural Cognitive Diagnosis Model (NCDM) and Item Response Ranking framework (IRR).
Stars: ✭ 48 (+220%)
Mutual labels:  irt
survHE
Survival analysis in health economic evaluation Contains a suite of functions to systematise the workflow involving survival analysis in health economic evaluation. survHE can fit a large range of survival models using both a frequentist approach (by calling the R package flexsurv) and a Bayesian perspective.
Stars: ✭ 32 (+113.33%)
Mutual labels:  rstan
stanTuneR
This code uses the algebra solver in Stan (https://mc-stan.org/) to find the parameters of a distribution that produce a desired tail behavior.
Stars: ✭ 28 (+86.67%)
Mutual labels:  rstan
vmrp
mrp emulator, virtual machine, mrp模拟器
Stars: ✭ 126 (+740%)
Mutual labels:  mrp

dgo: Dynamic Estimation of Group-Level Opinion

Build Status Build status codecov

Introduction

dgo is an R package for the dynamic estimation of group-level public opinion. You can use the package to estimate latent trait means in subpopulations from survey data. For example, dgo can estimate the average policy liberalism in each American state over time among Democrats, Independents, and Republicans, given their answers to survey questions about policy proposals.

dgo accomplishes this using a Bayesian group-level IRT approach developed by Caughey and Warshaw 2015. It models latent traits at the level of demographic and geographic groups rather than individuals. It uses a hierarchical model to borrow strength cross-sectionally and dynamic linear models to do so across time.

The package can also be used to estimate smoothed estimates of subpopulations’ average responses to single survey items, using a dynamic multi-level regression and poststratification (MRP) model (Park, Gelman, and Bafumi 2004). For instance, you can use dgo to estimate public opinion in each state on same-sex marriage or the Affordable Care Act.

This model opens up new areas of research on historical public opinion in the United States at the subnational level. It also allows scholars of comparative politics to estimate dynamic cross-national models of public opinion.

Installation

dgo can be installed from CRAN:

install.packages("dgo")

Or get the latest version from GitHub using devtools:

if (!require(devtools, quietly = TRUE)) install.packages("devtools")
devtools::install_github("jamesdunham/dgo")

dgo requires a working installation of RStan. If you don’t have already have RStan, follow its “Getting Started” guide.

Usage

Load the package and set RStan’s recommended options for a local, multicore machine with excess RAM:

library(dgo)
rstan_options(auto_write = TRUE)
options(mc.cores = parallel::detectCores())

The minimal workflow from raw data to estimation is:

  1. shape input data using the shape() function; and
  2. pass the result to the dgirt() function to estimate a latent trait (e.g., conservatism) or dgmrp() function to estimate opinion on a single survey question.

Troubleshooting

Please report issues that you encounter.

  • OS X only: RStan creates temporary files during estimation in a location given by tempdir(), typically an arbitrary location in /var/folders. If a model runs for days, these files can be cleaned up while still needed, which induces an error. A good solution is to set a safer path for temporary files, using an environment variable checked at session startup. For help setting environment variables, see the Stack Overflow question here. Confirm the new path before starting your model run by restarting R and checking the output from tempdir().

  • Models fitted before October 2016 (specifically < #8e6a2cf) using dgirt are not fully compatible with dgo. Their contents can be extracted without using dgo, however, with the $ indexing operator. For example: as.data.frame(dgirtfit_object$stan.cmb).

  • Calling dgirt() or dgmrp() can generate warnings during model compilation. These are safe to ignore, or can be suppressed by following the linked instructions.

Contributing and citing

dgo is under development and we welcome suggestions.

The package citation is:

Dunham, James, Devin Caughey, and Christopher Warshaw. 2018. dgo: Dynamic Estimation of Group-level Opinion. R package. https://jdunham.io/dgo/.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].