import random import pandas as pd import os from otree.api import ( models, widgets, BaseConstants, BaseSubsession, BaseGroup, BasePlayer, Currency as c, currency_range, ) from .machine_learning_algo import prediction_human_expert, prediction_ml doc = """ """ ############################################################ # definition of constant variables ############################################################ class Constants(BaseConstants): # STANDARD VARIABLES name_in_url = 'behavioral_study' players_per_group = None num_rounds = 1 belief_fee = 2 mean_acc_human = 61 mean_acc_ml = 51 fixed_fee = 1 payoff_factor = 0.1 participation_fee = 1 range_fm_belief = 3 range_acc_belief = 5 guess_acc_fm = 66 treat_boolean = [] for i in range(150): temp_bin = [2, 2, 3, 3, 4, 4, 5, 5] random.shuffle(temp_bin) treat_boolean += temp_bin # READING IN FM DATA # /Users/kev/Desktop/oTree_/MIrror_mirror # Mirror_mirror/pre_study_data_.csv # df_fm = pd.read_csv('/Users/kev/Desktop/oTree_/Mirror_mirror/_study_data.csv', sep=';') df_fm = pd.read_csv('Mirror_mirror/_study_data.csv', sep=';') # Initial amount allocated to each player Auf einer Skala von 1 bis 7: endowment = 10 multiplier = 3 competitiveness_score = 'Auf einer Skala von 1 (niedrig) bis 7 (hoch): Wie kompetitiv schätzen Sie sich ein?' openness_score = 'Auf einer Skala von 1 (niedrig) bis 7 (hoch): Wie offen würden Sie sich selbst für neue Erfahrungen einschätzen?' conscentiousness_score = 'Auf einer Skala von 1 (niedrig) bis 7 (hoch): Wie gewissenhaft würden Sie sich selbst einschätzen?' agreeableness_score = 'Auf einer Skala von 1 (niedrig) bis 7 (hoch): Wie rücksichtsvoll und herzlich würden Sie sich selbst gegenüber anderen einschätzen?' neuroticism_score = 'Auf einer Skala von 1 (niedrig) bis 7 (hoch): Wie leicht sind Sie verärgert/gestresst?' extraversion_score = 'Auf einer Skala von 1 (niedrig) bis 7 (hoch): Wie kontaktfreudig sind Sie?' gender = 'Was ist Ihr biologisches Geschlecht?' age = 'In welchem Zeitraum wurden Sie geboren?' choicesLikert = [ [1, '1 (Stimme überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7 (Stimme vollkommen zu)']] choicesLikertR = [ [7, '1 (Stimme überhaupt nicht zu)'], [6, '2'], [5, '3'], [4, '4'], [3, '5'], [2, '6'], [1, '7 (Stimme vollkommen zu)']] choicesGender = [ [0, 'Weiblich'], [1, 'Männlich']] choicesBoolean = [ [1, 'Ja'], [0, 'Nein'], ] ############################################################ # RANDOM ASSIGNMENT OF TREATMENTS # 1 = NO INFO # 2 = MACHINE PRIVATE # 3 = MACHINE PUBLIC # 4 = HUMAN PRIVATE # 5 = HUMAN PUBLIC ############################################################ class Subsession(BaseSubsession): def creating_session(self): for p in self.get_players(): # RANDOMLY ASSIGNING TREATMENT CONDITION treat_boolean p.treat = Constants.treat_boolean[(p.id_in_group-1)] # random.randint(1, 5) p.participant.vars['rand_order'] = random.randint(1, 2) if p.treat in [2,3]: p.participant.vars['pred_label'] = 'das Machine Learning System die folgende Vorhersage gemacht hat:

' p.participant.vars['cog13_emo23'] = 'Das Machine Learning System ist' p.participant.vars['emo1'] = 'Das Machine Learning System macht' p.participant.vars['cog2'] = 'Das Machine Learning System erfüllt' elif p.treat in [4,5]: p.participant.vars['pred_label'] = 'die menschlichen Experten die folgende Vorhersage gemacht haben:

' p.participant.vars['cog13_emo23'] = 'Die menschlichen Experten sind' p.participant.vars['emo1'] = 'Die menschlichen Experten machen' p.participant.vars['cog2'] = 'Die menschlichen Experten erfüllen' ############################################################ # GROUP LEVEL VARIABLES AND METHODS ############################################################ class Group(BaseGroup): pass ############################################################ # SUBJECT LEVEL VARIABLES AND METHODS ############################################################ class Player(BasePlayer): def def_labels(self): # LABEL VARIABLES if self.treat == 1: self.participant.vars['belief_pos'] = '' self.participant.vars['repay_pos'] = '' elif self.treat in [2,4]: self.participant.vars['belief_neg'] = 'wüsste, dass ' + self.participant.vars[ 'pred_label'] + ' Sie sind eine Person die Vertrauen NICHT zurückzahlt.

Wichtig: die andere Person kennt diese Vorhersage über sie.
' self.participant.vars['belief_pos'] = 'wüsste, dass ' + self.participant.vars['pred_label'] + ' Sie sind eine Person die Vertrauen zurückzahlt.

Wichtig: die andere Person kennt diese Vorhersage über sie.
' self.participant.vars['repay_neg'] = 'wüsste, dass ' + self.participant.vars['pred_label'] + ' Sie sind eine Person die Vertrauen NICHT zurückzahlt.

Wichtig: die andere Person kennt diese Vorhersage über sie.
' self.participant.vars['repay_pos'] = 'wüsste, dass ' + self.participant.vars['pred_label'] + ' Sie sind eine Person die Vertrauen zurückzahlt.

Wichtig: die andere Person kennt diese Vorhersage über sie.
' elif self.treat in [3,5]: self.participant.vars['belief_neg'] = 'Sie persönlich erfahren würden, dass ' + self.participant.vars['pred_label'] + ' Sie sind eine Person die Vertrauen NICHT zurückzahlt.

Wichtig: die andere Person kennt diese Vorhersage über sie NICHT.
' self.participant.vars['belief_pos'] = 'Sie persönlich erfahren würden, dass ' + self.participant.vars['pred_label'] + ' Sie sind eine Person die Vertrauen zurückzahlt.

Wichtig: die andere Person kennt diese Vorhersage über sie NICHT.
' # How many monetary units do you want to return to the investor if self.participant.vars['repay_neg'] = 'Sie persönlich erfahren würden, dass ' + self.participant.vars['pred_label'] + ' Sie sind eine Person die Vertrauen NICHT zurückzahlt.

Wichtig: die andere Person kennt diese Vorhersage über sie NICHT.
' self.participant.vars['repay_pos'] = 'Sie persönlich erfahren würden, dass ' + self.participant.vars['pred_label'] + ' Sie sind eine Person die Vertrauen zurückzahlt.

Wichtig: die andere Person kennt diese Vorhersage über sie NICHT.
' # TECHNICAL VARIABLES # TREATMENT CONDITION treat = models.IntegerField(initial=None) # FM MATCH fm_match = models.IntegerField(initial=None) # PERSONAL PREDICTION pred = models.IntegerField(initial=0) # RELEVANT VARIABLES # BELIEF WHAT THE FIRST MOVER EXPECTS OF THEM: RECIPROCAL PREDICTION belief_fm_rec = models.IntegerField(choices=[i for i in range(31)], label='') # BELIEF WHAT THE FIRST MOVER EXPECTS OF THEM: NON RECIPROCAL PREDICTION belief_fm_non_rec = models.IntegerField(choices=[i for i in range(31)], label='') # ACTUAL REPAYMENT DECISION: RECIPROCAL PREDICTION repayment_rec = models.IntegerField(choices=[i for i in range(31)], label='' ) # ACTUAL REPAYMENT DECISION: NON-RECIPROCAL PREDICTION repayment_non_rec = models.IntegerField(choices=[i for i in range(31)], label='' ) # BELIEF ABOUT THE ACTUAL ACCURACY OF THE ML APPLICATION belief_about_pred = models.IntegerField( choices=[i for i in range(101)], label='' ) belief_about_pred_so = models.IntegerField( initial=-1, choices=[i for i in range(101)], label='' ) # INCOME VARIABLE income = models.FloatField(initial=0) ############################### # RELEVANT FUNCTIONS ############################### def payoff_(self): '''Function to determine payoffs''' # RESETTING PAYOFFS self.participant.payoff = 0 self.participant.vars['repay'] = 0 # DEFINING PLAYER SET # Constants.df_fm['treat'] == 1 IS THE PART OF THE DATA FRAME RESULTING FROM FMS WHO HAD ML EXPERT ADVICE # PART OF THE FM DATA FRAME RELEVANT FOR DIFFERENT TREATMENTS if self.treat in [1, 3, 5]: temp_df = Constants.df_fm if self.treat == 2: temp_df = Constants.df_fm[Constants.df_fm['treat'] == 1] if self.treat == 4: temp_df = Constants.df_fm[Constants.df_fm['treat'] == 0] # DETERMINING FM MATCH self.fm_match = (random.randint(1, len(temp_df)) - 1) temp_df = temp_df.random(frac=1).reset_index(drop=True) self.participant.vars['fm_decisions'] = temp_df.iloc[self.fm_match].to_list() self.participant.vars['fm_decisions'] = [(A,B),0.5,(1,1,1,1)] self.groups = self.participant.vars['fm_decisions'][0] self.receivedamount = self.participant.vars['fm_decisions'][1] self.design_bydictotor = self.participant.vars['fm_decisions'][2] # NO PREDICTION TREATMENT self.participant.vars['fm_belief_corr'] = 0 if self.treat in [1,3,5]: # DECISIONS OF FM self.participant.vars['relevant_fm_decision'] = self.participant.vars['fm_decisions'][0] self.participant.vars['relevant_fm_belief'] = self.participant.vars['fm_decisions'][3] self.participant.vars['fm_belief'] = self.belief_fm_rec # PAYOFFS FROM TRUST GAME if self.participant.vars['fm_decisions'][0] == 10: self.participant.payoff += (30-self.repayment_rec) self.participant.vars['repay'] = self.repayment_rec # PAYOFFS FROM BELIEF GUESSING if abs(self.participant.vars['fm_decisions'][3]-self.belief_fm_rec) <= Constants.range_fm_belief: self.participant.payoff += Constants.belief_fee self.participant.vars['fm_belief_corr'] = 1 # PREDICTION ACC GUESS self.participant.vars['corr_acc_guess'] = 0 self.participant.vars['corr_fm_acc'] = 0 if self.treat != 1: # ACCURACY BELIEF FEE if (self.treat in [4,5]) & (abs(self.belief_about_pred - Constants.mean_acc_human) <= Constants.range_acc_belief): self.participant.payoff += Constants.belief_fee self.participant.vars['corr_acc_guess'] = 1 if (self.treat in [2,3]) & (abs(self.belief_about_pred - Constants.mean_acc_ml) <= Constants.range_acc_belief): self.participant.payoff += Constants.belief_fee self.participant.vars['corr_acc_guess'] = 1 if (self.treat in [2,4]) & (abs(self.belief_about_pred_so - Constants.guess_acc_fm) <= Constants.range_acc_belief): self.participant.payoff += Constants.belief_fee self.participant.vars['corr_fm_acc'] = 1 # WITH PREDICTION TREATMENT if self.treat in [2, 4]: # POSITIVE PREDICTION CASE if self.pred == 1: self.participant.vars['relevant_fm_decision'] = self.participant.vars['fm_decisions'][1] self.participant.vars['relevant_fm_belief'] = self.participant.vars['fm_decisions'][4] self.participant.vars['fm_belief'] = self.belief_fm_rec # PAYOFFS FROM TRUST GAME if self.participant.vars['fm_decisions'][1] == 10: self.participant.payoff += (30 - self.repayment_rec) self.participant.vars['repay'] = self.repayment_rec # PAYOFFS FROM BELIEF GUESSING if abs(self.participant.vars['fm_decisions'][4] - self.belief_fm_rec) <= Constants.range_fm_belief: self.participant.payoff += Constants.belief_fee self.participant.vars['fm_belief_corr'] = 1 # NEGATIVE PREDICTION CASE elif self.pred == 0: self.participant.vars['relevant_fm_decision'] = self.participant.vars['fm_decisions'][2] self.participant.vars['relevant_fm_belief'] = self.participant.vars['fm_decisions'][5] self.participant.vars['fm_belief'] = self.belief_fm_non_rec # PAYOFFS FROM TRUST GAME if self.participant.vars['fm_decisions'][2] == 10: self.participant.payoff += (30 - self.repayment_non_rec) self.participant.vars['repay'] = self.repayment_non_rec # PAYOFFS FROM BELIEF GUESSING if abs(self.participant.vars['fm_decisions'][5] - self.belief_fm_non_rec) <= Constants.range_fm_belief: self.participant.payoff += Constants.belief_fee self.participant.vars['fm_belief_corr'] = 1 # FIXED FEE self.income = Constants.payoff_factor*self.participant.payoff + Constants.fixed_fee def prediction_maker(self): '''A function to make predictions''' # ['Competitiveness_Score', 'Openness', 'Conscentiousness', 'Agreeableness', 'Neuroticism', 'Extraversion', # 'younger_siblings', 'older_siblings', 'english_lk', 'math_lk', 'risksq001', 'parental_home_german', # 'parental_home_foreign_language', # 'birthplace_Baden-Wuerttemberg', 'birthplace_Bayern', 'birthplace_Hessen', 'birthplace_Nordrhein-Westfalen', # 'degree_mother_Universitaet', 'degree_father_Universitaet', 'birthplace_Rheinland-Pfalz', 'birthplace_other', # 'age_before_85', 'age_85_89', 'age_90_94', 'age_95_99', 'age_00_later', 'gender', 'impatiencesq001'] # feats_ = ['Competitiveness_Score', 'Openness', 'Conscentiousness', 'Agreeableness', 'Neuroticism', # 'Extraversion', # 'risksq001', 'birthplace_Baden-Wuerttemberg', 'birthplace_Bayern', 'birthplace_Hessen', # 'birthplace_Nordrhein-Westfalen', # 'birthplace_Rheinland-Pfalz', 'birthplace_other', 'parental_home_german', # 'parental_home_foreign_language', # 'age_before_85', 'age_85_89', 'age_90_94', 'age_95_99', 'age_00_later', 'gender', 'impatiencesq001'] open = (self.open_score1 + self.open_score2 + self.open_score3) / 3 consc = (self.consc_score1 + self.consc_score2 + self.consc_score3) / 3 agree = (self.agree_score1 + self.agree_score2 + self.agree_score3) / 3 neuro = (self.neuro_score1 + self.neuro_score2 + self.neuro_score3) / 3 extra = (self.extra_score1 + self.extra_score2 + self.extra_score3) / 3 # AGE if self.age == 0: temp_age1 = 1 temp_age2, temp_age3, temp_age4, temp_age5 = 0,0,0,0 elif self.age == 1: temp_age2 = 1 temp_age1, temp_age3, temp_age4, temp_age5 = 0, 0, 0, 0 elif self.age == 2: temp_age3 = 1 temp_age1, temp_age2, temp_age4, temp_age5 = 0, 0, 0, 0 elif self.age == 3: temp_age4 = 1 temp_age1, temp_age2, temp_age3, temp_age5 = 0, 0, 0, 0 else: temp_age5 = 1 temp_age1, temp_age2, temp_age3, temp_age4 = 0, 0, 0, 0 # STATE OF BIRTH if self.state_birth == 0: temp_bw = 1 temp_bay, temp_he, temp_nrw, temp_rp, temp_other = 0,0,0,0,0 elif self.state_birth == 1: temp_bay = 1 temp_bw, temp_he, temp_nrw, temp_rp, temp_other = 0, 0, 0, 0, 0 elif self.state_birth == 2: temp_he = 1 temp_bay, temp_bw, temp_nrw, temp_rp, temp_other = 0, 0, 0, 0, 0 elif self.state_birth == 3: temp_nrw = 1 temp_bay, temp_he, temp_bw, temp_rp, temp_other = 0, 0, 0, 0, 0 elif self.state_birth == 4: temp_rp = 1 temp_bay, temp_he, temp_nrw, temp_bw, temp_other = 0, 0, 0, 0, 0 else: temp_other = 1 temp_bay, temp_he, temp_nrw, temp_bw, temp_rp = 0, 0, 0, 0, 0 # # LEISTUNGSKURS # if self.lk_ == 0: # temp_engl, temp_math = 1,0 # elif self.lk_ == 1: # temp_engl, temp_math = 0,1 # elif self.lk_ == 2: # temp_engl, temp_math = 1,1 # else: # temp_engl, temp_math = 0,0 # HOME LANGUAGE if self.home_language == 0: temp_homegerman, temp_homeforeign = 1,0 elif self.home_language == 1: temp_homegerman, temp_homeforeign = 0,1 else: temp_homegerman, temp_homeforeign = 1,1 # # PARENTS UNIVERSITY # if self.parents_uni == 1: # temp_degrmo, temp_degrfath = 0,0 # elif self.parents_uni == 2: # temp_degrmo, temp_degrfath = 0,1 # elif self.parents_uni == 3: # temp_degrmo, temp_degrfath = 1,0 # else: # temp_degrmo, temp_degrfath = 1,1 # feat_list = [self.comp_score, self.open_score, self.consc_score, self.agree_score, self.neuro_score, self.extra_score, # temp_young, temp_old, temp_engl, temp_math, self.risk_score, temp_homegerman, temp_homeforeign, # temp_bw, temp_bay, temp_he, temp_nrw, temp_degrmo, temp_degrfath, temp_rp, temp_other, # temp_age1, temp_age2, temp_age3, temp_age4, temp_age5, self.gender, self.impatience] self.pred = 0 if self.treat in [2,3]: feat_list = [self.comp_score, open, consc, agree, neuro, extra, self.risk_score, temp_bw, temp_bay, temp_he, temp_nrw, temp_rp, temp_other, temp_homegerman, temp_homeforeign, temp_age1, temp_age2, temp_age3, temp_age4, temp_age5, self.gender, self.impatience] self.pred = prediction_ml(feat_list) if self.treat in [4,5]: feat_list = [self.comp_score, open, consc, agree, neuro, extra,self.gender, self.risk_score,self.impatience,self.age,self.state_birth,self.home_language] self.pred = prediction_human_expert(feat_list) print(self.pred) ############################### # ML QUESTIONNAIRE ############################### # QUESIONNAIRE ITEMS # NOTE: q_1 is an integer field for calucations in prediction dummy # impotant to write a function that transforms the types into the ones that the machine learning apliation needs comp_score = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die kompetitiv ist.', choices=Constants.choicesLikert, widget=widgets.RadioSelect) # LANG ET AL. 2011: Short assessment of the Big Five: robust across survey methods except telephone interviewing open_score1 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die originell ist, neue Ideen einbringt', choices=Constants.choicesLikert, widget=widgets.RadioSelect) open_score2 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die künstlerische, ästhetische Erfahrungen schätzt', choices=Constants.choicesLikert, widget=widgets.RadioSelect) open_score3 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die eine lebhafte Phantasie, Vorstellungen hat', choices=Constants.choicesLikert, widget=widgets.RadioSelect) consc_score1 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die gründlich arbeitet.', choices=Constants.choicesLikert, widget=widgets.RadioSelect) consc_score2 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die eher faul ist.', choices=Constants.choicesLikertR, widget=widgets.RadioSelect) consc_score3 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die Aufgaben wirksam und effizient erledigt.', choices=Constants.choicesLikert, widget=widgets.RadioSelect) agree_score1 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die manchmal etwas grob zu anderen ist.', choices=Constants.choicesLikertR, widget=widgets.RadioSelect) agree_score2 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die verzeihen kann.', choices=Constants.choicesLikert, widget=widgets.RadioSelect) agree_score3 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die rücksichtsvoll und freundlich mit anderen umgeht.', choices=Constants.choicesLikert, widget=widgets.RadioSelect) neuro_score1 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die sich oft Sorgen macht.', choices=Constants.choicesLikert, widget=widgets.RadioSelect) neuro_score2 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die leicht nervös wird.', choices=Constants.choicesLikert, widget=widgets.RadioSelect) neuro_score3 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die mit Stress gut umgehen kann.', choices=Constants.choicesLikertR, widget=widgets.RadioSelect) extra_score1 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die kommunikativ/ gesprächig ist.', choices=Constants.choicesLikert, widget=widgets.RadioSelect) extra_score2 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die aus sich herausgehen kann, gesellig ist.', choices=Constants.choicesLikert, widget=widgets.RadioSelect) extra_score3 = models.IntegerField(label='Auf einer Skala von 1 bis 7:
Ich bin eine Person, die zurückhaltend ist.', choices=Constants.choicesLikertR, widget=widgets.RadioSelect) # siblings = models.IntegerField(label='Haben Sie eins oder mehrere Geschwisterkinder?', # choices=[[1, 'Keine Geschwister'], # [2, 'Jüngere Geschwister'], # [3, 'Ältere Geschwister'], # [4, 'Jüngere und ältere Geschwister']], # widget=widgets.RadioSelect) risk_score = models.IntegerField(label='Wie würden Sie Ihre Risiko-Neigung beschreiben?', choices=[ [0, '0 (Extrem risko-avers)'], [1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5 (Risko neutral)'], [6, '6'], [7, '7'], [8, '8'], [9, '9'], [10, '10 (Extrem risko-freudig)']], widget=widgets.RadioSelect) # Falk, A., Becker, A., Dohmen, T. J., Huffman, D., & Sunde, U. (2016). The preference survey module: # A validated instrument for measuring risk, time, and social preferences. IZA Discussion Paper No. 9674. # Falk, A., Becker, A., Dohmen, T., Enke, B., Huffman, D., & Sunde, U. (2018). Global evidence on economic preferences. Quarterly Journal of Economics, 133 (4), 1645–1692. reci_ = models.IntegerField(label='Bitte überlegen Sie, was Sie in der folgenden Situation tun würden. Sie befinden sich in einer Gegend, ' 'die Sie nicht kennen, und stellen fest, dass Sie sich verirrt haben. Sie bitten einen Fremden um eine ' 'Wegbeschreibung. Der Fremde bietet Ihnen an, Sie zu Ihrem Ziel zu bringen. Die Hilfe für Sie kostet den ' 'Fremden insgesamt etwa 20 Euro. Der Fremde sagt jedoch, dass er oder sie kein Geld von Ihnen will. ' 'Sie haben sechs Geschenke dabei. Das billigste Geschenk kostet 5 Euro, das teuerste kostet 30 Euro. ' 'Schenken Sie dem Fremden eines der Geschenke als Dankeschön? ' 'Wenn ja, welches Geschenk schenken Sie dem Fremden?', choices=[ [0, 'Ich würde kein Geschenk geben.'], [1, 'Ich würde das 5 Euro Geschenk geben.'], [2, 'Ich würde das 10 Euro Geschenk geben.'], [3, 'Ich würde das 15 Euro Geschenk geben.'], [4, 'Ich würde das 20 Euro Geschenk geben.'], [5, 'Ich würde das 25 Euro Geschenk geben.'], [6, 'Ich würde das 30 Euro Geschenk geben.']], widget=widgets.RadioSelect) reci_2 = models.IntegerField(label='Wenn mir jemand einen Gefallen tut, bin ich bereit, ihn zu erwidern.', choices=[ [0, '0 (Trifft überhaupt nicht zu)'], [1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7'], [8, '8'], [9, '9'], [10, '10 (Trifft vollkommen zu)']], widget=widgets.RadioSelect) impatience = models.IntegerField(label='Als wie geduldig würden Sie sich selbst einschätzen?', choices=[ [0, '0 (Äußerst ungeduldig)'], [1, '1'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7'], [8, '8'], [9, '9'], [10, '10 (Äußerst geduldig)']], widget=widgets.RadioSelect) # parents_uni = models.IntegerField(label='Hat einer Ihrer beiden Elternteile an einer Universität/Fachhochschule/Hochschule studiert?', # choices=[[1, 'Keiner der beiden'], # [2, 'Nur der Vater'], # [3, 'Nur die Mutter'], # [4, 'Beide']], # widget=widgets.RadioSelect) age = models.IntegerField(label=Constants.age, choices=[[0, 'vor 1985'], [1, '1985-1989'], [2, '1990-1994'], [3, '1995-1999'], [4, '2000 oder später']], widget=widgets.RadioSelect) # Dataset position in the KI model: row 10 gender = models.IntegerField(label=Constants.gender, choices=Constants.choicesGender, widget=widgets.RadioSelect) # STATE OF BIRTH state_birth = models.IntegerField(label='Wo sind Sie geboren?', choices=[[0, 'Baden-Wuerttemberg'], [1, 'Bayern'], [2, 'Hessen'], [3, 'Nordrhein-Westfalen'], [4, 'Rheinland-Pfalz'], [5, 'Andere']], widget=widgets.RadioSelect) # # MATH LK # lk_ = models.IntegerField(label='Haben Sie die Fächer English und/oder Mathemathik in der Schule als Leistungskurs belegt?', # choices=[[0, 'Englisch'], # [1, 'Mathe'], # [2, 'Beide'], # [3, 'Keines der beiden']], # widget=widgets.RadioSelect) # PART HOME GERMAN home_language = models.IntegerField(label='Welche Sprache(n) sprechen Sie in Ihrem Elternhaus?', choices=[[0, 'Deutsch'], [1, 'Eine andere Sprache'], [2, 'Deutsch und eine andere Sprache']], widget=widgets.RadioSelect) # PROXY INTELLIGENCE academic_degree = models.IntegerField(label='Welcher ist ihr höchster akademischer Abschluss?', choices =[ [1,'Realschulabschluss'], [2,'Abitur'], [3,'Bachelor'], [4,'Master oder Diplom'], [5,'Doktor'], [6,'Anderer Abschluss']]) # TRUST cog_trust1 = models.IntegerField( choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) cog_trust2 = models.IntegerField( choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) cog_trust3 = models.IntegerField( choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) emo_trust1 = models.IntegerField( choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) emo_trust2 = models.IntegerField( choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) emo_trust3 = models.IntegerField( choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) man_check = models.IntegerField( label='In dieser Studie', initial=None, choices=[ [5, ' machen menschliche Experten eine Vorhersage über mich, die nur ich kenne.'], [4, ' machen menschliche Experten eine Vorhersage über mich, die ich und die andere Person kennen.'], [3, ' macht ein trainiertes Machine Learning System eine Vorhersage über mich, die nur ich kenne.'], [2, ' macht ein trainiertes Machine Learning System eine Vorhersage über mich, die ich und die andere Person kennen.'], [1, ' gibt es keine Vorhersagen über mich.']], widget=widgets.RadioSelect ) social_credit1 = models.IntegerField( label='Es ist schwieriger, eine Empfehlung abzulehnen oder zu ignorieren, wenn sie von einem anderen Menschen als von einer Maschine stammt.', choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) social_credit2 = models.IntegerField( label='Wenn mir die andere Person trotz der Vorhersage, dass ich weniger als 10 GE zurückschicke, vertraut und mir ihre/seine 10 GE sendet, muss ich dieses Vertrauen belohnen.', choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) social_credit3 = models.IntegerField( label='Wenn mir die andere Person trotz der Vorhersage, dass ich weniger als 10 GE zurückschicke, vertraut und mir ihre/seine 10 GE sendet, signalisiert dies echtes Vertrauen in mich.', choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) social_credit4 = models.IntegerField( label='Die soziale Verpflichtung die Empfehlungen anderer Menschen zu berücksichtigen ist größer als die soziale Verpflichtung maschinelle Empfehlungen zu berücksichtigen.', choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) social_credit5 = models.IntegerField( label='Wenn ich die Wahl hätte, mir von einem Menschen oder einer Maschine Empfehlungen aussprechen zu lassen, würde ich die maschinelle Hilfe bevorzugen, weil es weniger sozial unangenehm wäre, der Empfehlung letztlich nicht zu folgen.', choices=[ [1, '1 (Trifft überhaupt nicht zu)'], [2, '2'], [3, '3'], [4, '4'], [5, '5'], [6, '6'], [7, '7(Trifft vollkommen zu)']], widget=widgets.RadioSelect) # How to measure self-esteem with one item? validation of the German single-item self-esteem scale (G-SISE) rosen_1 = models.IntegerField( label='Ich habe ein hohes Selbstwertgefühl.', initial=None, choices=[ [1, ' Trifft nicht zu'], [2, ' Trifft eher nicht zu'], [3, ' teis-teils'], [4, ' Trifft eher zu'], [5, ' Trifft zu']], widget=widgets.RadioSelect ) # # rosen_2 = models.IntegerField( # label='Manchmal denke ich, dass ich überhaupt nicht gut bin.', # initial=None, # choices=[ # [4, ' Stimme überhaupt nicht zu'], # [3, ' Stimme nicht zu'], # [2, ' Stimme zu'], # [1, ' Stimme vollkommen zu']], # widget=widgets.RadioSelect # ) # # rosen_3 = models.IntegerField( # label='Ich habe das Gefühl, dass ich eine Reihe von guten Eigenschaften habe.', # initial=None, # choices=[ # [1, ' Stimme überhaupt nicht zu'], # [2, ' Stimme nicht zu'], # [3, ' Stimme zu'], # [4, ' Stimme vollkommen zu']], # widget=widgets.RadioSelect # ) # # rosen_4 = models.IntegerField( # label='Ich bin in der Lage, Dinge genauso gut zu tun wie die meisten anderen Menschen.', # initial=None, # choices=[ # [1, ' Stimme überhaupt nicht zu'], # [2, ' Stimme nicht zu'], # [3, ' Stimme zu'], # [4, ' Stimme vollkommen zu']], # widget=widgets.RadioSelect # ) # # rosen_5 = models.IntegerField( # label='Ich habe das Gefühl, dass ich nicht viel habe, worauf ich stolz sein kann.', # initial=None, # choices=[ # [4, ' Stimme überhaupt nicht zu'], # [3, ' Stimme nicht zu'], # [2, ' Stimme zu'], # [1, ' Stimme vollkommen zu']], # widget=widgets.RadioSelect # ) # # rosen_6 = models.IntegerField( # label='Manchmal fühle ich mich wirklich nutzlos.', # initial=None, # choices=[ # [4, ' Stimme überhaupt nicht zu'], # [3, ' Stimme nicht zu'], # [2, ' Stimme zu'], # [1, ' Stimme vollkommen zu']], # widget=widgets.RadioSelect # ) # # rosen_7 = models.IntegerField( # label='Ich habe das Gefühl, dass ich ein wertvoller Mensch bin, zumindest auf gleicher Ebene mit anderen.', # initial=None, # choices=[ # [1, ' Stimme überhaupt nicht zu'], # [2, ' Stimme nicht zu'], # [3, ' Stimme zu'], # [4, ' Stimme vollkommen zu']], # widget=widgets.RadioSelect # ) # # rosen_8 = models.IntegerField( # label='Ich wünschte, ich könnte mehr Respekt vor mir selbst haben.', # initial=None, # choices=[ # [4, ' Stimme überhaupt nicht zu'], # [3, ' Stimme nicht zu'], # [2, ' Stimme zu'], # [1, ' Stimme vollkommen zu']], # widget=widgets.RadioSelect # ) # # rosen_9 = models.IntegerField( # label='Alles in allem bin ich geneigt, mich als Versager zu betrachten.', # initial=None, # choices=[ # [4, ' Stimme überhaupt nicht zu'], # [3, ' Stimme nicht zu'], # [2, ' Stimme zu'], # [1, ' Stimme vollkommen zu']], # widget=widgets.RadioSelect # ) # # rosen_10 = models.IntegerField( # label='Ich habe eine positive Einstellung zu mir selbst.', # initial=None, # choices=[ # [1, ' Stimme überhaupt nicht zu'], # [2, ' Stimme nicht zu'], # [3, ' Stimme zu'], # [4, ' Stimme vollkommen zu']], # widget=widgets.RadioSelect # ) # # #