Skip to content
/ ipfr Public
forked from wsp-sag/ipfr

Generic expansion of seed distribution to marginal targets

Notifications You must be signed in to change notification settings

dkyleward/ipfr

 
 

Repository files navigation

CRAN status Travis build status Codecov test coverage

ipfr

A package for iterative proportional fitting on multiple marginal distributions in R. The goal of this package is to make survey raking, matrix balancing, and population synthesis easier.

Installation

Install the latest official version from CRAN:

install.packages("ipfr")

Install the development version of the package:

library(devtools)
install_github("dkyleward/ipfr", build_vignettes = TRUE)

Basic Usage

(See vignettes at the bottom for advanced topics.)

A basic matrix balance task:

mtx <- matrix(data = runif(9), nrow = 3, ncol = 3)
row_targets <- c(3, 4, 5)
column_targets <- c(5, 4, 3)
result <- ipu_matrix(mtx, row_targets, column_targets)

A basic survey balance task:

survey <- tibble(
  size = c(1, 2, 1, 1),
  autos = c(0, 2, 2, 1),
  weight = 1
)
targets <- list()
targets$size <- tibble(
  `1` = 75,
  `2` = 25
)
targets$autos <- tibble(
  `0` = 25,
  `1` = 50,
  `2` = 25
)
result <- ipu(survey, targets)

Creating synthetic households from the ipu() result:

synthesize(result$weight_tbl)

Vignettes

Using ipfr: https://cran.r-project.org/web/packages/ipfr/vignettes/using_ipfr.html
Common ipf problems: https://cran.r-project.org/web/packages/ipfr/vignettes/common_ipf_problems.html

About

Generic expansion of seed distribution to marginal targets

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • R 100.0%