Skip to content
Snippets Groups Projects
stan_modelling_theoretic.py 42.1 KiB
Newer Older
  • Learn to ignore specific revisions
  • Riku-Laine's avatar
    Riku-Laine committed
    
        perfComp(
            dg, lambda x: decider(x),
    
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="lr", 
            fit_with_Z=False
    
    Riku-Laine's avatar
    Riku-Laine committed
        )
    
    if which == 3:
    
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Decision-maker in the data and model: random and y ~ x + z")
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
        decider = lambda x: randomDecider(x, nJudges_M=M_sim, use_acceptance_rates=True)
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        perfComp(
            dg, lambda x: decider(x),
    
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="lr", 
            fit_with_Z=True
    
    Riku-Laine's avatar
    Riku-Laine committed
        )
    
    if which == 4:
    
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Decision-maker in the data and model: y ~ x and random")
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
    
        decider = lambda x: quantileDecider(
            x, featureX_col="X", featureZ_col=None, nJudges_M=M_sim, beta_X=1, beta_Z=1)
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        perfComp(
            dg, lambda x: decider(x),
    
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="fully_random", 
            fit_with_Z=False
    
    Riku-Laine's avatar
    Riku-Laine committed
        )
    
    if which == 5:
    
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Decision-maker in the data and model: y ~ x and y ~ x")
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
        decider = lambda x: quantileDecider(
            x, featureX_col="X", featureZ_col=None, nJudges_M=M_sim, beta_X=1, beta_Z=1)
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        perfComp(
            dg, lambda x: decider(x),
    
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="lr", 
            fit_with_Z=False
    
    Riku-Laine's avatar
    Riku-Laine committed
        )
    
    Riku-Laine's avatar
    Riku-Laine committed
    if which == 6:
    
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Decision-maker in the data and model: y ~ x and y ~ x + z")
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
    
        decider = lambda x: quantileDecider(
            x, featureX_col="X", featureZ_col=None, nJudges_M=M_sim, beta_X=1, beta_Z=1)
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        perfComp(
            dg, lambda x: decider(x),
    
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="lr", 
            fit_with_Z=True
    
    Riku-Laine's avatar
    Riku-Laine committed
        )
    
        
    if which == 7:
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Decision-maker in the data and model: y ~ x + z and random")
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
        decider = lambda x: quantileDecider(
            x, featureX_col="X", featureZ_col='Z', nJudges_M=M_sim, beta_X=1, beta_Z=1)
    
        perfComp(
            dg, lambda x: decider(x),
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="fully_random", 
            fit_with_Z=False
        )
    
    if which == 8:
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Decision-maker in the data and model: y ~ x + z and y ~ x")
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
    
        decider = lambda x: quantileDecider(
            x, featureX_col="X", featureZ_col='Z', nJudges_M=M_sim, beta_X=1, beta_Z=1)
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        perfComp(
            dg, lambda x: decider(x),
    
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="lr", 
            fit_with_Z=False
    
    Riku-Laine's avatar
    Riku-Laine committed
        )
    
        
    if which == 9:
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Decision-maker in the data and model: y ~ x + z and y ~ x + z")
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
        decider = lambda x: quantileDecider(
            x, featureX_col="X", featureZ_col='Z', nJudges_M=M_sim, beta_X=1, beta_Z=1)
    
        perfComp(
            dg, lambda x: decider(x),
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="lr", 
            fit_with_Z=True
        )
        
    if which == 10:
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Decision-maker in the data and model: biased and random")
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
    
        decider = lambda x: biasDecider(
            x, featureX_col="X", featureZ_col='Z', nJudges_M=M_sim, beta_X=1, beta_Z=1)
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        perfComp(
            dg, lambda x: decider(x),
    
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="fully_random", 
            fit_with_Z=False
    
    if which == 11:
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Decision-maker in the data and model: biased and y ~ x")
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
        decider = lambda x: biasDecider(
            x, featureX_col="X", featureZ_col='Z', nJudges_M=M_sim, beta_X=1, beta_Z=1)
    
        perfComp(
            dg, lambda x: decider(x),
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="lr", 
            fit_with_Z=False
        )
    
    if which == 12:
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Decision-maker in the data and model: biased and y ~ x + z")
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
    
        decider = lambda x: biasDecider(
            x, featureX_col="X", featureZ_col='Z', nJudges_M=M_sim, beta_X=1, beta_Z=1)
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        perfComp(
            dg, lambda x: decider(x),
    
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="lr", 
            fit_with_Z=True
    
    if which == 13:
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Fewer subjects per decision-maker, from 500 to 100. Now N_total =", N_sim / 5)
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=int(N_sim / 5))
    
        decider = lambda x: quantileDecider(
            x, featureX_col="X", featureZ_col=None, nJudges_M=M_sim, beta_X=1, beta_Z=1)
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        perfComp(
            dg, lambda x: decider(x),
    
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="lr", 
            fit_with_Z=True
    
    if which == 14:
        print("\nWith unobservables (Bernoullian outcome + independent decisions)")
        
        print("Now R ~ Uniform(0.1, 0.4)")
    
        dg = lambda: bernoulliDGWithUnobservables(N_total=N_sim)
    
        decider = lambda x: quantileDecider(x, featureX_col="X", featureZ_col=None, 
                                            nJudges_M=M_sim, beta_X=1, beta_Z=1,
                                            leniency_upper_limit=0.4)
    
    Riku-Laine's avatar
    Riku-Laine committed
    
        perfComp(
            dg, lambda x: decider(x),
    
            "Fluctuation of failure rate estimates across iterations\n" +
            "Bernoulli + independent decisions, without unobservables",
            figure_path + "sl_bernoulli_independent_without_Z",
            model_type="lr", 
            fit_with_Z=True
        )