楼主: Eagle_XIV
2182 6

[实验经济学] ztree问题求助:treatment structure [推广有奖]

  • 0关注
  • 0粉丝

本科生

11%

还不是VIP/贵宾

-

威望
0
论坛币
67 个
通用积分
0
学术水平
1 点
热心指数
1 点
信用等级
0 点
经验
659 点
帖子
17
精华
0
在线时间
126 小时
注册时间
2012-11-14
最后登录
2019-3-1

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位大神好,我在做ztree时遇到一些问题自己解决不了orz,想请教大家的意见,如能解决,不胜感激!我的问题是:1  在bargaining的实验里,一个pair可能多次讨价还价。我看到现在的论文大多是在一个stage里设定x秒的时间,每过1秒就discount一下。想问ztree能不能实现一个bargain用多个stages,每失败一个stage就进入下一个然后discount一下?这个问题也可以表示成:一个treatment里面的stage能不能有无限多个(e.g. 用 loop),根据实验结果每个pair各自可以独立结束自己的period?如果这样不行,我用笨办法做20个stage,每个实验者可以不全用完,这样行吗?
2  我在import paremeter table的时候能够导入,也就是说tree上有这个图标了,而且我也是按照说明书上的要求做的txt表格。但是之后run的时候我却无法引用table里面的参数。想问这是为什么?我该怎么解决?
希望高人指点,不胜感激!



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:treatment Structure struct ztree treat structure discount 不胜感激 period stages

已有 1 人评分经验 收起 理由
江村北鸥 + 100 精彩帖子

总评分: 经验 + 100   查看全部评分

沙发
blue_wind777 发表于 2015-3-10 07:04:42 |只看作者 |坛友微信交流群
关于第一个问题: 不用创建那么多stages。可以用如下的办法

准备工作:

1. 创建一个variable: control = 0;

2. 在一个stage中建立三个container boxes (下面简称Box1 Box2和Box3),都设成全屏大小。每个box都有一个显示条件。 Box1 的显示条件是control ==0 ;Box2 的显示条件是 control ==1,Box2 的显示条件是 control ==2。这样当一个subject来到这个stage时,他看到的是Box1 (因为control == 0)上面可以写上某个game。

3. 在Box1下创建一个OK button,双击OK button设成:点击OK不离开这个stage (一定要设,否则一点击就离开这个stage了)。 然后在OK button下写一个程序 (Ctrl + Alt + P) ,程序是 if (某条件满足) control ==2, 否则的话 control == 1 。也就是说,当某个达到某个条件,点击这个OK button, BOX3就会出现,否则 BOX2就会出现。

4. 把Box2按照类似BOX1的方式也设好。(注意 BOX 2 OK button的程序是 if (某条件满足) control ==2, 否则的话 control == 0)

5. 在Box3 下设立一个 OK button, 然后设成 "点击离开stage" (这个是默认的选项)

准备完成之后,就在BOX1 和 BOX2 里写上带有某个变量x的game,所有的discount也可以写在BOX1 和 BOX 2的OK button的程序下,比如被试一点击OK,某个变量x就变成0.8x,  以此来实现discount。Box3 写上"点击OK去往下一个game“ 。按照这样设好的话,被试一组人在没达到某个条件之前 会无限在BOX1 和 BOX2 之间切换(不断地bargain,不断的discount),而当满足某条件会进入BOX3, 点击OK去往下一个stage。


已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
江村北鸥 + 100 + 100 + 5 + 5 精彩帖子
LIXUANHANK + 3 + 3 + 3 精彩帖子

总评分: 经验 + 100  论坛币 + 100  学术水平 + 8  热心指数 + 8  信用等级 + 3   查看全部评分

使用道具

藤椅
Eagle_XIV 发表于 2015-3-10 16:35:39 |只看作者 |坛友微信交流群
blue_wind777 发表于 2015-3-10 07:04
关于第一个问题: 不用创建那么多stages。可以用如下的办法

准备工作:
天呐,好厉害啊!我看懂了,非常,非常感谢!

使用道具

板凳
2156375 发表于 2015-4-21 03:23:52 |只看作者 |坛友微信交流群
blue_wind777 发表于 2015-3-10 07:04
关于第一个问题: 不用创建那么多stages。可以用如下的办法

准备工作:
请问版主, 能不能把remaining time 显示在屏幕的其他位置?最好是可以创建一个box, 等remainingtime 还有10秒时跳出来。 谢谢!

使用道具

报纸
blue_wind777 发表于 2015-4-21 05:35:23 |只看作者 |坛友微信交流群
2156375 发表于 2015-4-21 03:23
请问版主, 能不能把remaining time 显示在屏幕的其他位置?最好是可以创建一个box, 等remainingtime 还有 ...
Remaining time写在header box里面。 你只要调整header box的大小和位置就能能随意使remaining time显示在不同的地方。(你可以新建一个header box,把show current period number 等不需要的选项勾掉。就剩时间,放哪里你随意。

关于控制最后十秒的问题,我感觉也许可以使用later命令 比如你的game时间长短是60秒,点一个按钮开始游戏,你需要在按钮下面写下这样的程序。

appear = 50;
later(appear)do {
    show_header_box = 1;
}

然后在header box的显示条件(condition) 里面添上 show_header_box == 1 。

这样的程序意味着在点完按钮后延迟50秒,你的header box才会显示出来, 这时候刚好剩10秒。

程序是我随手写的,没用z-tree跑 不知道有没有bug 你试一下。

(PS: 我不是版主,上面写的版主人选可能一直没更新。因为我平时比较忙,所以建议版主让有时间和精力的坛友当,大家别在喊版主啦,因为有时候我反应不过来。 :D )
已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
LIXUANHANK + 5 + 5 + 5 精彩帖子
2156375 + 1 + 1 + 1 精彩帖子
江村北鸥 + 100 + 100 + 5 + 5 + 5 热心帮助其他会员

总评分: 经验 + 100  论坛币 + 100  学术水平 + 11  热心指数 + 11  信用等级 + 11   查看全部评分

使用道具

地板
2156375 发表于 2015-4-21 20:13:57 |只看作者 |坛友微信交流群
blue_wind777 发表于 2015-4-21 05:35
Remaining time写在header box里面。 你只要调整header box的大小和位置就能能随意使remaining time显示在 ...
十分感谢!!!

使用道具

7
天城少年 发表于 2015-5-17 10:47:37 |只看作者 |坛友微信交流群
能不能写一个新手教程啊

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-30 16:54