| adapt_pic_with_sigma2maxmodel | Adapts the object that contains PIC for all candidate C's and all subsamples with sigma2_max_model. |
| adapt_X_estimating_less_variables | When running the algorithm with a different number of observable variables then the number that is available, reformat X. (Mainly used for testing) |
| add_configuration | Adds the current configuration (number of groups and factors) to df_results. |
| add_metrics | Adds several metrics to df_results. |
| add_pic | Fills in df_pic: adds a row with the calculated PIC for the current configuration. |
| add_pic_parallel | Calculates the PIC for the current configuration. |
| beta_true_heterogroups | Helpfunction in create_true_beta() for the option beta_true_heterogeneous_groups. (This is the default option.) |
| calculate_best_config | Function that returns for each candidate C the best number of groups and factors, based on the PIC. |
| calculate_errors_virtual_groups | Helpfunction for update_g(). Calculates the errors for one of the possible groups time series can be placed in. |
| calculate_error_term | Calculates the error term Y - X*beta_est - LF - LgFg. |
| calculate_FL_group_estimated | Returns the estimated groupfactorstructure. |
| calculate_FL_group_true | Calculate the true groupfactorstructure. |
| calculate_lambda | calculates factor loadings of common factors |
| calculate_lambda_group | calculates factor loadings of groupfactors |
| calculate_lgfg | Calculates the group factor structure: the matrix product of the group factors and their loadings. |
| calculate_obj_for_g | Calculates objective function for individual i and group k in order to estimate group membership. |
| calculate_PIC | Function to determine PIC (panel information criterium) |
| calculate_PIC_term1 | Function to calculate the first term of PIC (panel information criterium) |
| calculate_sigma2 | Calculates sum of squared errors, divided by NT |
| calculate_sigma2maxmodel | Calculates sigma2maxmodel |
| calculate_TN_factor | Helpfunction. Calculates part of the 4th term of the PIC. |
| calculate_VCsquared | Calculates VC², to determine the stability of the found number of groups and factors over the subsamples. |
| calculate_virtual_factor_and_lambda_group | Helpfunction used in update_g() |
| calculate_W | Calculates W = Y - X*beta_est. It is used in the initialization step of the algorithm, to initialise the factorstructures. |
| calculate_XB_estimated | Calculates (the estimated value of) the matrix X*beta_est. |
| calculate_XB_true | Calculates the product of X*beta_true . |
| calculate_Z_common | Calculates Z = Y - X*beta_est - LgFg. It is used in the estimate of the common factorstructure. |
| calculate_Z_group | Calculates Z = Y - X*beta_est - LF. It is used to estimate the groupfactorstructure. |
| check_stopping_rules | Checks the rules for stopping the algorithm, based on its convergence speed. |
| clustering_with_robust_distances | Function that puts individuals in a separate "class zero", when their distance to all possible groups is bigger then a certain threshold. |
| create_covMat_crosssectional_dependence | Function used in generating simulated data with non normal errors. |
| create_data_dgp2 | Creates an instance of DGP 2, as defined in Boudt and Heyndels (2022). |
| create_true_beta | Creates beta_true, which contains the true values of beta (= the coefficients of X) |
| define_configurations | Constructs dataframe where the rows contains all configurations that are included and for which the estimators will be estimated. |
| define_C_candidates | Defines the candidate values for C. |
| define_kg_candidates | Defines the set of combinations of group specific factors. |
| define_number_subsets | Returns a vector with the indices of the subsets. Must start with zero. |
| define_object_for_initial_clustering_macropca | Defines the object that will be used to define a initial clustering. |
| define_rho_parameters | Determines parameters of rho-function. |
| determine_beta | Helpfunction in estimate_beta() for estimating beta_est. |
| determine_robust_lambda | Help-function for return_robust_lambdaobject(). |
| df_results_example | An example for df_results. This dataframe contains the estimators for each configuration. |
| do_we_estimate_common_factors | Helpfunction to shorten code: are common factors being estimated. |
| do_we_estimate_group_factors | Helpfunction to shorten code: are group factors being estimated. |
| estimate_algorithm | This function is a wrapper around the initialization and the estimation part of the algorithm, for one configuration. It is only used for the serialized algorithm. |
| estimate_beta | Estimates beta. |
| estimate_factor | Estimates common factor(s) F. |
| estimate_factor_group | Estimates group factors Fg. |
| evade_crashes_macropca | Solves a very specific issue with MacroPCA. |
| evade_floating_point_errors | Function to evade floating point errors. |
| factor_group_true_dgp3 | factor_group_true_dgp3 contains the values of the true group factors on which Y_dgp3 is based |
| fill_rc | Fills in the optimized number of common factors for each C. |
| fill_rcj | Fills in the optimized number of groups and group specific factors for each C. |
| final_estimations_filter_kg | Filters dataframe on the requested group specific factors configuration. |
| generate_grouped_factorstructure | Generates the true groupfactorstructure, to use in simulations. |
| generate_Y | Generate panel data Y for simulations. |
| get_best_configuration | Finds the first stable interval after the first unstable point. It then defines the value for C for the begin, middle and end of this interval. |
| get_convergence_speed | Defines the convergence speed. |
| get_final_estimation | Function that returns the final clustering, based on the estimated number of groups and common and group specific factors. |
| grid_add_variables | Function which is used to have a dataframe (called "grid") with data (individualindex, timeindex, XT and LF) available. |
| g_true_dgp3 | g_true_dgp3 contains the true group memberships of the elements of Y_dgp3 |
| handleNA | Function with as input a dataframe. (this will be "Y" or "to_divide") It filters out rows with NA. |
| handleNA_LG | Removes NA's in LG (in function calculate_virtual_factor_and_lambda_group() ) |
| handle_macropca_errors | Helpfunction in robustpca(). |
| initialise_beta | Initialisation of estimation of beta (the coefficients with the observable variables) |
| initialise_clustering | Function that clusters time series in a dataframe with kmeans. |
| initialise_commonfactorstructure_macropca | Initialises the estimation of the common factors and their loadings. |
| initialise_df_pic | Initialises a dataframe which will contain the PIC for each configuration and for each value of C. |
| initialise_df_results | Initialises a dataframe that will contain an overview of metrics for each estimated configuration (for example adjusted randindex). |
| initialise_rc | Initialises rc. |
| initialise_rcj | Initialises rcj. |
| initialise_X | Creates X (the observable variables) to use in simulations. |
| iterate | Wrapper around estimate_beta(), update_g(), and estimating the factorstructures. |
| kg_candidates_expand | Function that returns the set of combinations of groupfactors for which the algorithm needs to run. |
| lambda_group_true_dgp3 | lambda_group_true_dgp3 contains the values of the loadings to the group factors on which Y_dgp3 is based |
| LMROB | Wrapper around lmrob. |
| make_df_pic_parallel | Makes a dataframe with the PIC for each configuration and each candidate C. |
| make_df_results_parallel | Makes a dataframe with information on each configuration. |
| make_subsamples | Selects a subsample of the time series, and of the length of the time series. Based on this it returns a list with a subsample of Y, the corresponding subsample of X and of the true group membership and factorstructures if applicable. |
| matrixnorm | Function to calculate the norm of a matrix. |
| OF_vectorized3 | Calculates objective function for the classical algorithm: used in iterate() and in local_search. |
| OF_vectorized_helpfunction3 | Helpfunction in OF_vectorized3() |
| parallel_algorithm | Wrapper of the loop over the subsets which in turn use the parallelised algorithm. |
| plot_VCsquared | Plots expression(VC^2) along with the corresponding number of groups (orange), common factors (darkblue) and group factors of the first group (lightblue). |
| prepare_for_robpca | Helpfunction: prepares object to perform robust PCA on. |
| RCTS | RCTS |
| reassign_if_empty_groups | Randomly reassign individual(s) if there are empty groups. This can happen if the total number of time series is low compared to the number of desired groups. |
| restructure_X_to_order_slowN_fastT | Restructures X (which is an 3D-array of dimensions (N,T,p) to a 2D-matrix of dimension (NxT,p). |
| return_robust_lambdaobject | Calculates robust loadings |
| robustpca | Function that uses robust PCA and estimates robust factors and loadings. |
| run_config | Wrapper around the non-parallel algorithm, to estimate beta, group membership and the factorstructures. |
| scaling_X | Scaling of X. |
| solveFG | Helpfunction in update_g(), to calculate solve(FG x t(FG)) x FG |
| tabulate_potential_C | Shows the configurations for potential C's of the first stable interval (beginpoint, middlepoint and endpoint) |
| update_g | Function that estimates group membership. |
| X_dgp3 | The dataset X_dgp3 contains the values of the 3 observable variables on which Y_dgp3 is based. |
| Y_dgp3 | Y_dgp3 contains a simulated dataset for DGP 3. |