示例#1
0
def test_mcmc_dina():
    attrs = np.random.binomial(1, 0.5, (5, 60))
    skills = np.random.binomial(1, 0.5, (1000, 5))

    g = r4beta(1, 2, 0, 0.6, (1, 60))
    no_s = r4beta(2, 1, 0.4, 1, (1, 60))

    temp = McmcDina(attrs=attrs)
    yita = temp.get_yita(skills)
    p_val = temp.get_p(yita, guess=g, no_slip=no_s)
    score = np.random.binomial(1, p_val)

    em_dina = McmcDina(attrs=attrs, score=score, max_iter=10, burn=5)
    em_dina.mcmc()
示例#2
0
def test_em_dina():
    attrs = np.random.binomial(1, 0.5, (5, 60))
    skills = np.random.binomial(1, 0.7, (1000, 5))

    g = r4beta(1, 2, 0, 0.6, (1, 60))
    no_s = r4beta(2, 1, 0.4, 1, (1, 60))

    temp = EmDina(attrs=attrs)
    yita = temp.get_yita(skills)
    p_val = temp.get_p(yita, guess=g, no_slip=no_s)
    score = np.random.binomial(1, p_val)

    em_dina = EmDina(attrs=attrs, score=score)
    est_no_s, est_g = em_dina.em()

    dina_est = MlDina(guess=est_g, no_slip=est_no_s, attrs=attrs, score=score)
    dina_est.solve()
示例#3
0
def test_ho_dina():
    attrs = np.random.binomial(1, 0.5, (5, 60))

    g = r4beta(1, 2, 0, 0.6, (1, 60))
    no_s = r4beta(2, 1, 0.4, 1, (1, 60))

    theta = np.random.normal(0, 1, (1000, 1))
    lam00 = np.random.normal(0, 1, 5)
    lam11 = np.random.uniform(0.5, 3, 5)

    ho_dina = McmcHoDina(attrs=attrs)
    skills_p = McmcHoDina.get_skills_p(lam0=lam00, lam1=lam11, theta=theta)
    skills = np.random.binomial(1, skills_p)

    yita = ho_dina.get_yita(skills)
    p_val = ho_dina.get_p(yita, guess=g, no_slip=no_s)
    score = np.random.binomial(1, p_val)

    ho_dina_est = McmcHoDina(attrs=attrs, score=score, max_iter=10, burn=5)
    ho_dina_est.mcmc()
示例#4
0
from __future__ import print_function, division, unicode_literals
import numpy as np
from psy import McmcDina
from psy.utils import r4beta

attrs = np.random.binomial(1, 0.5, (5, 60))
skills = np.random.binomial(1, 0.5, (1000, 5))

g = r4beta(1, 2, 0, 0.6, (1, 60))
no_s = r4beta(2, 1, 0.4, 1, (1, 60))

temp = McmcDina(attrs=attrs)
yita = temp.get_yita(skills)
p_val = temp.get_p(yita, guess=g, no_slip=no_s)
score = np.random.binomial(1, p_val)

em_dina = McmcDina(attrs=attrs, score=score, max_iter=10000, burn=7000)
est_skills, est_no_s, est_g = em_dina.mcmc()