示例#1
0
def mod_2():
    # Data
    y0, n0, y1, n1 = data.full()
    # y_j = np.log(y0/(n0 - y0)) - np.log(y1/(n1 - y1))
    # V_j = 1.0/y1 + 1.0/(n1 - y1) + 1.0/y0 + 1.0/(n0 - y1)

    # Priors
    # tau_sq = pymc.Uniform('tau_sq', lower=0., upper=1., value=0.5)
    tau_sq = pymc.Beta('tau_sq', alpha=1, beta=6, value=0.01)
    theta = pymc.Normal('theta', mu = 0, tau=10**-6, value=0)
    p1p = pymc.Uniform('p1p', lower=0., upper=1., value=0.5)
    p0p = pymc.Uniform('p0p', lower=0., upper=1., value=0.5)

    # Second Level
    theta_j = pymc.Normal('theta_j', mu = [theta]*22, tau=[1/tau_sq]*22, value=[0]*22)

    @deterministic
    def p0(th=theta_j,p1=p1p):
        c1 = np.exp(-th) + p1/(1+p1)
        return c1/(1+c1)
    @deterministic
    def p1(th=theta_j,p0=p0p):
        c0 = np.exp(-th) + p0/(1+p0)
        return c0/(1+c0)

    # Likelihood function
    y_j_obs_1 = pymc.Binomial('y_j_obs_1', value=y1, p=p1, n=n1, observed=True)
    y_j_obs_0 = pymc.Binomial('y_j_obs_0', value=y0, p=p0, n=n0, observed=True)

    return vars()
示例#2
0
def mod_1():
    # Data
    y0, n0, y1, n1 = data.full()
    y_j = np.log(y0 / (n0 - y0)) - np.log(y1 / (n1 - y1))
    V_j = 1.0 / y1 + 1.0 / (n1 - y1) + 1.0 / y0 + 1.0 / (n0 - y1)
    sig2_c = sum(V_j)

    # Priors
    # tau_sq = pymc.Uniform('tau_sq', lower=0., upper=1., value=0.5)
    tau_sq = pymc.Beta('tau_sq', alpha=1, beta=6, value=0.01)
    theta = pymc.Normal('theta', mu=0, tau=10**-6, value=0)

    # Second Level
    theta_j = pymc.Normal('theta_j',
                          mu=[theta] * 22,
                          tau=[1 / tau_sq] * 22,
                          value=[0] * 22)

    # Likelihood function
    y_j_obs = pymc.Normal('y_j_obs',
                          value=y_j,
                          mu=theta_j,
                          tau=1 / V_j,
                          observed=True)

    return vars()
示例#3
0
def mod_2():
    # Data
    y0, n0, y1, n1 = data.full()
    # y_j = np.log(y0/(n0 - y0)) - np.log(y1/(n1 - y1))
    # V_j = 1.0/y1 + 1.0/(n1 - y1) + 1.0/y0 + 1.0/(n0 - y1)

    # Priors
    # tau_sq = pymc.Uniform('tau_sq', lower=0., upper=1., value=0.5)
    tau_sq = pymc.Beta('tau_sq', alpha=1, beta=6, value=0.01)
    theta = pymc.Normal('theta', mu=0, tau=10**-6, value=0)
    p1p = pymc.Uniform('p1p', lower=0., upper=1., value=0.5)
    p0p = pymc.Uniform('p0p', lower=0., upper=1., value=0.5)

    # Second Level
    theta_j = pymc.Normal('theta_j',
                          mu=[theta] * 22,
                          tau=[1 / tau_sq] * 22,
                          value=[0] * 22)

    @deterministic
    def p0(th=theta_j, p1=p1p):
        c1 = np.exp(-th) + p1 / (1 + p1)
        return c1 / (1 + c1)

    @deterministic
    def p1(th=theta_j, p0=p0p):
        c0 = np.exp(-th) + p0 / (1 + p0)
        return c0 / (1 + c0)

    # Likelihood function
    y_j_obs_1 = pymc.Binomial('y_j_obs_1', value=y1, p=p1, n=n1, observed=True)
    y_j_obs_0 = pymc.Binomial('y_j_obs_0', value=y0, p=p0, n=n0, observed=True)

    return vars()
示例#4
0
def mod_1():

    data_x, data_y = data.full()

    # Covariates:
    #   Intercept, Age, Weight, Race, Visit
    beta = pymc.Normal('beta', mu = [0]*5, tau=[10**-6]*5 , value=[0]*5)  

    @deterministic
    def y_mean(beta=beta, data=data_x):
        return 1.0/(1.0 + np.exp(-np.dot(data_x,beta)))

    y_obs = pymc.Bernoulli('y_obs', value=data_y, p=y_mean, observed=True)

    return vars()
示例#5
0
def mod_1():

    data_x, data_y = data.full()

    # Covariates:
    #   Intercept, Age, Weight, Race, Visit
    beta = pymc.Normal('beta', mu=[0] * 5, tau=[10**-6] * 5, value=[0] * 5)

    @deterministic
    def y_mean(beta=beta, data=data_x):
        return 1.0 / (1.0 + np.exp(-np.dot(data_x, beta)))

    y_obs = pymc.Bernoulli('y_obs', value=data_y, p=y_mean, observed=True)

    return vars()
示例#6
0
def mod_4():

    data_x, data_y = data.full()
    data_x = data_x[:,1:3]
    data_x[:,0] = 1

    # Covariates:
    #   Intercept, Weight
    beta = pymc.Normal('beta', mu = [0]*2, tau=[10**-6]*2 , value=[0]*2)  

    @deterministic
    def y_mean(beta=beta, data=data_x):
        return 1.0/(1.0 + np.exp(-np.dot(data_x,beta)))

    y_obs = pymc.Bernoulli('y_obs', value=data_y, p=y_mean, observed=True)

    return vars()
示例#7
0
def mod_4():

    data_x, data_y = data.full()
    data_x = data_x[:, 1:3]
    data_x[:, 0] = 1

    # Covariates:
    #   Intercept, Weight
    beta = pymc.Normal('beta', mu=[0] * 2, tau=[10**-6] * 2, value=[0] * 2)

    @deterministic
    def y_mean(beta=beta, data=data_x):
        return 1.0 / (1.0 + np.exp(-np.dot(data_x, beta)))

    y_obs = pymc.Bernoulli('y_obs', value=data_y, p=y_mean, observed=True)

    return vars()
示例#8
0
def mod_1():
    # Data
    y0, n0, y1, n1 = data.full()
    y_j = np.log(y0/(n0 - y0)) - np.log(y1/(n1 - y1))
    V_j = 1.0/y1 + 1.0/(n1 - y1) + 1.0/y0 + 1.0/(n0 - y1)
    sig2_c = sum(V_j)

    # Priors
    # tau_sq = pymc.Uniform('tau_sq', lower=0., upper=1., value=0.5)
    tau_sq = pymc.Beta('tau_sq', alpha=1, beta=6, value=0.01)
    theta = pymc.Normal('theta', mu = 0, tau=10**-6, value=0)

    # Second Level
    theta_j = pymc.Normal('theta_j', mu = [theta]*22, tau=[1/tau_sq]*22, value=[0]*22)

    # Likelihood function
    y_j_obs = pymc.Normal('y_j_obs', value=y_j, mu=theta_j, tau=1/V_j, observed=True)

    return vars()