Slide 1

Slide 1 text

SMARTRIQS 基礎編 柏原 宗一郎 関西学院大学 社会学研究科/ 日本学術振興会 (DC2) 1

Slide 2

Slide 2 text

目次 I. 入門編:SMARTRIQSの説明と実施まで 1. SMARTRIQSとは 2. 環境構築から実験実施まで 3. 演習1:実際に実験を動かしてみる(最後通牒ゲームを例に) 4. 演習2:日本語化 5. モニタリング II. 基礎編:仕組みの理解と実験の作り方 1. 仕組みを理解する 2. 実験の作り方 3. 演習3:人数と利得構造を変える(公共財ゲームを例に) 4. 演習4:繰り返しにする(公共財ゲームを例に) 5. 演習5:独裁者ゲームを最後通牒ゲームにする III. 実践編/応用編 1. 実験実施する上での注意点(リクルーティング / 質問紙の追加位置) 2. タイムアウトとBotや脱落について 3. チャットテンプレート 4. 自分でサーバーを立てる 5. JavaScriptを使ったカスタマイズ(先制攻撃ゲームを例に) 6. 結果の表示の仕方(補足) 2

Slide 3

Slide 3 text

2.1仕組みを理解する 基礎編

Slide 4

Slide 4 text

ここまで •多くのテンプレートのゲームは実施できる • ただし、必ずしも自分の研究内容にフィットするわけではない • ポイントやラウンド数を変更したい •その前に「仕組み」を知る • 実験を構成しやすくなる • 手元にQualtricsのアンケートフローの画面を用意 4

Slide 5

Slide 5 text

公共財ゲームのテンプレートを見ながら •英語版の公共財ゲームのテンプレートを読み込む • (日本語verでもOK) • Public_Goods_Game_TEMPLATE_11-6-2019.qsf 5

Slide 6

Slide 6 text

例:公共財ゲーム •ルール • 4人のプレイヤーに100円ずつ渡される • 投資した金額を2倍して、参加者4人で山分け • キープすると、そのまま保持する 6 100円 100円 100円 100円

Slide 7

Slide 7 text

例:公共財ゲーム •流れ 1. 100円から◯◯円の投資 2. 投資した金額を集計 3. 報酬 = 自分の残り金額 + 集計した金額 × 2倍 ÷ 4人 7 100円 100円 100円 100円

Slide 8

Slide 8 text

ブロックや埋め込みデータの果たす役割 ① 質問ブロック • フェイスシート, 回答, 実験結果 ② 埋め込みデータ • SMARTRIQSの設定 • 送受信する情報の保存・決定 ③ 〇〇 BLOCK • マッチング • サーバーへ送信・受信 8 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK

Slide 9

Slide 9 text

それぞれの役割 ① 質問ブロック • 自分で文章を書いたり、回答欄を設定 ② 埋め込みデータ ③ 〇〇 BLOCK • すべての実験において共通 • 適切な位置に配置するだけ ※編集画面に何回も読み込まない • (日本語化以外で)中身は触らない • 内部でJSが動作 9 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK 埋め込み データ +

Slide 10

Slide 10 text

ブロックや埋め込みデータの果たす役割 ① 質問ブロック • フェイスシート, 回答, 実験結果 ② 埋め込みデータ • SMARTRIQSの設定 • 送信する情報の決定 ③ 〇〇 BLOCK • マッチング • サーバーへ送信・受信 10

Slide 11

Slide 11 text

ブロックや埋め込みデータの果たす役割 ① 質問ブロック • フェイスシート, 回答, 実験結果 ② Qualtricsの埋め込みデータ • SMARTRIQSの設定 • 送受信する情報の決定・保存 ① SMARTRIQSの機能ブロック • マッチング • サーバーへ送信・受信 11

Slide 12

Slide 12 text

ブロックや埋め込みデータの果たす役割 ① 質問ブロック • フェイスシート, 回答, 実験結果 ② 埋め込みデータ • SMARTRIQSの設定 • 送信する情報の決定 ③ 〇〇 BLOCK • マッチング • サーバーへ送信・受信 12

Slide 13

Slide 13 text

BLOCKについて •◯◯ BLOCK • SMARTRIQSの機能を持ったブロック • アンケートには1回だけ読み込み • アンケートフローで複製する •各ブロックの説明 • MATCH:参加者をマッチング • SEND:回答をサーバーへ送信 • GET:サーバーから回答を取得 • COMPLETE:終了したということを送信 13 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK

Slide 14

Slide 14 text

イメージを掴む •アンケートフローの1例 14 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK 埋め込みデータ QUALTRICS部分 SMARTRIQSサーバー

Slide 15

Slide 15 text

流れ①:MATCH BLOCKで •MATCH BLOCKに到達 • SMARTRQSサーバーへ通知し、他の参加者とマッチング 15 \コンニチワ/ 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK 埋め込みデータ

Slide 16

Slide 16 text

埋め込みデータ→MATCH BLOCK •MATCH BLOCK • 埋め込みデータにSMARTRIQSのIDや実験ID、集団サイズを記載 • MATCH BLOCKへ到達すると、これを読み込みサーバーへ送信 • 情報が一致する人とマッチングする 16

Slide 17

Slide 17 text

☆参加者の役割”roles”, “participantRole” •“roles”: グループ内の参加者ID (A, B, C, D) • 全員が同じ役割のゲームでも必須 • 人数分必要 •participantRole:個々人に割り当てられた”role” 17 役割 A 役割 B 役割 C 役割 D 役割 E

Slide 18

Slide 18 text

☆参加者の役割:“participantRole” •ランダム化 • 参加者をrolesのいずれかに、ランダムに割り振るには • participantRole = random •役割を個別に指定する • 参加者に個別の役割を振ることもできる • 1人目:participantRole = A • 2人目:participantRole = B 18

Slide 19

Slide 19 text

回答保存用の埋め込みデータ •各参加者の回答を保存する埋め込みデータを用意 • endowmentやmultiplierなど名前は何でもOK • SMARTRIQSに必須の埋め込みデータと被らないように 19

Slide 20

Slide 20 text

流れ②:参加者が回答すると •回答すると、埋め込みデータに保存される 20 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK 埋め込みデータ \投資:30円/

Slide 21

Slide 21 text

回答を入力する •自由選択でも、多肢選択でもOK 21

Slide 22

Slide 22 text

回答→埋め込みデータへ •埋め込みデータを見てみると • 回答のあとに、”${}”を使って、回答を抽出 • ${q://Q1D1/ChoiceTextEntryValue}は、Q1のテキストの値を取るという意味 • “contributionOwn”に保存している 22

Slide 23

Slide 23 text

豆知識:回答データを利用する •Qualtricsで回答データを取得表示する • 「差し込みテキストを挿入」から回答データや埋め込みデー タを表示可能 “${q://QID1/ChoiceTextEntryValue}” • アンケートフローでもこの形式で利用できる 23

Slide 24

Slide 24 text

流れ③:SEND BLOCK •SEND BLOCKは、回答を送信 24 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK 埋め込みデータ \Aさんは投資:30円/ \投資:30円/

Slide 25

Slide 25 text

SEND BLOCK •情報をサーバーへ送信 • ”sendData”に回答を入れて送信 • 埋め込みデータに設定する •Required Variables • sendStage • 現在のステージ番号 • sendData • サーバーへ送りたい埋め込みデータを入力 25 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK

Slide 26

Slide 26 text

SEND BLOCKの使い方 •sendDataに入れた埋め込みデータが、SEND BLOCKへ到達すると、サーバーへ送信 • sendData = contributionOwn • 保存したcontributionOwnをsendDataに入れている 26

Slide 27

Slide 27 text

流れ④:GET BLOCKで •GET BLOCKは、回答を受信 27 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK 埋め込みデータ \Bさんは投資:10円/ \Cさんは投資:80円/ \Dさんは投資:50円/

Slide 28

Slide 28 text

GET BLOCK •情報をサーバーから受信する • GET BLOCKの前に以下の3つの埋め込みデータを定義 • GET BLOCKへ到達するとデータを取りに行く •Required Variables • getData • 誰のデータを取得するか • getStage • 現在のステージ番号 • saveData • 取得した値を保存する埋め込みデータの名前 • 複数人のデータを得るならカンマ区切りにする 28 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK

Slide 29

Slide 29 text

GET BLOCKの使い方 •誰のどのデータを取得するか指定 • getStage:ステージ1のデータ • getData: A〜Dさんのデータ • saveData:埋め込みデータcontributionA〜Dに回答を保存 • defaultData: 脱落したときのBot用データ(人数分) 29

Slide 30

Slide 30 text

豆知識:Operation (SMARTRIQS) •SMARTRIQSの数値演算機能 • min, max:最小値・最大値を返す • secondMax:2番目に高い値を返す • average:平均値を返す • sum:総和を返す • rank:順位付けする • accuracyRanck • 参加者の検索値とターゲット値との絶対直線距離に基づいて参加者 をランク付け • p-BeautyRank • 参加者が検索した値と、p-Beautyの当選番号との絶対直線距離に 基づいて参加者をランク付 30

Slide 31

Slide 31 text

豆知識:Qualtricsの数値演算機能 •Qualtricsにも数値演算機能がある • “$e{ }”で囲むと可能 • $e{ 4 + 4 } = 8になる •回答や埋め込みデータ同士でも可能 • 参加者全員の回答を足し合わせるなど • $e{ ${e://Field/contributionA} + ${e://Field/contributionB} + ${e://Field/contributionC} }” 31 https://www.qualtrics.com/support/jp/survey- platform/survey-module/editing-questions/piped- text/math-operations/

Slide 32

Slide 32 text

流れ⑤:回答を表示 •回答を表示 • 埋め込みデータに帰ってきた回答を表示 32 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK 埋め込みデータ \ 合 計 ⾦ 額 : 170円 /

Slide 33

Slide 33 text

埋め込みデータ→回答表示 •さっきsaveDataで取得した他の人の回答を表示 33

Slide 34

Slide 34 text

流れ⑤:COMPLETE BLOCK •COMPLETE BLOCK • サーバーに終了を通知する 34 説明(Intro) SEND BLOCK GET BLOCK 回答表⽰ MATCH BLOCK 回答 COMPLETE BLOCK 埋め込みデータ \ オ ワ ッ タ ヨ /

Slide 35

Slide 35 text

補足:participantRoleについて

Slide 36

Slide 36 text

例:独裁者・最後通牒ゲームでは •自動的に役割A, Bが割り振られている 36 送り手 役割A 受け手 役割B

Slide 37

Slide 37 text

例:独裁者・最後通牒ゲームでは •roles = A, BからparticipantRoleに割り振り • A, Bは、sender, receiverでも良い 37

Slide 38

Slide 38 text

例:独裁者・最後通牒ゲームでは •participantRoleで条件分岐 • Aの人:送り手の画面のみを表示している 38

Slide 39

Slide 39 text

例:独裁者・最後通牒ゲームでは •participantRoleで条件分岐 • Bの人:受け手の画面のみを表示している • SEND BLOCKなしで、すぐにGET BLOCKに 39

Slide 40

Slide 40 text

2.2 実験の作り方 基礎編

Slide 41

Slide 41 text

実験の作り方① 1. テンプレートを元にカスタマイズ • 自分の研究に合うものを選ぶ • 設定やラウンド, アンケートフローを変更する • ☆基本的にはこちらを推奨 2. Generic Interactive Survey Templateを使う • SMARTRIQSの◯◯ BLOCKを抽出したもの • テンプレでカバーできない場合はこちら • ゼロから構成する必要ありで難易度高め 41

Slide 42

Slide 42 text

テンプレートを元にカスタマイズするなら ① やりたい実験や自分のテーマに近い実験を選ぶ ② アンケートフローや埋め込みデータをカスタム • ラウンド数や人数、ポイント設定を調整する ③ 完成した実験に、質問紙をインポート or 追加する 42

Slide 43

Slide 43 text

なにのゲームを作るか? •まず、なにのゲームをするか決める • ゲームの種類・ルール • 人数: 2人 or 3人 …. • 持ち点…. • 選択肢…. 43

Slide 44

Slide 44 text

ゲームの構造とフローを考える 1. 同時意思決定型 • A, Bさんが、同時に選択をする • 例:公共財ゲーム • 何ポイントを投資するか? 2. 逐次手番型 • Aさん → Bさんの順番 • participantRoleによって異なる意思決定をする • 例:最後通牒ゲーム • Aさんは送り手、Bさんは受け手 44

Slide 45

Slide 45 text

例 •例1:Stag Huntゲーム • 2人で2択の選択をする利得構造 • 同時に選択する • (囚人のジレンマゲームに近い…) •例2:信頼ゲーム • 2人で2択、A→Bさんの順番でゲーム • AさんがBさんにお金を送る→3倍される→Bさんはいくら送 るか決める • (最後通牒ゲームに近い…) 45 Opponent Attack Keep Self Attack Keep 500 500 400 400 400 100 100 400

Slide 46

Slide 46 text

これからの演習:実験をカスタムして仕組みに慣れる 1. 演習3:人数と利得構造を変える(公共財ゲームを例に) • 既存のゲームの設定変更 • 埋め込みデータの修正 2. 演習4:繰り返しにする(公共財ゲームを例に) • 既存のゲームの拡張 • 埋め込みデータを追加する 3. 演習5:独裁者ゲームを最後通牒ゲームにする • rolesの役割と逐次手番のゲームの理解 46

Slide 47

Slide 47 text

2.3 演習3 利得構造と人数を変える (公共財ゲームを例に) 基礎編

Slide 48

Slide 48 text

公共財ゲーム:設定を考える •設定の変更ポイント ① 持ち点 (endowment):100 → 200 ② 何倍か(multiplier):2倍 → 1.5倍 ③ 人数(groupSize):4人 → 5人 ④ 役割(roles):[A, B, C, D]→ [A, B, C, D, E] •アンケートフローの変更点 • ①, ②は簡単:変更するだけ • ③, ④を変更する → 上記以外にも変更すべき部分がある 48

Slide 49

Slide 49 text

人数を増やす際の注意点① •回答保存用の埋め込みデータの追加 • 増やす人数分、こちらも増やす 49

Slide 50

Slide 50 text

人数を増やす際の注意点② •GET BLOCKで取得する部分 • 追加したEさんのデータ取得も記載する • getData, defaultData, saveData 50

Slide 51

Slide 51 text

人数を増やす際の注意点③ •利得構造の計算式も変える • 4人で割っていたのを、5人で割る 51

Slide 52

Slide 52 text

2.4演習4 繰り返しにする (公共財ゲームを例に) 基礎編

Slide 53

Slide 53 text

1回から繰り返しへの拡張 •設定の変更ポイント • numStage:1→2 • (だけに見えるが….) •アンケートフローの変更点 ① 質問ブロック ② 埋め込みデータ • 繰り返した際の質問ブロックや保存するための埋め込み データが必要 53

Slide 54

Slide 54 text

つまり、これを 54 説明(Intro) SEND BLOCK GET BLOCK Feedback MATCH BLOCK Contribution COMPLETE BLOCK

Slide 55

Slide 55 text

つまり、こうする 55 SEND BLOCK GET BLOCK Feedback1 MATCH BLOCK Contribution1 SEND BLOCK GET BLOCK Feedback2 Contribution2

Slide 56

Slide 56 text

テンプレートを読み込む •新規にテンプレートを読み込んでおく 56

Slide 57

Slide 57 text

変更点①:1回から2回へ必要なもの ① 質問ブロック • アンケート編集画面でコピーする • Contribution→ Contribution1, Contribution2 • Feedback → Feedback1, Feedback2 ② 埋め込みデータ • 自分や他の人の回答保存用 • contributionOwn, contributionA, B, C, D, payoff • すべてcontributionOwn1, contributionOwn2や contributionA1, contributionA2という風に増やす 57

Slide 58

Slide 58 text

埋め込みデータを増やす •新しい埋め込みデータブロックを作成し増やす 58

Slide 59

Slide 59 text

変更点②: SEND/ GET BLOCKを増やす •SEND/GET BLOCKはアンケートフローでコピー • アンケート編集画面でコピペ しない • 〇〇 BLOCKはどれも同じなので、増やす必要はない https://smartriqs.com/sending-retrieving/ 59

Slide 60

Slide 60 text

SEND / GET BLOCKのコピペ 1. アンケートフローで「下に追加」→「ブロック」 2. 該当ブロックを選択する 60

Slide 61

Slide 61 text

変更点③:SEND/GET BLOCK用の埋め込みデータ •SEND/GET BLOCK用の埋め込みデータを増やす 61

Slide 62

Slide 62 text

条件分岐で見やすく(公式テンプレから) •公式テンプレは「条件分岐」で見やすくしている • 1回目, 2回目を条件分岐して見やすくしている •「等しい」ではなく「次の数以上である」で分岐 • numStagesは、更新されない 62