---------------------------------------------- lines 6-149 of file: example/max_fit_option.py ---------------------------------------------- {xrst_begin_parent max_fit_option} {xrst_spell dage dtime } Example Using max_fit Option ############################ For this example everything is constant in age and time. Nodes ***** The following is a diagram of the node tree for this example. The :ref:`glossary@root_node` is n0, the :ref:`glossary@fit_goal_set` is {n3, n4, n5, n6}, and the leaf nodes are {n3, n4, n5, n6}:: n0 /-----/\-----\ n1 (n2) / \ / \ (n3) (n4) n5 n6 fit_goal_set ============ {xrst_literal # BEGIN fit_goal_set # END fit_goal_set } Rates ***** The only non-zero dismod_at rate for this example is :ref:`glossary@iota`. Covariate ********* There are no covariates for this example. Simulated Data ************** Random Seed =========== The random seed can be used to reproduce results. If the original value of this setting is zero, the clock is used get a random seed. The actual value or *random_seed* is always printed. {xrst_literal # BEGIN random_seed # END random_seed } rate_true(rate, a, t, n, c) =========================== For *rate* equal to iota, this is the true value for *rate* in node *n* at age *a*, time *t*, and covariate values *c*. The values *a*, *t*. *c*, are not used by this function for this example. {xrst_literal # BEGIN rate_true # END rate_true } y_i === The only simulated integrand for this example is :ref:`glossary@Sincidence` which is a direct measurement of iota. This data is simulated without any noise; i.e., the i-th measurement is simulated as *y_i = rate_true('iota', None, None, n_i, None)* where *n_i* is the node. The data is modeled as having noise even though there is no simulated noise. n_i === Data is only simulated for the leaf nodes; i.e., each *n_i* is in the set { n3, n4, n5, n6 }. Since the data does not have any nose, the data residuals are a measure of how good the fit is for the nodes in the fit_goal_set. max_fit_option ************** This is the value of the :ref:`option_all_table@max_fit` option. It is also the number of data values per leaf. Thus the leaf nodes fit all their data while the other nodes only fit a randomly chosen subset of their data. {xrst_literal # BEGIN max_fit_option # END max_fit_option } perturb_optimization_scale ************************** This is the value of the :ref:`option_all_table@perturb_optimization_scale` option. It is only included as an example of using this option and is not necessary. {xrst_literal # BEGIN perturb_optimization_scale # END perturb_optimization_scale } Parent Rate Smoothing ********************* This is the iota smoothing used for the fit_node. There are no :ref:`glossary@dage` or :ref:`glossary@dtime` priors because there is only one age and one time point. Value Prior =========== The following is the value prior used for the root_node {xrst_literal # BEGIN parent_value_prior # END parent_value_prior } The mean and standard deviation are only used for the root_node. The :ref:`create_shift_db-name` routine replaces them for other nodes. Child Rate Smoothing ******************** This is the smoothing used for the random effect for each child of the fit_node. There are no dage or dtime priors because there is only one age and one time point in this smoothing. Value Prior =========== The following is the value prior used for the children of the fit_node: {xrst_literal # BEGIN child_value_prior # END child_value_prior } Checking The Fit **************** The results of the fit are checked by check_cascade_node using the :ref:`check_cascade_node@avgint_table` that was created by the root_node_db routine. The node_id for each row is replaced by the node_id for the fit being checked. routine uses these tables to check that fit against the truth. {xrst_end max_fit_option}