def sample_variation(gameParameters, modelParameters, model, n_samples=100):

    print('Obtaining', n_samples, 'samples (please be patient!)...')
    nombre = 'Simulations/Sample_size/' + model + '/sample'

    for i in range(n_samples):
        E = DL.Experiment(gameParameters, modelParameters)
        E.run_simulation()
        data = M.get_measures(E.df, '0')
        archivo = nombre + str(i + 1) + '.csv'
        data.to_csv(archivo, index=False)
def parameter_sweep_2(gameParameters, modelParameters):

    # Sweep epsilon vs zeta

    print("****************************")
    print('Starting parameter sweep')
    print("****************************")
    print('--- Game parameters ---')
    print('Probabilit of a unicorn: ', gameParameters[0])
    print('Number of players: ', gameParameters[1])
    print('Grid size: ',
          str(gameParameters[2]) + ' x ' + str(gameParameters[2]))
    print('Number of rounds: ', gameParameters[3])
    print('Number of dyads: ', gameParameters[4])
    print("\n")

    print('--- Fixed parameters ----')
    print('Focal: ', modelParameters[0])
    print('alpha: ', modelParameters[1])
    print('beta: ', modelParameters[2])
    print('gamma: ', modelParameters[3])
    print('delta: ', modelParameters[4])
    # print('epsilon: ', modelParameters[5])
    # print('zeta: ', modelParameters[6])
    print('eta: ', modelParameters[7])
    print('FOCAL: ', modelParameters[8])
    print("\n")
    print("Sweeping epsilon and zeta parameters...")

    # Intervals for sweep
    forEpsilon = [1]
    forZeta = [20]

    print('--- Sweep parameters ----')
    print('epsilon: ', forEpsilon)
    print('zeta: ', forZeta)

    for i in list(forEpsilon):
        for j in list(forZeta):
            print('\n----------')
            print('Sweep ' + str(i) + ', ' + str(j))
            modelParameters[5] = i
            modelParameters[6] = j
            E = DL.Experiment(gameParameters, modelParameters)
            E.run_simulation()
            E.get_measures()
            E.df['Epsilon'] = [i] * len(E.df['Dyad'])
            E.df['Zeta'] = [j] * len(E.df['Dyad'])
            outputFile = 'Sweeps/out_Epsilon' + str(i) + '-Zeta' + str(
                j) + '.csv'
            E.df.to_csv(outputFile, index=False)
            print("Results saved to " + outputFile)
def sensitivityModelRecovery(gameParameters, modelParameters, badApples):

    print("****************************")
    print('Starting simulation')
    print("****************************")
    print('--- Model parameters ----')
    print('w: ', modelParameters[0])
    print('alpha: ', modelParameters[1])
    print('beta: ', modelParameters[2])
    print('gamma: ', modelParameters[3])
    print('delta: ', modelParameters[4])
    print('epsilon: ', modelParameters[5])
    print('zeta: ', modelParameters[6])
    print('eta: ', modelParameters[7])
    print("\n")
    print('--- Game parameters ---')
    print('Probabilit of a unicorn: ', gameParameters[0])
    print('Number of players: ', gameParameters[1])
    print('Grid size: ',
          str(gameParameters[2]) + ' x ' + str(gameParameters[2]))
    print('Number of rounds: ', gameParameters[3])
    print('Number of dyads: ', gameParameters[4])
    print('Number of bad apples: ', badApples)
    print("\n")

    E = DL.Experiment(gameParameters, modelParameters)
    Total_Dyads = gameParameters[4]
    print("\n")
    print('Including ' + str(badApples) + ' bad apples...')
    for j in range(Total_Dyads - badApples):
        print("****************************")
        print("Running dyad no. ", j + 1, "--GOOD")
        print("****************************\n")
        E.run_dyad()

    for j in range(badApples):
        print("****************************")
        print("Running dyad no. ", j + 1 + Total_Dyads - badApples, "--BAD")
        print("****************************\n")
        E.run_dyad_with_parameters(0.1, 10)

    E.get_measures()
    f = 'Sweeps/sensitivity_' + str(badApples) + '.csv'
    E.df.to_csv(f, index=False)
    print('Data saved to', f)
def parameter_sweep_Zeta(gameParameters, modelParameters):

    # Sweep RS

    print("****************************")
    print('Starting parameter sweep')
    print("****************************")
    print('--- Game parameters ---')
    print('Probabilit of a unicorn: ', gameParameters[0])
    print('Number of players: ', gameParameters[1])
    print('Grid size: ',
          str(gameParameters[2]) + ' x ' + str(gameParameters[2]))
    print('Number of rounds: ', gameParameters[3])
    print('Number of dyads: ', gameParameters[4])
    print("\n")

    print('--- Fixed parameters ----')
    print('Focal: ', modelParameters[0])
    print('alpha: ', modelParameters[1])
    print('beta: ', modelParameters[2])
    print('gamma: ', modelParameters[3])
    print('delta: ', modelParameters[4])
    print('epsilon: ', modelParameters[5])
    # print('zeta: ', modelParameters[6])
    print('eta: ', modelParameters[7])
    print("\n")
    print("Sweeping Zeta...")

    # Intervals for sweep
    forSweep = [0, 1, 10]

    print('--- Sweep parameters ----')
    print('zeta: ', forSweep)

    for i in list(forSweep):
        print('\n----------')
        print('Sweep zeta=' + str(i))
        modelParameters[6] = i
        E = DL.Experiment(gameParameters, modelParameters)
        E.run_simulation()
        E.get_measures()
        E.df['Zeta'] = [i] * len(E.df['Dyad'])
        outputFile = 'Sweeps/out_Zeta_' + str(i) + '.csv'
        E.df.to_csv(outputFile, index=False)
        print("Results saved to " + outputFile)
def standard_simulation(gameParameters,
                        modelParameters,
                        medidas,
                        shaky_hand=1,
                        TO_FILE=True):

    print("****************************")
    print('Starting simulation')
    print("****************************")
    print('--- Model parameters ----')
    print('wALL: ', modelParameters[0])
    print('wNOTHING: ', modelParameters[1])
    print('wLEFT: ', modelParameters[2])
    print('wIN: ', modelParameters[3])
    print('alpha: ', modelParameters[4])
    print('beta: ', modelParameters[5])
    print('gamma: ', modelParameters[6])
    print('delta: ', modelParameters[7])
    print('epsilon: ', modelParameters[8])
    print('zeta: ', modelParameters[9])
    print("\n")
    print("****************************")
    print('--- Game parameters ---')
    print('Probabilit of a unicorn: ', gameParameters[0])
    print('Number of players: ', gameParameters[1])
    print('Grid size: ',
          str(gameParameters[2]) + ' x ' + str(gameParameters[2]))
    print('Number of rounds: ', gameParameters[3])
    print('Number of dyads: ', gameParameters[4])
    print("\n")

    E = DL.Experiment(gameParameters, modelParameters, shaky_hand)
    if TO_FILE:
        with open('temp.csv', 'w') as dfile:
            dfile.write(
                'index,Dyad,Round,Player,Answer,Time,a11,a12,a13,a14,a15,a16,a17,a18,a21,a22,a23,a24,a25,a26,a27,a28,a31,a32,a33,a34,a35,a36,a37,a38,a41,a42,a43,a44,a45,a46,a47,a48,a51,a52,a53,a54,a55,a56,a57,a58,a61,a62,a63,a64,a65,a66,a67,a68,a71,a72,a73,a74,a75,a76,a77,a78,a81,a82,a83,a84,a85,a86,a87,a88,Score,Joint,Is_there,where_x,where_y,Strategy\n'
            )
            dfile.close()
        E.df = pd.read_csv('temp.csv')
    E.run_simulation()
    if TO_FILE:
        E.df = pd.read_csv('temp.csv')
    M = Measures.Measuring(data=E.df, Num_Loc=8, TOLERANCIA=0)
    E.df = M.get_measures(medidas)
    E.save()
def data_conf_mtrx(gameParameters, modelParameters, model, count):

    print("****************************")
    print('Starting simulation with model', model)
    print("****************************")
    print('--- Model parameters ----')
    print('wALL: ', modelParameters[0])
    print('wNOTHING: ', modelParameters[1])
    print('wLEFT: ', modelParameters[2])
    print('wIN: ', modelParameters[3])
    print('alpha: ', modelParameters[4])
    print('beta: ', modelParameters[5])
    print('gamma: ', modelParameters[6])
    print('delta: ', modelParameters[7])
    print('epsilon: ', modelParameters[8])
    print('zeta: ', modelParameters[9])
    print("****************************")
    print('--- Game parameters ---')
    print('Probabilit of a unicorn: ', gameParameters[0])
    print('Number of players: ', gameParameters[1])
    print('Grid size: ',
          str(gameParameters[2]) + ' x ' + str(gameParameters[2]))
    print('Number of rounds: ', gameParameters[3])
    print('Number of dyads: ', gameParameters[4])
    print("\n")

    E = DL.Experiment(gameParameters, modelParameters, shaky_hand=1)
    with open('temp.csv', 'w') as dfile:
        dfile.write(
            'index,Dyad,Round,Player,Answer,Time,a11,a12,a13,a14,a15,a16,a17,a18,a21,a22,a23,a24,a25,a26,a27,a28,a31,a32,a33,a34,a35,a36,a37,a38,a41,a42,a43,a44,a45,a46,a47,a48,a51,a52,a53,a54,a55,a56,a57,a58,a61,a62,a63,a64,a65,a66,a67,a68,a71,a72,a73,a74,a75,a76,a77,a78,a81,a82,a83,a84,a85,a86,a87,a88,Score,Joint,Is_there,where_x,where_y,Strategy\n'
        )
        dfile.close()
    E.df = pd.read_csv('temp.csv')
    E.run_simulation()
    E.df = pd.read_csv('temp.csv')
    M = Measures.Measuring(data=E.df, Num_Loc=8, TOLERANCIA=0)
    E.df = M.get_measures('1')
    archivo = './Data/Confusion/sim_conf_mtx_'
    E.save(archivo)
    E.df.to_csv(archivo, index=False)
    rel_data_sim = [count] + [str(model)] + modelParameters[:10]
    dfAux = pd.DataFrame([rel_data_sim])
    with open('./Data/Confusion/sim_data_rel.csv', 'a') as f:
        dfAux.to_csv(f, header=False, index=False)
def exploreSampleSizeEffect(gameParameters, modelParameters, lst):

    for l in lst:
        gameParameters = gameParameters[:4] + [l]
        print("****************************")
        print('Starting simulation', l)
        print("****************************")
        print('--- Model parameters ----')
        print('wALL: ', modelParameters[0])
        print('wNOTHING: ', modelParameters[0])
        print('wDOWN: ', modelParameters[0])
        print('wIN: ', modelParameters[0])
        print('alpha: ', modelParameters[1])
        print('beta: ', modelParameters[2])
        print('gamma: ', modelParameters[3])
        print('delta: ', modelParameters[4])
        print('epsilon: ', modelParameters[5])
        print('zeta: ', modelParameters[6])
        print('eta: ', modelParameters[7])
        print('FOCAL: ', modelParameters[8])
        print("\n")
        print('--- Game parameters ---')
        print('Probabilit of a unicorn: ', gameParameters[0])
        print('Number of players: ', gameParameters[1])
        print('Grid size: ',
              str(gameParameters[2]) + ' x ' + str(gameParameters[2]))
        print('Number of rounds: ', gameParameters[3])
        print('Number of dyads: ', gameParameters[4])
        print("\n")

        E = DL.Experiment(gameParameters, modelParameters)
        E.run_simulation()
        E.get_measures()
        f = 'Sweeps/output_' + str(l) + '.csv'
        E.df.to_csv(f, index=False)
        print('Data saved to', f)
Exemple #8
0
    print('beta: ', playerParameters2['beta'])
    print('gamma: ', playerParameters2['gamma'])
    print('delta: ', playerParameters2['delta'])
    print('epsilon: ', playerParameters2['epsilon'])
    print('zeta: ', playerParameters2['zeta'])
    print("****************************")
    print('--- Game parameters ---')
    print('Probability of unicorn: ', gameParameters[0])
    print('Number of players: ', gameParameters[1])
    print('Grid size: ',
          str(gameParameters[2]) + ' x ' + str(gameParameters[2]))
    print('Number of rounds: ', gameParameters[3])
    print('Number of dyads: ', gameParameters[4])
    print("\n")

    E = DL.Experiment(gameParameters, [playerParameters1, playerParameters2],
                      non_shaky_hand=non_shaky_hand)
    if TO_FILE:
        with open('temp.csv', 'w') as dfile:
            dfile.write(
                'index,Dyad,Round,Player,Answer,a11,a12,a13,a14,a15,a16,a17,a18,a21,a22,a23,a24,a25,a26,a27,a28,a31,a32,a33,a34,a35,a36,a37,a38,a41,a42,a43,a44,a45,a46,a47,a48,a51,a52,a53,a54,a55,a56,a57,a58,a61,a62,a63,a64,a65,a66,a67,a68,a71,a72,a73,a74,a75,a76,a77,a78,a81,a82,a83,a84,a85,a86,a87,a88,Score,Joint,Is_there,Strategy\n'
            )
            dfile.close()
        E.df = pd.read_csv('temp.csv')
    E.run_simulation()
    if TO_FILE:
        E.df = pd.read_csv('temp.csv')
    M = Measures.Measuring(data=E.df, Num_Loc=Num_Loc, TOLERANCE=0)
    E.df = M.get_measures(measures)
    if TO_FILE: os.remove("temp.csv")
    archivo = f'./Simulations/MB{contador}.csv'
    E.save(archivo)
Exemple #9
0
print('Starting simulation')
print("****************************")
print('--- Model parameters ----')
print('alpha: ', playerParameters['alpha'])
print('beta: ', playerParameters['beta'])
print('gamma: ', playerParameters['gamma'])
print('delta: ', playerParameters['delta'])
print('epsilon: ', playerParameters['epsilon'])
print('zeta: ', playerParameters['zeta'])
print("\n")
print("****************************")
print('--- Game parameters ---')
print('Threshold: ', gameParameters[0])
print('Number of players: ', gameParameters[1])
print('Number of rounds: ', gameParameters[2])
print('Number of groups: ', gameParameters[3])
print("\n")

E = DL.Experiment(gameParameters, playerParameters)
if TO_FILE:
    with open('temp.csv', 'w') as dfile:
        head = 'index,Group,Round,Player,Decision,Score,Strategy\n'
        dfile.write(head)
    E.df = pd.read_csv('temp.csv')
E.run_simulation()
if TO_FILE:
    E.df = pd.read_csv('temp.csv')
    os.remove("temp.csv")
#M = Measures.Measuring(data=E.df, Num_Loc=rounds, TOLERANCE=0)
#E.df = M.get_measures(measures)
E.save()
def parameter_sweep_delta(gameParameters, modelParameters, forSweep):

    # Sweep delta

    print("****************************")
    print('Starting parameter sweep')
    print("****************************")
    print('--- Game parameters ---')
    print('Probabilit of a unicorn: ', gameParameters[0])
    print('Number of players: ', gameParameters[1])
    print('Grid size: ',
          str(gameParameters[2]) + ' x ' + str(gameParameters[2]))
    print('Number of rounds: ', gameParameters[3])
    print('Number of dyads: ', gameParameters[4])
    print("\n")

    print('--- Fixed parameters ----')
    print('--- Player 1 ----')
    print('wALL: ', modelParameters[0])
    print('wNOTHING: ', modelParameters[1])
    print('wLEFT: ', modelParameters[2])
    print('wIN: ', modelParameters[3])
    print('alpha: ', modelParameters[4])
    print('beta: ', modelParameters[5])
    print('gamma: ', modelParameters[6])
    #    print('delta: ', modelParameters[7])
    print('epsilon: ', modelParameters[8])
    print('zeta: ', modelParameters[9])
    print('eta:', modelParameters[10])
    print('theta:', modelParameters[11])
    print('iota:', modelParameters[12])
    print("\n")
    print('--- Player 2 ----')
    print('wALL: ', modelParameters[13])
    print('wNOTHING: ', modelParameters[14])
    print('wLEFT: ', modelParameters[15])
    print('wIN: ', modelParameters[16])
    print('alpha: ', modelParameters[17])
    print('beta: ', modelParameters[18])
    print('gamma: ', modelParameters[19])
    #    print('delta: ', modelParameters[20])
    print('epsilon: ', modelParameters[21])
    print('zeta: ', modelParameters[22])
    print('eta:', modelParameters[23])
    print('theta:', modelParameters[24])
    print('iota:', modelParameters[25])
    print('--- Sweep parameters ----')
    print('delta in', forSweep)
    print('\n----------')

    for i in forSweep:
        print("Sweeping delta...")
        print('alpha=' + str(i))
        modelParameters[7] = i
        modelParameters[20] = i
        E = DL.Experiment(gameParameters, modelParameters)
        with open('temp.csv', 'w') as dfile:
            dfile.write(
                'index,Dyad,Round,Player,Answer,Time,a11,a12,a13,a14,a15,a16,a17,a18,a21,a22,a23,a24,a25,a26,a27,a28,a31,a32,a33,a34,a35,a36,a37,a38,a41,a42,a43,a44,a45,a46,a47,a48,a51,a52,a53,a54,a55,a56,a57,a58,a61,a62,a63,a64,a65,a66,a67,a68,a71,a72,a73,a74,a75,a76,a77,a78,a81,a82,a83,a84,a85,a86,a87,a88,Score,Joint,Is_there,where_x,where_y,Strategy\n'
            )
            dfile.close()
        with open('output_Prev.csv', 'w') as dfile:
            dfile.write(
                'index,Dyad,Round,Player,Answer,Time,a11,a12,a13,a14,a15,a16,a17,a18,a21,a22,a23,a24,a25,a26,a27,a28,a31,a32,a33,a34,a35,a36,a37,a38,a41,a42,a43,a44,a45,a46,a47,a48,a51,a52,a53,a54,a55,a56,a57,a58,a61,a62,a63,a64,a65,a66,a67,a68,a71,a72,a73,a74,a75,a76,a77,a78,a81,a82,a83,a84,a85,a86,a87,a88,Score,Joint,Is_there,where_x,where_y,Strategy,Is_there_LEAD,Category,Category1,RegionGo\n'
            )
            dfile.close()
        E.run_simulation()
        E.df = pd.read_csv('temp.csv')
        E.df = M.get_measures(E.df, '05')
        E.df['Delta'] = i
        outputFile = '../Data/Sweeps/out_Delta_' + str(i) + '.csv'
        E.df.to_csv(outputFile, index=False)
        print("Results saved to " + outputFile)