# matchingMarkets

Analysis of Stable Matchings in R

## Functions

The `matchingMarkets` R package comes with two estimators:

• `stabit`: Implements a Bayes estimator that corrects for sample selection in matching markets when the selection process is a one-sided matching game (i.e. group formation).

• `stabit2`: Implements the Bayes estimator for a two-sided matching game (i.e. the college admissions and stable marriage problems).

and six algorithms that can be used to simulate matching data:

• `hri`: Constraint model for the hospital/residents problem. Finds all stable matchings in two-sided matching markets. Implemented for both the stable marriage problem (one-to-one matching) and the hospital/residents problem, also known as college admissions problem (many-to-one matching).

• `hri2`: Roth-Peranson Algorithm for the hospital/residents problem with couples. Finds the resident-optimal stable matching (if one exists) in the two-sided matching market.

• `iaa`: Immediate Acceptance Algorithm (a.k.a. Boston mechanism): First-preference-first algorithm used for school choice in many countries. And Gale-Shapley Deferred Acceptance Algorithm.

• `sri`: Constraint model for the stable roommates problem. Finds all stable matchings in the roommates problem (one-sided matching market).

• `plp`: Partitioning Linear Programme. Finds stable matchings in the roommates problem (one-sided matching market) with transferable utility.

• `ttc`: Top-Trading-Cycles Algorithm. Finds stable matchings in the housing market problem.

Functions `hri` and `sri` are based on Patrick Prosser’s n-ary constraint encoding model. They allow for incomplete preference lists (some agents find certain agents unacceptable) and unbalanced instances (unequal number of agents on both sides).

## Installation

Get started by installing the R software for statistical computing.

To get the latest stable version of the package from CRAN:

``````install.packages("matchingMarkets")
library(matchingMarkets)``````

Under Linux, the dependency package `gmp` requires that you have GNU MP (> 4.1.4) installed: `\$ sudo apt-get install libgmp-dev`. See http://gmplib.org.

To get the most recent development version from GitHub:

``````install.packages("devtools")
devtools::install_github("thiloklein/matchingMarkets")
library(matchingMarkets)``````

or from R-Forge:

``````install.packages("matchingMarkets", repos="http://R-Forge.R-project.org")
library(matchingMarkets)``````

Java Note 1: If you get a Java error such as `JAVA_HOME cannot be determined from the Registry`, this can be resolved by installing a Java version (i.e. 64-bit Java or 32-bit Java) that fits to the type of R version that you are using (i.e. 64-bit R or 32-bit R). This problem can easily effect Windows 7 users, since they might have installed a version of Java that is different than the version of R they are using. See this post and download the Java version from the Oracle website.

Java Note 2: If the installation of the dependent `rJava` package fails with configuration failed for package ‘rJava’, this can be fixed in Linux by `\$ sudo apt-get install r-cran-rjava`.

## Documentation

Package documentation is available at matchingMarkets.org and the vignette is available from the CRAN page. An application of the estimator in function `stabit` is in Klein (2015).