`hri2.Rd`

Implements the Roth Peranson matching algorithm for the hospital/residents problem with couples as described in Roth and Peranson (1999). The function is based on an adoption of Bacchus (2018).

hri2(nStudents = ncol(s.prefs), nColleges = ncol(c.prefs), nSlots = rep(1, nColleges), nCouples = ncol(co.prefs), s.prefs = NULL, c.prefs = NULL, co.prefs = NULL, randomization = "multiple", seed = NULL, check_consistency = TRUE, ...)

nStudents | integer indicating the number of students (in the college admissions problem)
or men (in the stable marriage problem) in the market. Defaults to |
---|---|

nColleges | integer indicating the number of colleges (in the college admissions problem)
or women (in the stable marriage problem) in the market. Defaults to |

nSlots | vector of length |

nCouples | integer indicating the number of couples (in the college admissions problem)
or men (in the stable marriage problem) in the market. Defaults to |

s.prefs | matrix of dimension |

c.prefs | matrix of dimension |

co.prefs | matrix of dimension |

randomization | determines at which level and in which order random lottery numbers for student priorities are drawn. The default is |

seed | integer setting the state for random number generation. |

check_consistency | Performs additional consicentcy checks if the preference matrices are given by characters. Defaults to |

... | . |

`hri2`

returns a list of the following elements:

List of matched students and colleges.

Detailed report of the matching result, including futher information on ranks.

`hri2`

requires the following combination of arguments, subject to the matching problem.

`nStudents, nColleges`

Residence hospital problem without couples and random preferences

`nStudents, nColleges, nCouples, nSlots`

Residence hospital problem with couples and random preferences.

`s.prefs, c.prefs, co.prefs, nSlots`

Residence hospital problem with couples and given preferences.

Bacchus, F. (2018). Stable matching suite. GitHub repository.

Gale, D. and L.S. Shapley (1962). College admissions and the stability
of marriage. *The American Mathematical Monthly*, 69(1):9--15.

Roth, A. E., & Peranson, E. (1999). The redesign of the matching market for American physicians: Some engineering aspects of economic design. *American economic review*, 89(4), 748-780.

Kojima, F., Pathak, P. A., & Roth, A. E. (2013). Matching with couples: Stability and incentives in large markets. *The Quarterly Journal of Economics*, 128(4), 1585-1632.

# NOT RUN { ## Example with given preferences (s.prefs <- matrix(c(4,2,3,5, 2,1,3,NA, 1,2,3,4), 4,3)) (c.prefs <- matrix(rep(1:5,5), 5,5)) (co.prefs <- matrix(c(rep(4,3), rep(5,3), 3,3,NA, 3,NA,3), 3,4)) res <- hri2(s.prefs=s.prefs, c.prefs=c.prefs, co.prefs=co.prefs, nSlots=rep(1,5)) res$matchings # summary(res) ## Example with random preferences nStudents <- 50 nColleges <- 30 nCouples <- 4 nSlots <- sample(1:nStudents, nColleges) res <- hri2(nStudents=nStudents, nColleges=nColleges, nCouples=nCouples, nSlots=nSlots) res$matchings # summary(res) ## Example with characters in the preferences matrices s.prefs <- matrix(c("Micro1", NA, NA, "Micro2", "Micro1", "Macro", "Macro",NA ,NA), ncol = 3) colnames(s.prefs) <- c('Lea', 'Mia', 'Kai') c.prefs <- matrix(c("Niklas", "Kai", "Mia", "Anna", "Lea", "Kai", "Anna",NA, "Kai", "Mia", "Lea",NA), ncol = 3) colnames(c.prefs) <- c('Micro1', 'Micro2', 'Macro') col1 <- c(rep("Niklas",4),rep("Anna",5)) col2 <- c(rep("Jan",4),rep("Lisa",5)) col3 <- c("Micro1","Macro","Micro1",NA,"Macro", NA,"Micro2","Micro2","Macro") col4 <- c("Micro2","Micro1",NA,"Macro","Macro", "Micro1","Micro2","Macro",NA) co.prefs <- matrix(c(col1,col2,col3,col4), ncol = 4) res <- hri2(s.prefs=s.prefs, c.prefs=c.prefs, co.prefs=co.prefs, nSlots=c(2,1,1)) res$matching ## Example if students are allowed to apply and be accepted by two courses col12 <- c(rep(c(rep("Niklas",4),rep("Anna",2)),2)) col3 <- c("Micro1","Macro","Micro1","Macro","Macro","Macro") col4 <- c("Micro2","Micro1",NA,NA,"Micro1","Micro2") co.prefs <- matrix(c(col12,col3,col4), ncol = 4) res <- hri2(s.prefs=s.prefs, c.prefs=c.prefs, co.prefs=co.prefs, nSlots=c(2,1,1)) res$matching # }