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==
'''task:''' Can take the values {'data', 'monte', 'monte_data'}.
'''estimator:''' Can take the values {'MSM'}.(other estimators removed in readjusted code)
'''use_solver:''' Can take the values {'ga'}.(other solvers removed in readjusted code)
'''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_mastergmm_2stage_estimation.m (deleted in readjusted code)===Seems to be a version Does the majority of masterthe work for this problem.m that only uses Runs the GA, saves the parameters task = results to 'monte_dataempirics_match_specific_1st_stage_ga', use_solver = 'ga'then runs it again with different globals, and estimator = saves it to 'MSMempirics_match_specific_2nd_stage_ga' (which apparently are the only values that work for master. ===nonlinearcons_msm.m=== Constraints on GA. For [c, but unverifiedceq] = nonlinearcons_msm(x), GA constrains x such that c ≤ 0 and ceq = 0. c and ceq are row vectors when there are multiple constraints. ceq is unused for our purposes.
===msmf_corr_coeff.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', asg, H, HK, G, FF, Hu, Hd, z1, z2, psa, ps1, ps2, N1, N2)  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.
'''empirics_match_specific_2nd_stage_cmaes''':==Profiling==
Ran first iteration with task='monte', use_solver='empirics_match_specific_with_se'ga'': Saved if task , estimator= 'dataMSM', gurobi output disabled (took 42 sec to finish 1st iteration)
'''type_(error_type)_monte_mktsize_(mktsize)_K_(K)_S_(S)_rep_(montenn)'''[[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