def f_x(i_1, i_2): return np.random.uniform(-np.sqrt(3), np.sqrt(3)) net.new_edge_covariate(name).from_binary_function_ind(f_x) # Initialize data (block)model from base model class_probs = np.random.dirichlet(np.repeat(params['class_conc'], params['K'])) z = np.where(np.random.multinomial(1, class_probs, params['N']) == 1)[1] net.new_node_covariate_int('z_true')[:] = z data_model = Blockmodel(data_base_model, params['K'], 'z_true') Theta = np.random.normal(params['Theta_mean'], params['Theta_sd'], (params['K'], params['K'])) Theta += params['Theta_diag'] * np.identity(params['K']) Theta -= np.mean(Theta) data_model.Theta = Theta net.generate(data_model) if params['plot_network']: net.show_heatmap('z_true') # Initialize fitting model fit_base_model = StationaryLogistic() for c in covariates: fit_base_model.beta[c] = None fit_model = Blockmodel(fit_base_model, params['fit_K']) if params['fit_nonstationary']: n_fit_base_model = NonstationaryLogistic() for c in covariates: n_fit_base_model.beta[c] = None n_fit_model = Blockmodel(n_fit_base_model, params['fit_K'])
def f_x(i_1, i_2): return np.random.uniform(-np.sqrt(3), np.sqrt(3)) net.new_edge_covariate(name).from_binary_function_ind(f_x) # Initialize data (block)model from base model class_probs = np.random.dirichlet(np.repeat(params['class_conc'], params['K'])) z = np.where(np.random.multinomial(1, class_probs, params['N']) == 1)[1] net.new_node_covariate_int('z_true')[:] = z data_model = Blockmodel(data_base_model, params['K'], 'z_true') Theta = np.random.normal(params['Theta_mean'], params['Theta_sd'], (params['K'],params['K'])) Theta += params['Theta_diag'] * np.identity(params['K']) Theta -= np.mean(Theta) data_model.Theta = Theta net.generate(data_model) if params['plot_network']: net.show_heatmap('z_true') # Initialize fitting model fit_base_model = StationaryLogistic() for c in covariates: fit_base_model.beta[c] = None fit_model = Blockmodel(fit_base_model, params['fit_K']) if params['fit_nonstationary']: n_fit_base_model = NonstationaryLogistic() for c in covariates: n_fit_base_model.beta[c] = None n_fit_model = Blockmodel(n_fit_base_model, params['fit_K'])