Example #1
0
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