All Projects → DeclareDesign → DeclareDesign

DeclareDesign / DeclareDesign

Licence: other
DeclareDesign: Declare and Diagnose Research Designs

Programming Languages

r
7636 projects

Projects that are alternatives of or similar to DeclareDesign

degitx
Distributed git repository manager
Stars: ✭ 28 (-69.57%)
Mutual labels:  research
awesome-offline-rl
An index of algorithms for offline reinforcement learning (offline-rl)
Stars: ✭ 578 (+528.26%)
Mutual labels:  research
stripnet
STriP Net: Semantic Similarity of Scientific Papers (S3P) Network
Stars: ✭ 82 (-10.87%)
Mutual labels:  research
PSP
PSP-UFU (Power Systems Platform of Federal University of Uberlândia) is a cross-platform, multilingual, Free and Open-Source Software with advanced GUI features and CAD tools for electrical power system studies.
Stars: ✭ 30 (-67.39%)
Mutual labels:  research
ThePhysicsHub
The Physics Hub is an open source physics simulations project that is being developed by physics students worldwide and aims to deliver clear and easy to understand physics simulations free for everyone!
Stars: ✭ 116 (+26.09%)
Mutual labels:  simulations
api-evangelist
The API Evangelist website
Stars: ✭ 73 (-20.65%)
Mutual labels:  research
ultimate-defi-research-base
Here we collect and discuss the best DeFI & Blockchain researches and tools. Feel free to DM me on Twitter or open pool request.
Stars: ✭ 1,074 (+1067.39%)
Mutual labels:  research
contech
The Contech analysis framework provides the means for generating and analyzing task graphs that enable computer architects and programmers to gain a deeper understanding of parallel programs.
Stars: ✭ 43 (-53.26%)
Mutual labels:  research
PowerSimulations.jl
Julia for optimization simulation and modeling of PowerSystems. Part of the Scalable Integrated Infrastructure Planning Initiative at the National Renewable Energy Lab.
Stars: ✭ 202 (+119.57%)
Mutual labels:  simulations
pade
Python Agent DEvelopment framework
Stars: ✭ 81 (-11.96%)
Mutual labels:  simulations
public research
Publicly available research done by BOHR.TECHNOLOGY.
Stars: ✭ 16 (-82.61%)
Mutual labels:  research
derain-net
A (WIP) TensorFlow reproduction of Fu, Huang, Ding, Liao, and Paisley's method for single-image rain removal (https://arxiv.org/abs/1609.02087)
Stars: ✭ 15 (-83.7%)
Mutual labels:  research
senpai
Molecular dynamics simulation software
Stars: ✭ 124 (+34.78%)
Mutual labels:  research
theta
Generic, modular and configurable formal verification framework supporting various formalisms and algorithms
Stars: ✭ 34 (-63.04%)
Mutual labels:  research
snp-sites
Finds SNP sites from a multi-FASTA alignment file
Stars: ✭ 182 (+97.83%)
Mutual labels:  research
patzilla
PatZilla is a modular patent information research platform and data integration toolkit with a modern user interface and access to multiple data sources.
Stars: ✭ 71 (-22.83%)
Mutual labels:  research
RTX-Mesh-Shaders
Different mesh shading techniques using the NVIDIA RTX (Turing) technology.
Stars: ✭ 84 (-8.7%)
Mutual labels:  research
prunnable-layers-pytorch
Prunable nn layers for pytorch.
Stars: ✭ 47 (-48.91%)
Mutual labels:  research
ethsnarks
A toolkit for viable zk-SNARKS on Ethereum, Web, Mobile and Desktop
Stars: ✭ 224 (+143.48%)
Mutual labels:  research
gospal
Go static program analyser
Stars: ✭ 56 (-39.13%)
Mutual labels:  research

DeclareDesign: Declare and Diagnose Research Designs

CRAN status CRAN RStudio mirror downloads Build status Code coverage

DeclareDesign is a system for describing research designs in code and simulating them in order to understand their properties. Because DeclareDesign employs a consistent grammar of designs, you can focus on the intellectually challenging part – designing good research studies – without having to code up simulations from scratch.

Installation

To install the latest stable release of DeclareDesign, please ensure that you are running version 3.5 or later of R and run the following code:

install.packages("DeclareDesign")

Usage

Designs are declared by adding together design elements. Here’s a minimal example that describes a 100 unit randomized controlled trial with a binary outcome. Half the units are assigned to treatment and the remainder to control. The true value of the average treatment effect is 0.05 and it will be estimated with the difference-in-means estimator. The diagnosis shows that the study is unbiased but underpowered.

library(DeclareDesign)

design <-
  declare_model(
    N = 100, 
    potential_outcomes(Y ~ rbinom(N, size = 1, prob = 0.5 + 0.05 * Z))
  ) +
  declare_inquiry(ATE = 0.05) +
  declare_assignment(Z = complete_ra(N, m = 50)) +
  declare_measurement(Y = reveal_outcomes(Y ~ Z)) + 
  declare_estimator(Y ~ Z, .method = lm_robust, inquiry = "ATE")

diagnosands <-
  declare_diagnosands(bias = mean(estimate - estimand),
                      power = mean(p.value <= 0.05))

diagnosis <- diagnose_design(design, diagnosands = diagnosands)
diagnosis
Inquiry Estimator Bias SE(Bias) Power SE(Power) n sims
ATE estimator -0.004 0.004 0.076 0.011 500

Companion software

The core DeclareDesign package relies on four companion packages, each of which is useful in its own right.

  1. randomizr: Easy to use tools for common forms of random assignment and sampling.
  2. fabricatr: Imagine your data before you collect it.
  3. estimatr: Fast estimators for social scientists.
  4. DesignLibrary: Templates to quickly adopt and adapt common research designs.

Learning DeclareDesign

  1. To get started, have a look at this vignette on the idea behind DeclareDesign, which covers the main functionality of the software.

  2. You can also browse a library of already declared designs, which relies on the DesignLibrary package. The library includes canonical designs that you can download, modify, and deploy.

  3. A fuller description of the philosophy underlying the software is described in this paper.

Package structure

Each of these declare_*() functions returns a function.

  1. declare_model() (describes dimensions and distributions over the variables, including potential outcomes)
  2. declare_inquiry() (takes variables in the model and calculates estimand value)
  3. declare_sampling() (takes a population and selects a sample)
  4. declare_assignment() (takes a population or sample and adds treatment assignments)
  5. declare_measurement() (takes data and adds measured values)
  6. declare_estimator() (takes data produced by sampling, assignment, and measurement and returns estimates linked to inquiries)
  7. declare_test() (takes data produced by sampling, assignment, and measurement and returns the result of a test)

To declare a design, connect the components of your design with the + operator.

Once you have declared your design, there are four core post-design-declaration commands used to modify or diagnose your design:

  1. diagnose_design() (takes a design and returns simulations and diagnosis)
  2. draw_data() (takes a design and returns a single draw of the data)
  3. draw_estimates() (takes a design and returns a single simulation of estimates)
  4. draw_estimands() (takes a design and returns a single simulation of estimands)

A few other features:

  1. A designer is a function that takes parameters (e.g., N) and returns a design. expand_design() is a function of a designer and parameters that return a design.
  2. You can change the diagnosands with declare_diagnosands().

This project was generously supported by a grant from the Laura and John Arnold Foundation and seed funding from EGAP.

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].