Changes

Jump to navigation Jump to search
*GMM: Generalized Method of Moments
*MSM: Markov State ModelMethod of Simulated Moments
*MLE: Maximum Likelihood Estimation
*GA: Genetic Algorithm
*SE:Standard Error
==How to run==
'''error_type''' (currently hard coded as 1 and isn't fully written to support 2): 1 for match specific errors, with the error distribution following an exchangeable structure. var(e) = sig^2, and cov(e,e') = 1/4*sig^2. 2 for agent specific errors, with the error structure of match <i, j> as sig*ei*ej.
 
===strip_*.m (deleted in readjusted code)===
Versions of files that only use the parameters task = 'monte_data', use_solver = 'ga', and estimator = 'MSM' (which apparently are the only solvers and estimators that work, but unverified). Removed because could not handle task = 'data'.
===gmm_2stage_estimation.m===
This is the fitness function. Takes a vector and returns a scalar. GA minimizes this function.
 
===moments.m===
 
Generates the moments needed for the GMM.
==Location/Structure of Data==
'''empirics_match_specific_2nd_stage_ga''':
'''empirics_match_specific_1st_stage_cmaesempirics_match_specific_with_se''': '''type_(error_type)_monte_mktsize_(mktsize)_K_(K)_S_(S)_rep_(montenn)''': ==Bugs== Simulated moments matrix dimension mismatch. This bug (also in the adjusted code) does not allow the "optimal stage" to complete.   Assignment has more non-singleton rhs dimensions than non-singleton subscripts Error in gmm_2stage_estimation (line 65) EV(:, :, m) = EV(:, :, m) + temp2; Error in master (line 513) gmm_2stage_estimation; This is caused because temp2 is 166x166 in monte_data, but nm = M = 1, so EV is 1x1. nm is set to size(M0, 1), but M0 is sometimes a scalar?
This is solved by commenting out mkt_resample.m line 107: % M0 = moments(M, 1, S, K, pv'''empirics_match_specific_2nd_stage_cmaes''':, asg, H, HK, G, FF, Hu, Hd, z1, z2, psa, ps1, ps2, N1, N2)
'''empirics_match_specific_with_se''': Saved if task = 'data'because it returns a scalar, but should return a 166x1 vector.
Better fix notes:The problem is narrowed down to the section of mkt_resample.m before the call to moments. Somehow the parameters to moments are changed such that it returns a scalar. Solution found (I think):monte_M cannot be set to 1. For values greater than 1, the program seems to work. It doesn't crash, anyway. ==Profiling== Ran first iteration with task='monte'type_(error_type)_monte_mktsize_(mktsize)_K_(K)_S_(S)_rep_(montenn), use_solver='ga', estimator='MSM', gurobi output disabled (took 42 sec to finish 1st iteration) [[File:Unobserved comp profile monte.png]] Monte_data and monte run much faster than data, because data is so large. ==Notes== There is a lot of unused code. For example, monte_std and monte_x seem to only be assigned, not used.

Navigation menu