Skip to content

Conversation

@szimmer
Copy link

@szimmer szimmer commented Nov 20, 2020

This pull request does the following:

  1. Updates ggplot code in ipu function so there is no warning present
  2. Outputs the convergence status from the ipu function which is useful when saving output

No need to call `weight_factor` using `primary_seed$weight_factor` within ggplot2. This adds an annoying warning but now will have same behavior but no warning.
Add the converged status to the output of the ipu function.
@szimmer
Copy link
Author

szimmer commented Nov 30, 2020

Example using ipfr from CRAN

library(ipfr)
library(tidyverse)

hh_seed <- tibble(
  geo_region = 1,
  id = c(1:8),
  hhsiz = c(1, 1, 1, 2, 2, 2, 2, 2),
  hhveh = c(0, 2, 1, 1, 1, 2, 1, 0)
)

hh_targets <- list()
hh_targets$hhsiz <- tibble(
  geo_region = 1,
  `1` = 35,
  `2` = 65
)
hh_targets$hhveh <- tibble(
  geo_region = 1,
  `0` = 100,
  `1` = 100,
  `2` = 100
)

result <- ipu(hh_seed, hh_targets, max_iterations = 30, verbose = TRUE)
#> Scaling target tables:  hhveh
#>  Finished iteration  2 . %RMSE =  9.044233 Finished iteration  3 . %RMSE =  0.4706742 Finished iteration  4 . %RMSE =  0.02385747 Finished iteration  5 . %RMSE =  0.001207629
#> 
#> IPU converged
#> All targets matched within the absolute_diff of 10
result
#> $weight_tbl
#> # A tibble: 8 x 7
#>   geo_region    id hhsiz hhveh weight avg_weight weight_factor
#>        <dbl> <int> <dbl> <dbl>  <dbl>      <dbl>         <dbl>
#> 1          1     1     1     0  14.2        12.5         1.14 
#> 2          1     2     1     2  14.2        12.5         1.14 
#> 3          1     3     1     1   6.61       12.5         0.529
#> 4          1     4     2     1   8.91       12.5         0.713
#> 5          1     5     2     1   8.91       12.5         0.713
#> 6          1     6     2     2  19.1        12.5         1.53 
#> 7          1     7     2     1   8.91       12.5         0.713
#> 8          1     8     2     0  19.1        12.5         1.53 
#> 
#> $weight_dist
#> Warning: Use of `primary_seed$weight_factor` is discouraged. Use `weight_factor`
#> instead.

#> 
#> $primary_comp
#> # A tibble: 5 x 6
#>   geography    category target result  diff pct_diff
#>   <chr>        <chr>     <dbl>  <dbl> <dbl>    <dbl>
#> 1 geo_region_1 hhsiz_1    35     35.0     0        0
#> 2 geo_region_1 hhsiz_2    65     65.0     0        0
#> 3 geo_region_1 hhveh_0    33.3   33.3     0        0
#> 4 geo_region_1 hhveh_1    33.3   33.3     0        0
#> 5 geo_region_1 hhveh_2    33.3   33.3     0        0

Created on 2020-11-30 by the reprex package (v0.3.0)

Session info
devtools::session_info()
#> - Session info ---------------------------------------------------------------
#>  setting  value                       
#>  version  R version 4.0.3 (2020-10-10)
#>  os       Windows 10 x64              
#>  system   x86_64, mingw32             
#>  ui       RTerm                       
#>  language (EN)                        
#>  collate  English_United States.1252  
#>  ctype    English_United States.1252  
#>  tz       America/New_York            
#>  date     2020-11-30                  
#> 
#> - Packages -------------------------------------------------------------------
#>  package      * version date       lib source        
#>  assertthat     0.2.1   2019-03-21 [1] CRAN (R 4.0.2)
#>  backports      1.2.0   2020-11-02 [1] CRAN (R 4.0.3)
#>  BBmisc         1.11    2017-03-10 [1] CRAN (R 4.0.3)
#>  broom          0.7.2   2020-10-20 [1] CRAN (R 4.0.3)
#>  callr          3.5.1   2020-10-13 [1] CRAN (R 4.0.3)
#>  cellranger     1.1.0   2016-07-27 [1] CRAN (R 4.0.2)
#>  checkmate      2.0.0   2020-02-06 [1] CRAN (R 4.0.2)
#>  cli            2.0.2   2020-02-28 [1] CRAN (R 4.0.2)
#>  colorspace     2.0-0   2020-11-11 [1] CRAN (R 4.0.3)
#>  crayon         1.3.4   2017-09-16 [1] CRAN (R 4.0.2)
#>  curl           4.3     2019-12-02 [1] CRAN (R 4.0.2)
#>  data.table     1.13.0  2020-07-24 [1] CRAN (R 4.0.2)
#>  DBI            1.1.0   2019-12-15 [1] CRAN (R 4.0.2)
#>  dbplyr         2.0.0   2020-11-03 [1] CRAN (R 4.0.3)
#>  desc           1.2.0   2018-05-01 [1] CRAN (R 4.0.2)
#>  devtools       2.3.2   2020-09-18 [1] CRAN (R 4.0.3)
#>  digest         0.6.27  2020-10-24 [1] CRAN (R 4.0.3)
#>  dplyr        * 1.0.2   2020-08-18 [1] CRAN (R 4.0.2)
#>  ellipsis       0.3.1   2020-05-15 [1] CRAN (R 4.0.2)
#>  evaluate       0.14    2019-05-28 [1] CRAN (R 4.0.2)
#>  fansi          0.4.1   2020-01-08 [1] CRAN (R 4.0.2)
#>  farver         2.0.3   2020-01-16 [1] CRAN (R 4.0.2)
#>  fastmatch      1.1-0   2017-01-28 [1] CRAN (R 4.0.3)
#>  forcats      * 0.5.0   2020-03-01 [1] CRAN (R 4.0.2)
#>  fs             1.5.0   2020-07-31 [1] CRAN (R 4.0.2)
#>  generics       0.1.0   2020-10-31 [1] CRAN (R 4.0.3)
#>  ggplot2      * 3.3.2   2020-06-19 [1] CRAN (R 4.0.2)
#>  glue           1.4.2   2020-08-27 [1] CRAN (R 4.0.3)
#>  gtable         0.3.0   2019-03-25 [1] CRAN (R 4.0.2)
#>  haven          2.3.1   2020-06-01 [1] CRAN (R 4.0.2)
#>  highr          0.8     2019-03-20 [1] CRAN (R 4.0.2)
#>  hms            0.5.3   2020-01-08 [1] CRAN (R 4.0.2)
#>  htmltools      0.5.0   2020-06-16 [1] CRAN (R 4.0.2)
#>  httr           1.4.2   2020-07-20 [1] CRAN (R 4.0.2)
#>  ipfr         * 1.0.2   2020-04-01 [1] CRAN (R 4.0.3)
#>  jsonlite       1.7.1   2020-09-07 [1] CRAN (R 4.0.2)
#>  knitr          1.30    2020-09-22 [1] CRAN (R 4.0.3)
#>  labeling       0.4.2   2020-10-20 [1] CRAN (R 4.0.3)
#>  lattice        0.20-41 2020-04-02 [2] CRAN (R 4.0.3)
#>  lifecycle      0.2.0   2020-03-06 [1] CRAN (R 4.0.2)
#>  lubridate      1.7.9.2 2020-11-13 [1] CRAN (R 4.0.3)
#>  magrittr       2.0.1   2020-11-17 [1] CRAN (R 4.0.3)
#>  Matrix         1.2-18  2019-11-27 [2] CRAN (R 4.0.3)
#>  memoise        1.1.0   2017-04-21 [1] CRAN (R 4.0.3)
#>  mime           0.9     2020-02-04 [1] CRAN (R 4.0.0)
#>  mlr            2.18.0  2020-10-05 [1] CRAN (R 4.0.3)
#>  modelr         0.1.8   2020-05-19 [1] CRAN (R 4.0.2)
#>  munsell        0.5.0   2018-06-12 [1] CRAN (R 4.0.2)
#>  parallelMap    1.5.0   2020-03-26 [1] CRAN (R 4.0.3)
#>  ParamHelpers   1.14    2020-03-24 [1] CRAN (R 4.0.3)
#>  pillar         1.4.7   2020-11-20 [1] CRAN (R 4.0.3)
#>  pkgbuild       1.1.0   2020-07-13 [1] CRAN (R 4.0.2)
#>  pkgconfig      2.0.3   2019-09-22 [1] CRAN (R 4.0.2)
#>  pkgload        1.1.0   2020-05-29 [1] CRAN (R 4.0.2)
#>  prettyunits    1.1.1   2020-01-24 [1] CRAN (R 4.0.2)
#>  processx       3.4.4   2020-09-03 [1] CRAN (R 4.0.3)
#>  ps             1.4.0   2020-10-07 [1] CRAN (R 4.0.3)
#>  purrr        * 0.3.4   2020-04-17 [1] CRAN (R 4.0.2)
#>  R6             2.5.0   2020-10-28 [1] CRAN (R 4.0.3)
#>  Rcpp           1.0.5   2020-07-06 [1] CRAN (R 4.0.2)
#>  readr        * 1.4.0   2020-10-05 [1] CRAN (R 4.0.3)
#>  readxl         1.3.1   2019-03-13 [1] CRAN (R 4.0.2)
#>  remotes        2.2.0   2020-07-21 [1] CRAN (R 4.0.2)
#>  reprex         0.3.0   2019-05-16 [1] CRAN (R 4.0.3)
#>  rlang          0.4.8   2020-10-08 [1] CRAN (R 4.0.3)
#>  rmarkdown      2.5     2020-10-21 [1] CRAN (R 4.0.3)
#>  rprojroot      2.0.2   2020-11-15 [1] CRAN (R 4.0.3)
#>  rvest          0.3.6   2020-07-25 [1] CRAN (R 4.0.2)
#>  scales         1.1.1   2020-05-11 [1] CRAN (R 4.0.2)
#>  sessioninfo    1.1.1   2018-11-05 [1] CRAN (R 4.0.3)
#>  stringi        1.5.3   2020-09-09 [1] CRAN (R 4.0.3)
#>  stringr      * 1.4.0   2019-02-10 [1] CRAN (R 4.0.2)
#>  survival       3.2-7   2020-09-28 [2] CRAN (R 4.0.3)
#>  testthat       3.0.0   2020-10-31 [1] CRAN (R 4.0.3)
#>  tibble       * 3.0.4   2020-10-12 [1] CRAN (R 4.0.3)
#>  tidyr        * 1.1.2   2020-08-27 [1] CRAN (R 4.0.2)
#>  tidyselect     1.1.0   2020-05-11 [1] CRAN (R 4.0.2)
#>  tidyverse    * 1.3.0   2019-11-21 [1] CRAN (R 4.0.3)
#>  usethis        1.6.3   2020-09-17 [1] CRAN (R 4.0.3)
#>  utf8           1.1.4   2018-05-24 [1] CRAN (R 4.0.2)
#>  vctrs          0.3.5   2020-11-17 [1] CRAN (R 4.0.3)
#>  withr          2.3.0   2020-09-22 [1] CRAN (R 4.0.3)
#>  xfun           0.19    2020-10-30 [1] CRAN (R 4.0.3)
#>  xml2           1.3.2   2020-04-23 [1] CRAN (R 4.0.2)
#>  yaml           2.2.1   2020-02-01 [1] CRAN (R 4.0.2)
#> 
#> [1] ../R/win-library/4.0
#> [2] ../R/R-4.0.3/library

Example using updated version (no warning)

library(ipfr)
library(tidyverse)

hh_seed <- tibble(
  geo_region = 1,
  id = c(1:8),
  hhsiz = c(1, 1, 1, 2, 2, 2, 2, 2),
  hhveh = c(0, 2, 1, 1, 1, 2, 1, 0)
)

hh_targets <- list()
hh_targets$hhsiz <- tibble(
  geo_region = 1,
  `1` = 35,
  `2` = 65
)
hh_targets$hhveh <- tibble(
  geo_region = 1,
  `0` = 100,
  `1` = 100,
  `2` = 100
)

result <- ipu(hh_seed, hh_targets, max_iterations = 30, verbose = TRUE)
#> Scaling target tables:  hhveh
#>  Finished iteration  2 . %RMSE =  9.044233 Finished iteration  3 . %RMSE =  0.4706742 Finished iteration  4 . %RMSE =  0.02385747 Finished iteration  5 . %RMSE =  0.001207629
#> 
#> IPU converged
#> All targets matched within the absolute_diff of 10
result
#> $weight_tbl
#> # A tibble: 8 x 7
#>   geo_region    id hhsiz hhveh weight avg_weight weight_factor
#>        <dbl> <int> <dbl> <dbl>  <dbl>      <dbl>         <dbl>
#> 1          1     1     1     0  14.2        12.5         1.14 
#> 2          1     2     1     2  14.2        12.5         1.14 
#> 3          1     3     1     1   6.61       12.5         0.529
#> 4          1     4     2     1   8.91       12.5         0.713
#> 5          1     5     2     1   8.91       12.5         0.713
#> 6          1     6     2     2  19.1        12.5         1.53 
#> 7          1     7     2     1   8.91       12.5         0.713
#> 8          1     8     2     0  19.1        12.5         1.53 
#> 
#> $weight_dist

#> 
#> $primary_comp
#> # A tibble: 5 x 6
#>   geography    category target result  diff pct_diff
#>   <chr>        <chr>     <dbl>  <dbl> <dbl>    <dbl>
#> 1 geo_region_1 hhsiz_1    35     35.0     0        0
#> 2 geo_region_1 hhsiz_2    65     65.0     0        0
#> 3 geo_region_1 hhveh_0    33.3   33.3     0        0
#> 4 geo_region_1 hhveh_1    33.3   33.3     0        0
#> 5 geo_region_1 hhveh_2    33.3   33.3     0        0
#> 
#> $converged
#> [1] TRUE

Created on 2020-11-30 by the reprex package (v0.3.0)

Session info
devtools::session_info()
#> - Session info ---------------------------------------------------------------
#>  setting  value                       
#>  version  R version 4.0.3 (2020-10-10)
#>  os       Windows 10 x64              
#>  system   x86_64, mingw32             
#>  ui       RTerm                       
#>  language (EN)                        
#>  collate  English_United States.1252  
#>  ctype    English_United States.1252  
#>  tz       America/New_York            
#>  date     2020-11-30                  
#> 
#> - Packages -------------------------------------------------------------------
#>  package      * version date       lib source                       
#>  assertthat     0.2.1   2019-03-21 [1] CRAN (R 4.0.0)               
#>  backports      1.1.6   2020-04-05 [1] CRAN (R 4.0.0)               
#>  BBmisc         1.11    2017-03-10 [1] CRAN (R 4.0.3)               
#>  blob           1.2.1   2020-01-20 [1] CRAN (R 4.0.0)               
#>  broom          0.7.1   2020-10-02 [1] CRAN (R 4.0.2)               
#>  callr          3.4.3   2020-03-28 [1] CRAN (R 4.0.0)               
#>  cellranger     1.1.0   2016-07-27 [1] CRAN (R 4.0.0)               
#>  checkmate      2.0.0   2020-02-06 [1] CRAN (R 4.0.2)               
#>  cli            2.0.2   2020-02-28 [1] CRAN (R 4.0.0)               
#>  colorspace     1.4-1   2019-03-18 [1] CRAN (R 4.0.0)               
#>  crayon         1.3.4   2017-09-16 [1] CRAN (R 4.0.0)               
#>  curl           4.3     2019-12-02 [1] CRAN (R 4.0.0)               
#>  data.table     1.12.8  2019-12-09 [1] CRAN (R 4.0.0)               
#>  DBI            1.1.0   2019-12-15 [1] CRAN (R 4.0.0)               
#>  dbplyr         1.4.4   2020-05-27 [1] CRAN (R 4.0.3)               
#>  desc           1.2.0   2018-05-01 [1] CRAN (R 4.0.0)               
#>  devtools       2.3.0   2020-04-10 [1] CRAN (R 4.0.0)               
#>  digest         0.6.25  2020-02-23 [1] CRAN (R 4.0.0)               
#>  dplyr        * 1.0.2   2020-08-18 [1] CRAN (R 4.0.3)               
#>  ellipsis       0.3.1   2020-05-15 [1] CRAN (R 4.0.2)               
#>  evaluate       0.14    2019-05-28 [1] CRAN (R 4.0.0)               
#>  fansi          0.4.1   2020-01-08 [1] CRAN (R 4.0.0)               
#>  farver         2.0.3   2020-01-16 [1] CRAN (R 4.0.0)               
#>  fastmatch      1.1-0   2017-01-28 [1] CRAN (R 4.0.3)               
#>  forcats      * 0.5.0   2020-03-01 [1] CRAN (R 4.0.0)               
#>  fs             1.4.1   2020-04-04 [1] CRAN (R 4.0.0)               
#>  generics       0.0.2   2018-11-29 [1] CRAN (R 4.0.0)               
#>  ggplot2      * 3.3.2   2020-06-19 [1] CRAN (R 4.0.3)               
#>  glue           1.4.1   2020-05-13 [1] CRAN (R 4.0.2)               
#>  gtable         0.3.0   2019-03-25 [1] CRAN (R 4.0.0)               
#>  haven          2.3.1   2020-06-01 [1] CRAN (R 4.0.3)               
#>  highr          0.8     2019-03-20 [1] CRAN (R 4.0.0)               
#>  hms            0.5.3   2020-01-08 [1] CRAN (R 4.0.0)               
#>  htmltools      0.4.0   2019-10-04 [1] CRAN (R 4.0.0)               
#>  httr           1.4.2   2020-07-20 [1] CRAN (R 4.0.2)               
#>  ipfr         * 1.0.2   2020-11-20 [1] Github (szimmer/ipfr@c764fde)
#>  jsonlite       1.7.1   2020-09-07 [1] CRAN (R 4.0.3)               
#>  knitr          1.28    2020-02-06 [1] CRAN (R 4.0.0)               
#>  labeling       0.3     2014-08-23 [1] CRAN (R 4.0.0)               
#>  lattice        0.20-41 2020-04-02 [2] CRAN (R 4.0.3)               
#>  lifecycle      0.2.0   2020-03-06 [1] CRAN (R 4.0.0)               
#>  lubridate      1.7.9   2020-06-08 [1] CRAN (R 4.0.3)               
#>  magrittr       1.5     2014-11-22 [1] CRAN (R 4.0.0)               
#>  Matrix         1.2-18  2019-11-27 [2] CRAN (R 4.0.3)               
#>  memoise        1.1.0   2017-04-21 [1] CRAN (R 4.0.0)               
#>  mime           0.9     2020-02-04 [1] CRAN (R 4.0.0)               
#>  mlr            2.18.0  2020-10-05 [1] CRAN (R 4.0.3)               
#>  modelr         0.1.8   2020-05-19 [1] CRAN (R 4.0.3)               
#>  munsell        0.5.0   2018-06-12 [1] CRAN (R 4.0.0)               
#>  parallelMap    1.5.0   2020-03-26 [1] CRAN (R 4.0.3)               
#>  ParamHelpers   1.14    2020-03-24 [1] CRAN (R 4.0.3)               
#>  pillar         1.4.6   2020-07-10 [1] CRAN (R 4.0.2)               
#>  pkgbuild       1.0.6   2019-10-09 [1] CRAN (R 4.0.0)               
#>  pkgconfig      2.0.3   2019-09-22 [1] CRAN (R 4.0.0)               
#>  pkgload        1.0.2   2018-10-29 [1] CRAN (R 4.0.0)               
#>  prettyunits    1.1.1   2020-01-24 [1] CRAN (R 4.0.0)               
#>  processx       3.4.2   2020-02-09 [1] CRAN (R 4.0.0)               
#>  ps             1.3.2   2020-02-13 [1] CRAN (R 4.0.0)               
#>  purrr        * 0.3.4   2020-04-17 [1] CRAN (R 4.0.0)               
#>  R6             2.4.1   2019-11-12 [1] CRAN (R 4.0.0)               
#>  Rcpp           1.0.5   2020-07-06 [1] CRAN (R 4.0.2)               
#>  readr        * 1.4.0   2020-10-05 [1] CRAN (R 4.0.3)               
#>  readxl         1.3.1   2019-03-13 [1] CRAN (R 4.0.0)               
#>  remotes        2.1.1   2020-02-15 [1] CRAN (R 4.0.0)               
#>  reprex         0.3.0   2019-05-16 [1] CRAN (R 4.0.0)               
#>  rlang          0.4.8   2020-10-08 [1] CRAN (R 4.0.3)               
#>  rmarkdown      2.3     2020-06-18 [1] CRAN (R 4.0.2)               
#>  rprojroot      1.3-2   2018-01-03 [1] CRAN (R 4.0.0)               
#>  rvest          0.3.6   2020-07-25 [1] CRAN (R 4.0.2)               
#>  scales         1.1.0   2019-11-18 [1] CRAN (R 4.0.0)               
#>  sessioninfo    1.1.1   2018-11-05 [1] CRAN (R 4.0.0)               
#>  stringi        1.4.6   2020-02-17 [1] CRAN (R 4.0.0)               
#>  stringr      * 1.4.0   2019-02-10 [1] CRAN (R 4.0.0)               
#>  survival       3.2-7   2020-09-28 [2] CRAN (R 4.0.3)               
#>  testthat       2.3.2   2020-03-02 [1] CRAN (R 4.0.0)               
#>  tibble       * 3.0.4   2020-10-12 [1] CRAN (R 4.0.3)               
#>  tidyr        * 1.1.2   2020-08-27 [1] CRAN (R 4.0.3)               
#>  tidyselect     1.1.0   2020-05-11 [1] CRAN (R 4.0.2)               
#>  tidyverse    * 1.3.0   2019-11-21 [1] CRAN (R 4.0.2)               
#>  usethis        1.6.1   2020-04-29 [1] CRAN (R 4.0.2)               
#>  utf8           1.1.4   2018-05-24 [1] CRAN (R 4.0.0)               
#>  vctrs          0.3.2   2020-07-15 [1] CRAN (R 4.0.2)               
#>  withr          2.2.0   2020-04-20 [1] CRAN (R 4.0.0)               
#>  xfun           0.13    2020-04-13 [1] CRAN (R 4.0.0)               
#>  xml2           1.3.2   2020-04-23 [1] CRAN (R 4.0.0)               
#>  yaml           2.2.1   2020-02-01 [1] CRAN (R 4.0.0)               
#> 
#> [1] ../R/win-library/4.0
#> [2] ../R/R-4.0.3/library

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant