Пример #1
0
    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'])