Stable with Fn.Batch Shape

Total Page:16

File Type:pdf, Size:1020Kb

Stable with Fn.Batch Shape NumPyro Documentation Uber AI Labs Sep 26, 2021 CONTENTS 1 Getting Started with NumPyro1 2 Pyro Primitives 11 3 Distributions 23 4 Inference 95 5 Effect Handlers 167 6 Contributed Code 177 7 Bayesian Regression Using NumPyro 179 8 Bayesian Hierarchical Linear Regression 205 9 Example: Baseball Batting Average 215 10 Example: Variational Autoencoder 221 11 Example: Neal’s Funnel 225 12 Example: Stochastic Volatility 229 13 Example: ProdLDA with Flax and Haiku 233 14 Automatic rendering of NumPyro models 241 15 Bad posterior geometry and how to deal with it 249 16 Example: Bayesian Models of Annotation 257 17 Example: Enumerate Hidden Markov Model 265 18 Example: CJS Capture-Recapture Model for Ecological Data 273 19 Example: Nested Sampling for Gaussian Shells 281 20 Bayesian Imputation for Missing Values in Discrete Covariates 285 21 Time Series Forecasting 297 22 Ordinal Regression 305 i 23 Bayesian Imputation 311 24 Example: Gaussian Process 323 25 Example: Bayesian Neural Network 329 26 Example: AutoDAIS 333 27 Example: Sparse Regression 339 28 Example: Horseshoe Regression 349 29 Example: Proportion Test 353 30 Example: Generalized Linear Mixed Models 357 31 Example: Hamiltonian Monte Carlo with Energy Conserving Subsampling 361 32 Example: Hidden Markov Model 365 33 Example: Hilbert space approximation for Gaussian processes. 373 34 Example: Predator-Prey Model 389 35 Example: Neural Transport 393 36 Example: MCMC Methods for Tall Data 399 37 Example: Thompson sampling for Bayesian Optimization with GPs 405 38 Indices and tables 413 Python Module Index 415 Index 417 ii CHAPTER ONE GETTING STARTED WITH NUMPYRO Probabilistic programming with NumPy powered by JAX for autograd and JIT compilation to GPU/TPU/CPU. Docs and Examples| Forum 1.1 What is NumPyro? NumPyro is a small probabilistic programming library that provides a NumPy backend for Pyro. We rely on JAX for automatic differentiation and JIT compilation to GPU / CPU. This is an alpha release under active development,so beware of brittleness, bugs, and changes to the API as the design evolves. NumPyro is designed to be lightweight and focuses on providing a flexible substrate that users can build on: • Pyro Primitives: NumPyro programs can contain regular Python and NumPy code, in addition to Pyro primitives like sample and param. The model code should look very similar to Pyro except for some minor differences between PyTorch and Numpy’s API. See the example below. • Inference algorithms: NumPyro currently supports Hamiltonian Monte Carlo, including an implementation of the No U-Turn Sampler. One of the motivations for NumPyro was to speed up Hamiltonian Monte Carlo by JIT compiling the verlet integrator that includes multiple gradient computations. With JAX, we can compose jit and grad to compile the entire integration step into an XLA optimized kernel. We also eliminate Python overhead by JIT compiling the entire tree building stage in NUTS (this is possible using Iterative NUTS). There is also a basic Variational Inference implementation for reparameterized distributions together with many flexible (auto)guides for Automatic Differentiation Variational Inference (ADVI). • Distributions: The numpyro.distributions module provides distribution classes, constraints and bijective trans- forms. The distribution classes wrap over samplers implemented to work with JAX’s functional pseudo-random number generator. The design of the distributions module largely follows from PyTorch. A major subset of the API is implemented, and it contains most of the common distributions that exist in PyTorch. As a result, Pyro and PyTorch users can rely on the same API and batching semantics as in torch.distributions. In addition to distributions, constraints and transforms are very useful when operating on distribution classes with bounded support. • Effect handlers: Like Pyro, primitives like sample and param can be provided nonstandard interpretations using effect-handlers from the numpyro.handlers module, and these can be easily extended to implement custom inference algorithms and inference utilities. 1 NumPyro Documentation 1.2 A Simple Example - 8 Schools Let us explore NumPyro using a simple example. We will use the eight schools example from Gelman et al., Bayesian Data Analysis: Sec. 5.5, 2003, which studies the effect of coaching on SAT performance in eight schools. The data is given by: >>> import numpy as np >>> J=8 >>> y= np.array([28.0, 8.0,-3.0, 7.0,-1.0, 1.0, 18.0, 12.0]) >>> sigma= np.array([15.0, 10.0, 16.0, 11.0, 9.0, 11.0, 10.0, 18.0]) , where y are the treatment effects and sigma the standard error. We build a hierarchical model for the study where we assume that the group-level parameters theta for each school are sampled from a Normal distribution with unknown mean mu and standard deviation tau, while the observed data are in turn generated from a Normal distribution with mean and standard deviation given by theta (true effect) and sigma, respectively. This allows us to estimate the population- level parameters mu and tau by pooling from all the observations, while still allowing for individual variation amongst the schools using the group-level theta parameters. >>> import numpyro >>> import numpyro.distributions as dist >>> # Eight Schools example ... def eight_schools(J, sigma, y=None): ... mu= numpyro.sample( 'mu', dist.Normal(0,5)) ... tau= numpyro.sample( 'tau', dist.HalfCauchy(5)) ... with numpyro.plate('J', J): ... theta= numpyro.sample( 'theta', dist.Normal(mu, tau)) ... numpyro.sample('obs', dist.Normal(theta, sigma), obs=y) Let us infer the values of the unknown parameters in our model by running MCMC using the No-U-Turn Sampler (NUTS). Note the usage of the extra_fields argument in MCMC.run. By default, we only collect samples from the target (posterior) distribution when we run inference using MCMC. However, collecting additional fields like potential energy or the acceptance probability of a sample can be easily achieved by using the extra_fields argument. For a list of possible fields that can be collected, see the HMCState object. In this example, we will additionally collect the potential_energy for each sample. >>> from jax import random >>> from numpyro.infer import MCMC, NUTS (continues on next page) 2 Chapter 1. Getting Started with NumPyro NumPyro Documentation (continued from previous page) >>> nuts_kernel= NUTS(eight_schools) >>> mcmc= MCMC(nuts_kernel, num_warmup=500, num_samples=1000) >>> rng_key= random.PRNGKey(0) >>> mcmc.run(rng_key, J, sigma, y=y, extra_fields=('potential_energy',)) We can print the summary of the MCMC run, and examine if we observed any divergences during inference. Addi- tionally, since we collected the potential energy for each of the samples, we can easily compute the expected log joint density. >>> mcmc.print_summary() mean std median 5.0% 95.0% n_eff r_hat mu 4.14 3.18 3.87 -0.76 9.50 115.42 1.01 tau 4.12 3.58 3.12 0.51 8.56 90.64 1.02 theta[0] 6.40 6.22 5.36 -2.54 15.27 176.75 1.00 theta[1] 4.96 5.04 4.49 -1.98 14.22 217.12 1.00 theta[2] 3.65 5.41 3.31 -3.47 13.77 247.64 1.00 theta[3] 4.47 5.29 4.00 -3.22 12.92 213.36 1.01 theta[4] 3.22 4.61 3.28 -3.72 10.93 242.14 1.01 theta[5] 3.89 4.99 3.71 -3.39 12.54 206.27 1.00 theta[6] 6.55 5.72 5.66 -1.43 15.78 124.57 1.00 theta[7] 4.81 5.95 4.19 -3.90 13.40 299.66 1.00 Number of divergences: 19 >>> pe= mcmc.get_extra_fields()[ 'potential_energy'] >>> print('Expected log joint density: {:.2f}'.format(np.mean(-pe))) Expected log joint density: -54.55 1.2. A Simple Example - 8 Schools 3 NumPyro Documentation The values above 1 for the split Gelman Rubin diagnostic (r_hat) indicates that the chain has not fully converged. The low value for the effective sample size (n_eff), particularly for tau, and the number of divergent transitions looks problematic. Fortunately, this is a common pathology that can be rectified by using a non-centered paramaterization for tau in our model. This is straightforward to do in NumPyro by using a TransformedDistribution instance together with a reparameterization effect handler. Let us rewrite the same model but instead of sampling theta from a Normal(mu, tau), we will instead sample it from a base Normal(0, 1) distribution that is transformed using an AffineTransform. Note that by doing so, NumPyro runs HMC by generating samples theta_base for the base Normal(0, 1) distribu- tion instead. We see that the resulting chain does not suffer from the same pathology — the Gelman Rubin diagnostic is 1 for all the parameters and the effective sample size looks quite good! >>> from numpyro.infer.reparam import TransformReparam >>> # Eight Schools example - Non-centered Reparametrization ... def eight_schools_noncentered(J, sigma, y=None): ... mu= numpyro.sample( 'mu', dist.Normal(0,5)) ... tau= numpyro.sample( 'tau', dist.HalfCauchy(5)) ... with numpyro.plate('J', J): ... with numpyro.handlers.reparam(config={'theta': TransformReparam()}): ... theta= numpyro.sample( ... 'theta', ... dist.TransformedDistribution(dist.Normal(0., 1.), ... dist.transforms.AffineTransform(mu, ,!tau))) ... numpyro.sample('obs', dist.Normal(theta, sigma), obs=y) >>> nuts_kernel= NUTS(eight_schools_noncentered) >>> mcmc= MCMC(nuts_kernel, num_warmup=500, num_samples=1000) >>> rng_key= random.PRNGKey(0) >>> mcmc.run(rng_key, J, sigma, y=y, extra_fields=('potential_energy',)) >>> mcmc.print_summary(exclude_deterministic=False) mean std median 5.0% 95.0% n_eff r_hat (continues on next page) 4 Chapter 1. Getting Started with NumPyro NumPyro Documentation (continued from previous
Recommended publications
  • R G M B.Ec. M.Sc. Ph.D
    Rolando Kristiansand, Norway www.bayesgroup.org Gonzales Martinez +47 41224721 [email protected] JOBS & AWARDS M.Sc. B.Ec. Applied Ph.D. Economics candidate Statistics Jobs Events Awards Del Valle University University of Alcalá Universitetet i Agder 2018 Bolivia, 2000-2004 Spain, 2009-2010 Norway, 2018- 1/2018 Ph.D scholarship 8/2017 International Consultant, OPHI OTHER EDUCATION First prize, International Young 12/2016 J-PAL Course on Evaluating Social Programs Macro-prudential Policies Statistician Prize, IAOS Massachusetts Institute of Technology - MIT International Monetary Fund (IMF) 5/2016 Deputy manager, BCP bank Systematic Literature Reviews and Meta-analysis Theorizing and Theory Building Campbell foundation - Vrije Universiteit Halmstad University (HH, Sweden) 1/2016 Consultant, UNFPA Bayesian Modeling, Inference and Prediction Multidimensional Poverty Analysis University of Reading OPHI, Oxford University Researcher, data analyst & SKILLS AND TECHNOLOGIES 1/2015 project coordinator, PEP Academic Research & publishing Financial & Risk analysis 12 years of experience making economic/nancial analysis 3/2014 Director, BayesGroup.org and building mathemati- Consulting cal/statistical/econometric models for the government, private organizations and non- prot NGOs Research & project Mathematical 1/2013 modeling coordinator, UNFPA LANGUAGES 04/2012 First award, BCG competition Spanish (native) Statistical analysis English (TOEFL: 106) 9/2011 Financial Economist, UDAPE MatLab Macro-economic R, RStudio 11/2010 Currently, I work mainly analyst, MEFP Stata, SPSS with MatLab and R . SQL, SAS When needed, I use 3/2010 First award, BCB competition Eviews Stata, SAS or Eviews. I started working in LaTex, WinBugs Python recently. 8/2009 M.Sc. scholarship Python, Spyder RECENT PUBLICATIONS Disjunction between universality and targeting of social policies: Demographic opportunities for depolarized de- velopment in Paraguay.
    [Show full text]
  • End-User Probabilistic Programming
    End-User Probabilistic Programming Judith Borghouts, Andrew D. Gordon, Advait Sarkar, and Neil Toronto Microsoft Research Abstract. Probabilistic programming aims to help users make deci- sions under uncertainty. The user writes code representing a probabilistic model, and receives outcomes as distributions or summary statistics. We consider probabilistic programming for end-users, in particular spread- sheet users, estimated to number in tens to hundreds of millions. We examine the sources of uncertainty actually encountered by spreadsheet users, and their coping mechanisms, via an interview study. We examine spreadsheet-based interfaces and technology to help reason under uncer- tainty, via probabilistic and other means. We show how uncertain values can propagate uncertainty through spreadsheets, and how sheet-defined functions can be applied to handle uncertainty. Hence, we draw conclu- sions about the promise and limitations of probabilistic programming for end-users. 1 Introduction In this paper, we discuss the potential of bringing together two rather distinct approaches to decision making under uncertainty: spreadsheets and probabilistic programming. We start by introducing these two approaches. 1.1 Background: Spreadsheets and End-User Programming The spreadsheet is the first \killer app" of the personal computer era, starting in 1979 with Dan Bricklin and Bob Frankston's VisiCalc for the Apple II [15]. The primary interface of a spreadsheet|then and now, four decades later|is the grid, a two-dimensional array of cells. Each cell may hold a literal data value, or a formula that computes a data value (and may depend on the data in other cells, which may themselves be computed by formulas).
    [Show full text]
  • Bayesian Data Analysis and Probabilistic Programming
    Probabilistic programming and Stan mc-stan.org Outline What is probabilistic programming Stan now Stan in the future A bit about other software The next wave of probabilistic programming Stan even wider adoption including wider use in companies simulators (likelihood free) autonomus agents (reinforcmenet learning) deep learning Probabilistic programming Probabilistic programming framework BUGS started revolution in statistical analysis in early 1990’s allowed easier use of elaborate models by domain experts was widely adopted in many fields of science Probabilistic programming Probabilistic programming framework BUGS started revolution in statistical analysis in early 1990’s allowed easier use of elaborate models by domain experts was widely adopted in many fields of science The next wave of probabilistic programming Stan even wider adoption including wider use in companies simulators (likelihood free) autonomus agents (reinforcmenet learning) deep learning Stan Tens of thousands of users, 100+ contributors, 50+ R packages building on Stan Commercial and scientific users in e.g. ecology, pharmacometrics, physics, political science, finance and econometrics, professional sports, real estate Used in scientific breakthroughs: LIGO gravitational wave discovery (2017 Nobel Prize in Physics) and counting black holes Used in hundreds of companies: Facebook, Amazon, Google, Novartis, Astra Zeneca, Zalando, Smartly.io, Reaktor, ... StanCon 2018 organized in Helsinki in 29-31 August http://mc-stan.org/events/stancon2018Helsinki/ Probabilistic program
    [Show full text]
  • Software Packages – Overview There Are Many Software Packages Available for Performing Statistical Analyses. the Ones Highlig
    APPENDIX C SOFTWARE OPTIONS Software Packages – Overview There are many software packages available for performing statistical analyses. The ones highlighted here are selected because they provide comprehensive statistical design and analysis tools and a user friendly interface. SAS SAS is arguably one of the most comprehensive packages in terms of statistical analyses. However, the individual license cost is expensive. Primarily, SAS is a macro based scripting language, making it challenging for new users. However, it provides a comprehensive analysis ranging from the simple t-test to Generalized Linear mixed models. SAS also provides limited Design of Experiments capability. SAS supports factorial designs and optimal designs. However, it does not handle design constraints well. SAS also has a GUI available: SAS Enterprise, however, it has limited capability. SAS is a good program to purchase if your organization conducts advanced statistical analyses or works with very large datasets. R R, similar to SAS, provides a comprehensive analysis toolbox. R is an open source software package that has been approved for use on some DoD computer (contact AFFTC for details). Because R is open source its price is very attractive (free). However, the help guides are not user friendly. R is primarily a scripting software with notation similar to MatLab. R’s GUI: R Commander provides limited DOE capabilities. R is a good language to download if you can get it approved for use and you have analysts with a strong programming background. MatLab w/ Statistical Toolbox MatLab has a statistical toolbox that provides a wide variety of statistical analyses. The analyses range from simple hypotheses test to complex models and the ability to use likelihood maximization.
    [Show full text]
  • Richard C. Zink, Ph.D
    Richard C. Zink, Ph.D. SAS Institute, Inc. • SAS Campus Drive • Cary, North Carolina 27513 • Office 919.531.4710 • Mobile 919.397.4238 • Blog: http://blogs.sas.com/content/jmp/author/rizink/ • [email protected] • @rczink SUMMARY Richard C. Zink is Principal Research Statistician Developer in the JMP Life Sciences division at SAS Institute. He is currently a developer for JMP Clinical, an innovative software package designed to streamline the review of clinical trial data. Richard joined SAS in 2011 after eight years in the pharmaceutical industry, where he designed and analyzed clinical trials in diverse therapeutic areas including infectious disease, oncology, and ophthalmology, and participated in US and European drug submissions and FDA advisory committee hearings. Richard is the Publications Officer for the Biopharmaceutical Section of the American Statistical Association, and the Statistics Section Editor for the Therapeutic Innovation & Regulatory Science (formerly Drug Information Journal). He holds a Ph.D. in Biostatistics from the University of North Carolina at Chapel Hill, where he serves as an Adjunct Assistant Professor of Biostatistics. His research interests include data visualization, the analysis of pre- and post-market adverse events, subgroup identification for patients with enhanced treatment response, and the assessment of data integrity in clinical trials. He is author of Risk-Based Monitoring and Fraud Detection in Clinical Trials Using JMP and SAS, and co-editor of Modern Approaches to Clinical Trials Using
    [Show full text]
  • Winbugs for Beginners
    WinBUGS for Beginners Gabriela Espino-Hernandez Department of Statistics UBC July 2010 “A knowledge of Bayesian statistics is assumed…” The content of this presentation is mainly based on WinBUGS manual Introduction BUGS 1: “Bayesian inference Using Gibbs Sampling” Project for Bayesian analysis using MCMC methods It is not being further developed WinBUGS 1,2 Stable version Run directly from R and other programs OpenBUGS 3 Currently experimental Run directly from R and other programs Running under Linux as LinBUGS 1 MRC Biostatistics Unit Cambridge, 2 Imperial College School of Medicine at St Mary's, London 3 University of Helsinki, Finland WinBUGS Freely distributed http://www.mrc-bsu.cam.ac.uk/bugs/welcome.shtml Key for unrestricted use http://www.mrc-bsu.cam.ac.uk/bugs/winbugs/WinBUGS14_immortality_key.txt WinBUGS installation also contains: Extensive user manual Examples Control analysis using: Standard windows interface DoodleBUGS: Graphical representation of model A closed form for the posterior distribution is not needed Conditional independence is assumed Improper priors are not allowed Inputs Model code Specify data distributions Specify parameter distributions (priors) Data List / rectangular format Initial values for parameters Load / generate Model specification model { statements to describe model in BUGS language } Multiple statements in a single line or one statement over several lines Comment line is followed by # Types of nodes 1. Stochastic Variables that are given a distribution 2. Deterministic
    [Show full text]
  • Stan: a Probabilistic Programming Language
    JSS Journal of Statistical Software January 2017, Volume 76, Issue 1. http://www.jstatsoft.org/ Stan: A Probabilistic Programming Language Bob Carpenter Andrew Gelman Matthew D. Hoffman Columbia University Columbia University Adobe Creative Technologies Lab Daniel Lee Ben Goodrich Michael Betancourt Columbia University Columbia University Columbia University Marcus A. Brubaker Jiqiang Guo Peter Li York University NPD Group Columbia University Allen Riddell Indiana University Abstract Stan is a probabilistic programming language for specifying statistical models. A Stan program imperatively defines a log probability function over parameters conditioned on specified data and constants. As of version 2.14.0, Stan provides full Bayesian inference for continuous-variable models through Markov chain Monte Carlo methods such as the No-U-Turn sampler, an adaptive form of Hamiltonian Monte Carlo sampling. Penalized maximum likelihood estimates are calculated using optimization methods such as the limited memory Broyden-Fletcher-Goldfarb-Shanno algorithm. Stan is also a platform for computing log densities and their gradients and Hessians, which can be used in alternative algorithms such as variational Bayes, expectation propa- gation, and marginal inference using approximate integration. To this end, Stan is set up so that the densities, gradients, and Hessians, along with intermediate quantities of the algorithm such as acceptance probabilities, are easily accessible. Stan can be called from the command line using the cmdstan package, through R using the rstan package, and through Python using the pystan package. All three interfaces sup- port sampling and optimization-based inference with diagnostics and posterior analysis. rstan and pystan also provide access to log probabilities, gradients, Hessians, parameter transforms, and specialized plotting.
    [Show full text]
  • JASP: Graphical Statistical Software for Common Statistical Designs
    JSS Journal of Statistical Software January 2019, Volume 88, Issue 2. doi: 10.18637/jss.v088.i02 JASP: Graphical Statistical Software for Common Statistical Designs Jonathon Love Ravi Selker Maarten Marsman University of Newcastle University of Amsterdam University of Amsterdam Tahira Jamil Damian Dropmann Josine Verhagen University of Amsterdam University of Amsterdam University of Amsterdam Alexander Ly Quentin F. Gronau Martin Šmíra University of Amsterdam University of Amsterdam Masaryk University Sacha Epskamp Dora Matzke Anneliese Wild University of Amsterdam University of Amsterdam University of Amsterdam Patrick Knight Jeffrey N. Rouder Richard D. Morey University of Amsterdam University of California, Irvine Cardiff University University of Missouri Eric-Jan Wagenmakers University of Amsterdam Abstract This paper introduces JASP, a free graphical software package for basic statistical pro- cedures such as t tests, ANOVAs, linear regression models, and analyses of contingency tables. JASP is open-source and differentiates itself from existing open-source solutions in two ways. First, JASP provides several innovations in user interface design; specifically, results are provided immediately as the user makes changes to options, output is attrac- tive, minimalist, and designed around the principle of progressive disclosure, and analyses can be peer reviewed without requiring a “syntax”. Second, JASP provides some of the recent developments in Bayesian hypothesis testing and Bayesian parameter estimation. The ease with which these relatively complex Bayesian techniques are available in JASP encourages their broader adoption and furthers a more inclusive statistical reporting prac- tice. The JASP analyses are implemented in R and a series of R packages. Keywords: JASP, statistical software, Bayesian inference, graphical user interface, basic statis- tics.
    [Show full text]
  • R Package Rube (Really Useful Winbugs (Or JAGS) Enhancer) 1
    R Package rube (Really Useful WinBUGS (or JAGS) Enhancer) Version 0.3-10, November 29, 2017 Author: Howard J. Seltman 1 Introduction These notes are on the world wide web at: http://www.stat.cmu.edu/∼hseltman/rube/rubeManual.pdf. The R package, rube is a Really Useful WinBUGS (or JAGS) Enhancer. It makes working with WinBUGS much easier. It is (currently) built on top of the R2WinBUGS package. It works with either the WinBUGS or the JAGS MCMC engines. The latter requires the R2jags package. R2WinBUGS or R2jags takes a good first step to allow you to • Get your data and parameter initializations ready in R. • Run your model in WinBUGS (or JAGS) without touching WinBUGS (or JAGS). (The WinBUGSdoodle editor is really just a toy!) • Examine your results in R. The rube package is a wrapper for R2WinBUGS or R2jags, but also much more. If you use it, you don't need to learn the details of R2WinBUGS or R2jags. Although rube contains many features and options, most users will want to start with use of the substitution, LC() and FOR() pseudo-functions for better model code mainte- nance, the use of rube() to check and run analyses (while hiding bugs() and WinBUGS or JAGS() and jags), and the use of p3() and compare() to examine MCMC results. 2 Philosophy WinBUGS is a powerful and flexible program for performing Bayesian analyses. Unfor- tunately it is not user-friendly in a number of ways. While the R package R2WinBUGS simplifies getting data and initial parameter values into and out of WinBUGS, that only slightly reduces the pain, effort, and frustration of working with WinBUGS, especially when setting up your own model.
    [Show full text]
  • The Political Methodologist Newsletter of the Political Methodology Section American Political Science Association Volume 16, Number 2, Spring 2009
    The Political Methodologist Newsletter of the Political Methodology Section American Political Science Association Volume 16, Number 2, Spring 2009 Editors: Paul M. Kellstedt, Texas A&M University [email protected] David A.M. Peterson, Texas A&M University [email protected] Guy D. Whitten, Texas A&M University [email protected] Editorial Assistant: Mark D. Ramirez, Texas A&M University [email protected] Contents ity of data comes a concurrent growth in statistical method- ology and statistical software. Fortunately, this growth in Notes from the Editors 1 data, statistical methods, and software is being accompa- nied by books that explain how to solve contemporary data Book Reviews 2 analytic problems with the latest statistical methods and software. Nathaniel Beck: Review of Microeconometrics: Methods and Applications, by A. Colin This issue of The Political Methodologist includes Cameron and Pravin K. Trivedi . 2 three book reviews that should be of interest to schol- ars wishing to add new techniques to their methodolog- Shawn Treier: Review of Semiparametric Regres- ical toolbox or simply looking for that new book to use sion for the Social Sciences, by Luke Keele . 5 in a graduate-level methodology seminar. Nathaniel Beck Mark Pickup: Review of An Introduction to State provides a thorough review of Microeconometrics: Methods Space Time Series Analysis, by Jacques J.F. and Applications by Cameron and Trivedi. Yet, Professor Commandeur and Siem Jan Koopman . 7 Beck’s article is not just a book review, but a comparison of textbooks commonly used for advanced graduate student Computing and Software 10 econometric courses.
    [Show full text]
  • Lecture 1. Introduction to Bayesian Monte Carlo Methods in WINBUGS
    Lecture 1. Introduction to Bayesian Monte Carlo methods in WINBUGS 1-1 Introduction to Bayesian Analysis and WinBUGS Summary 1. Probability as a means of representing uncertainty 2. Bayesian direct probability statements about parameters 3. Probability distributions 4. Monte Carlo simulation 5. Implementation in WinBUGS (and DoodleBUGS) - Demo 6. Directed graphs for representing probability models 7. Examples 1-2 Introduction to Bayesian Analysis and WinBUGS How did it all start? In 1763, Reverend Thomas Bayes of Tunbridge Wells wrote In modern language, given r Binomial(θ, n), what is Pr(θ1 <θ<θ2 r, n)? ∼ | 1-3 Introduction to Bayesian Analysis and WinBUGS Basic idea: Direct expression of uncertainty about unknown parameters eg ”There is an 89% probability that the absolute increase in major bleeds is less than 10 percent with low-dose PLT transfusions” (Tinmouth et al, Transfusion, 2004) −50 −40 −30 −20 −10 0 10 20 30 % absolute increase in major bleeds 1-4 Introduction to Bayesian Analysis and WinBUGS Why a direct probability distribution? 1. Tells us what we want: what are plausible values for the parameter of interest? 2. No P-values: just calculate relevant tail areas 3. No (difficult to interpret) confidence intervals: just report, say, central area that contains 95% of distribution 4. Easy to make predictions (see later) 5. Fits naturally into decision analysis / cost-effectiveness analysis / project prioritisation 6. There is a procedure for adapting the distribution in the light of additional evidence: i.e. Bayes theorem allows
    [Show full text]
  • Spatial Tools for Econometric and Exploratory Analysis
    Spatial Tools for Econometric and Exploratory Analysis Michael F. Goodchild University of California, Santa Barbara Luc Anselin University of Illinois at Urbana-Champaign http://csiss.org Outline ¾A Quick Tour of a GIS ¾Spatial Data Analysis ¾CSISS Tools Spatial Data Analysis Principles: 1. Integration ¾Linking data through common location the layer cake ¾Linking processes across disciplines spatially explicit processes e.g. economic and social processes interact at common locations 2. Spatial analysis ¾Social data collected in cross- section longitudinal data are difficult to construct ¾Cross-sectional perspectives are rich in context can never confirm process though they can perhaps falsify useful source of hypotheses, insights 3. Spatially explicit theory ¾Theory that is not invariant under relocation ¾Spatial concepts (location, distance, adjacency) appear explicitly ¾Can spatial concepts ever explain, or are they always surrogates for something else? 4. Place-based analysis ¾Nomothetic - search for general principles ¾Idiographic - description of unique properties of places ¾An old debate in Geography The Earth's surface ¾Uncontrolled variance ¾There is no average place ¾Results depend explicitly on bounds ¾Places as samples ¾Consider the model: y = a + bx Tract Pop Location Shape 1 3786 x,y 2 2966 x,y 3 5001 x,y 4 4983 x,y 5 4130 x,y 6 3229 x,y 7 4086 x,y 8 3979 x,y Iij = EiAjf (dij) / ΣkAkf (dik) Aj d Ei ij Types of Spatial Data Analysis ¾ Exploratory Spatial Data Analysis • exploring the structure of spatial data • determining
    [Show full text]