for covariate in covariates: data_model.beta[covariate] = normal(0, 1.0) x_node = normal(0, 1.0, N) def f_x(i_1, i_2): return abs(x_node[i_1] - x_node[i_2]) < 0.3 net.new_edge_covariate(covariate).from_binary_function_ind(f_x) net.generate(data_model) net.offset_extremes() net.show() print 'True theta_0: %.2f' % data_model.beta['x_0'] # Initialize the fit model; specify which covariates it should have terms for fit_model = NonstationaryLogistic() for covariate in covariates: fit_model.beta[covariate] = None # Set up random subnetwork generator, and run fitting experiments gen = RandomSubnetworks(net, (200, 200)) for rep in range(5): subnet = gen.sample() fit_model.fit(subnet) print 'Estimated theta_0: %.2f' % fit_model.beta['x_0'] fit_model.confidence(subnet, n_bootstrap=5) ci = fit_model.conf['x_0']['normal'] print 'Normal CI for theta_0: (%.2f, %.2f)' % ci
data_model.kappa = -7.0 covariates = ['x_%d' % i for i in range(5)] for covariate in covariates: data_model.beta[covariate] = normal(0, 1.0) x_node = normal(0, 1.0, N) def f_x(i_1, i_2): return abs(x_node[i_1] - x_node[i_2]) < 0.3 net.new_edge_covariate(covariate).from_binary_function_ind(f_x) net.generate(data_model) net.offset_extremes() net.show() print 'True theta_0: %.2f' % data_model.beta['x_0'] # Initialize the fit model; specify which covariates it should have terms for fit_model = NonstationaryLogistic() for covariate in covariates: fit_model.beta[covariate] = None # Set up random subnetwork generator, and run fitting experiments gen = RandomSubnetworks(net, (200, 200)) for rep in range(5): subnet = gen.sample() fit_model.fit(subnet) print 'Estimated theta_0: %.2f' % fit_model.beta['x_0'] fit_model.confidence(subnet, n_bootstrap = 5) ci = fit_model.conf['x_0']['normal'] print 'Normal CI for theta_0: (%.2f, %.2f)' % ci
print print 'Fitting nonstationary model' alpha_zero(net) ns_model = NonstationaryLogistic() for cov_name in cov_names: ns_model.beta[cov_name] = None ns_model.fit(net) print 'NLL: %.2f' % ns_model.nll(net) print 'kappa: %.2f' % ns_model.kappa for cov_name in cov_names: print '%s: %.2f' % (cov_name, ns_model.beta[cov_name]) print for rep in range(params['n_samples']): ns_samples[rep, :, :] = ns_model.generate(net) ns_model.confidence(net, n_bootstrap=params['n_bootstrap']) print 'Pivotal:' for cov_name in cov_names: ci = ns_model.conf[cov_name]['pivotal'] print ' %s: (%.2f, %.2f)' % (cov_name, ci[0], ci[1]) print # Calculate sample means and variances s_samples_mean = np.mean(s_samples, axis=0) s_samples_sd = np.sqrt(np.var(s_samples, axis=0)) ns_samples_mean = np.mean(ns_samples, axis=0) ns_samples_sd = np.sqrt(np.var(ns_samples, axis=0)) c_samples_mean = np.mean(c_samples, axis=0) c_samples_sd = np.sqrt(np.var(c_samples, axis=0)) # Finish plotting