The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

GFM: alternate maximization and information criterion

Wei Liu

2023-08-10

In this tutorial, we show that the alternate maximization (AM) is used in the first step of the two-step estimation method and the information criterion (IC) method is adopted to choose the number of factors.

Fit GFM model using simulated data

The package can be loaded with the command:

library("GFM")
set.seed(1) # set a random seed for reproducibility.

GFM can handle data with homogeneous normal variables

First, we generate the data with homogeneous normal variables.

Then, we set the algorithm parameters and fit model

Third, we fit the GFM model with user-specified number of factors.

The number of factors can also be determined by data-driven manners.

GFM outperforms LFM in analyzing data with heterogeous normal variables

First, we generate the data with heterogeous normal variables and set the parameters of algorithm.

Third, we fit the GFM model with user-specified number of factors and compare the results with that of linear factor models.

The number of factors can also be determined by data-driven manners.

GFM outperforms LFM in analyzing data with Count(Poisson) variables

First, we generate the data with Count(Poisson) variables and set the parameters of algorithm.

Second, we we fit the GFM models given the true number of factors.

Third, we compare the results with that of linear factor models.

GFM outperforms LFM in analyzing data with the mixed-types of count and categorical variables

First, we generate the data with Count(Poisson) variables and set the parameters of algorithm. Then fit the GFM model with user-specified number of factors.

Third, we compare the results with that of linear factor models.

Compare with linear factor models

Session information

sessionInfo()
#> R version 4.1.2 (2021-11-01)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 22621)
#> 
#> Matrix products: default
#> 
#> locale:
#> [1] LC_COLLATE=C                              
#> [2] LC_CTYPE=Chinese (Simplified)_China.936   
#> [3] LC_MONETARY=Chinese (Simplified)_China.936
#> [4] LC_NUMERIC=C                              
#> [5] LC_TIME=Chinese (Simplified)_China.936    
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> loaded via a namespace (and not attached):
#>  [1] digest_0.6.29   R6_2.5.1        jsonlite_1.8.0  magrittr_2.0.3 
#>  [5] evaluate_0.15   stringi_1.7.6   rlang_1.1.0     cli_3.2.0      
#>  [9] rstudioapi_0.13 jquerylib_0.1.4 bslib_0.3.1     rmarkdown_2.11 
#> [13] tools_4.1.2     stringr_1.4.0   xfun_0.29       yaml_2.3.6     
#> [17] fastmap_1.1.0   compiler_4.1.2  htmltools_0.5.2 knitr_1.37     
#> [21] sass_0.4.1

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.