README.md

lpinfer: An R Package for Inference in Linear Programs

Conroy Lau and Alexander Torgovitsky

DOI

Introduction

This package provides a set of methods for estimation and statistical inference on the solutions (optimal values) of linear programs. The motivation is partially identified models. Identified sets in many partially identified models can be characterized by the solutions to two linear programs (one min, one max), with the interval between comprising the whole identified set. The module is designed with this situation as the primary use-case, although it might be of interest in other stochastic programming applications where nonparametric inference is desired.

Installation

lpinfer can be installed from its GitHub repository via

devtools::install_github("conroylau/lpinfer")

Using lpinfer requires having a package for solving linear and quadratic programs. The following options are supported:

  1. (Strongly recommended) Gurobi and the R package gurobi — Gurobi can be downloaded from Gurobi Optimization. A Gurobi software license is required. The license can be obtained at no cost for academic researchers. This guide provides a very clear set of instructions for installing gurobi in R.

  2. IBM ILOG CPLEX Optimization Studio (CPLEX) and one of the R packages below — CPLEX can be downloaded from IBM. A CPLEX software license is required, which can be obtained at no cost for academic researchers. There are two free and open-source R packages that provide APIs to CPLEX, and lpinfer supports both:

    1. Rcplex — the instructions to install the R package can be found here.

    2. cplexAPI — the instructions to install the R package can be found here.

  3. limSolve, a free and open-source package available on CRAN.

  4. lpSolveAPI, another free and open-source package available on CRAN. This package cannot solve quadratic programs, so cannot be used with some of the methods in lpinfer.

Current Features

Planned Features

More inference procedures will be added soon.

Usage

A detailed vignette is available here.

Help, Feature Requests, Bug Reports, and Contributing

Please post an issue on the issues page of the GitHub repository.

If you have developed a procedure that you would like implemented, please contact us. We may be able to work together to include your method.

How to Cite

If you use lpinfer in your research please cite the Zenodo DOI.



conroylau/lpinfer documentation built on Oct. 23, 2022, 9:21 a.m.