1 / 48

z- Tree Agosto 2012

z- Tree Agosto 2012. Rebeca.Parra@uv.es. Índice. Programas Funciones sobre tablas Operadores Estructuras de control Funciones Random Redondeo Ranking Pago random Nueva tabla Formato texto Botones ( Checker y programas) Session table Arrays Parameter table Matching Bancarrota

keaira
Download Presentation

z- Tree Agosto 2012

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. z-Tree Agosto 2012 Rebeca.Parra@uv.es

  2. Índice • Programas • Funciones sobre tablas • Operadores • Estructuras de control • Funciones • Random • Redondeo • Ranking • Pago random • Nueva tabla • Formato texto • Botones (Checker y programas) • Sessiontable • Arrays • Parametertable • Matching • Bancarrota • Excel • Cuestionarios

  3. Programas (1) • Las variables se definen en programas • Se ejecutan al inicial el stage • Se definensobreunatabla particular y permitenmodificar/ consultarsucontenido. • . 3

  4. Programas (2) Para definir un programa en el Background pinchar sobre logfile Menu Treatment > New Program (Ctrl+Alt+P) 4

  5. Programas (3) 5

  6. Programas (4) 6

  7. Programas (5) Treatment > New Program… 7

  8. Funciones sobre las tablas Permiteacceder a la informaciónalmacenada en ellas (consulta a la DB) tabla.función([condición], variable) • find(x), find(a,x): Primer valor de x (que cumple la condición ‘a’) • count(), count(a): Número de filas • maximum(x), maximum(a,x): Valor máximo de x • minimum(x), minimum(a,x): Valor mínimo de x • sum(x), sum(a,x): Suma de los valores de x • average(x), average(a,x): media de los valores x • Ej: subjects.find(tipo == 1, precio), subjects.maximum(precio), subjects.count() • Si más de un sujeto cumple la condición, recoge el valor del primero que encuentra 8

  9. Operadores • Logicaloperators • & logical and • | logicalor • Scopeoperators • : nexthigherscope • Ejemplo: • decisionOther= • subjects.find(same(partner) & same(Group) & not(same(Subject)), decision); • o bien, • decisionOther= • subjects.find(Partner == :Partner&Group == :Group&Subject != :Subject, decision); • mi variable Group! (en la fila que corresponde a mi sujeto) • Mathematicaloperators • + addition • - subtraction • * multiplication • / division • Ej.: suma = decision+decisionOther • Relationaloperators • < smaller • <= smallerorequal • == equals • != unequal • >= greaterorequal • > greater • Ej.: if(myValue<maximValue) { … } 9

  10. Estructuras de control if (type == 0) { endowment = 10; } elsif (type == 1) { endowment = 15; } else { endowment = 20; } • if (a) {ss1} • if (a) {ss1} else {ss2} • if (a) {ss0} elsif (b1) {ss1} elsif (b2) {ss2}.... • if (a) {ss0} elsif (b1) {ss1} elsif (b2) {ss2}.... else {sse} • while( a ) { ss} • repeat { ss} while ( a ) • later ( a ) do { ss} • later ( a ) repeat { ss} while (coin == 0.5) { coin = random(); } ¿Bucle infinito? CTRL+Alt+[F5] Deben evitarse. Solo debeejecutar en el testeo 10

  11. Funciones • abs( x ) Valor absoulto de x. • and( a,b ) TRUE si a y b son verdaderos. • gettime() Número de segundosdesde el inicio de la sesión(get_time.ztt) • if( a,x,y ) Si se cumple a, el valor de la funciónes x. y en casocontrario • max( x,y ) máximo de ‘x’ y ‘y’. • min( x,y ) mínimo de ‘x’ y ‘y’. • mod( x,y ) Resto de la división de ‘x’ y ‘y (útilparacalcular roles…) • not( a ) TRUE si a no escierto. • or( a,b) TRUE si a o b son verdaderos. • power( x,y ) potencia. • same( x ) Abreviatura de x == :x. Esta función es accesible dentro de las funciones de las tablas • sqrt( x) raízcuadrada de x. 11

  12. Random • Función Random • rand = random(); • Genera un valor aleatorio entre 0 y 1 (ambos incluidos) siguiendo una distribución uniformemente distribuida. • Valor random enteroacotado • rand = rounddown((max_value - min_value+1)*random(), 1) + min_value • Example: • rand = rounddown((6-2+1)*random(), 1) + 2; // número entre 2 y 6 • Valor random racionalacotado • Generating A Random Rational Number Between A Range (Inclusively): • value = (max_value – min_value)*random() + min_value; • rand = (10 – 5)*random() + 5; //genera un númeroaleatorioracional entre [5-10] 12

  13. Redondeo Función Round variable = round(value_to_round, multiple_rounded_to); Redondea el número (value_to_round) al múltiplo más cercano (multiple_rounded_to). Función Roundown(x, y):redondea x porabajo al múltiplomáscercano Función Roundup(x, y): redondea x porarriba al múltiplomáscercano Tambiénparanúmerosnegativos Ejemplos: var = round(0.5, 1); // redondea a 1, quees el valor máscercanoporencima de la mitad var= round(0.4, 1); // redondea 0.4 a 0 rounddown( -3.6,1) == -4. roundup( -3.6,1) == -3. 13

  14. Ejercicios • Nº sujetos: 2 • Nº periodos: 1 • En cada ronda obtén número aleatorio entero entre 1 y 10 (random) • Muestra • Cuantos sujetos están participando (count) • el valor random del otro participante (find) • La suma de los números aleatorios de los dos sujetos (sum) • Qué número de los dos es mayor (el que tenga el valor mayor gana 1000 colones) 14

  15. Ranking Ordena los sujetos en función de una variable. Útil para calcular matching o puntuaciones (ranking.ztt) 15

  16. Pago random Ejemplo de pago de una ronda aleatoria. Guardas el pago en la ronda aleatoria y lo arrastras durante el resto de periodos (pago_random.ztt) 16

  17. Nueva tabla Treatment -> New table… Crear un nuevo registro con nombretabla.new { } Accede a los elementos con nombretabla.do { } Crea un input con ContractCreatrion Box Muestra los output con ContractGrid Box ConstractList Box Prueba_tablaSession1.ztt 17

  18. ParameterTable (1) Treatment > Parameter Table Muestra la agrupación de los participantes durante los periodos especificados en el background. Permite ejecutar programas 18

  19. ParameterTable (2) Period Parameter Pulsandosobre el periodo Prompt: Si se introduce texto, este se muestra en la pantalla del servidor antes de comenzar el periodo. Hasta quevalide la pantalla el tratamiento no continua. Program: Se ejecuta en la globals table después de los programas del background, de la ‘specific parameter program’ y del ‘role program’. 19

  20. ParameterTable (3) Role Parameters Pulsando sobre el Sujeto Name: - Program: El programa se ejecuta en la subjects table, después de los programas del background y de la ‘specific parameter program’. 20

  21. ParameterTable (4) Specific Parameter Pulsando sobre el Periodo/Sujeto Group: Identificador de grupo del sujeto en el periodo actual. Name: - Program: El programa se ejecuta en la subjects table después de los programas del background. 21

  22. Matching (1) 22

  23. Matching (2) • Partner:El primer sujeto constituye el grupo 1, el siguiente el grupo 2, … • Stranger: • Matching aleatorio en cada periodo. • As First Selected Period:Matching aleatorio en el primer periodo. Se copia para el resto de periodos. 23

  24. Matching (3) Treatment > Parameter Table Partner Stranger As First Selected Period 24

  25. Matching (4) La asignación de grupos o parejas se puedehacer de manera manual, dandovalor a la variable Group 25

  26. Ejercicios • Nº sujetos: 4 • Se agrupan por parejas • Toma una decisión durante 3 periodos • Información mostrada: • Tu decisión • Decisión de tu pareja • Tu decisión anterior • Suma y media de las dos decisiones 26

  27. Dar Formato texto (1) zTree permite dar formato con la etiqueta RTF al texto mostrado en el ‘label’ del item: “{\rtf “ texto a formatear “}” • \iitalic (\i0 quita italic) • \subsubindice • \supersuperindice • \strike tacha • \ul subraya • \ul0 quita el subrayado • \cfnColor. n es el índice en la tabla de coloresdefinidoporcolortbl (verejemplo). • \fsnTamañofuente (n) 27 Etiquetasmásimportantes: \tabTabulador \par Nuevo párrafo \line Nueva línea \bullet Punto (·) \ql Alinea el txt a la izquierda \qr Alinea el txt a la derecha \qc Centra el txt \b Negrita (\b0 quita negrita)

  28. Dar Formato texto (2) 28 Para mostrartexto en el layout con “!text”, la etiqueta “\rtf” debeapareceren cadaopción: !text: 1="{\rtf \b Uno}"; 2="{\rtf \b Dos}"; Ejemploformatocondicional(bold_format.ztt): sólo cuando la variable BOLD es igual a 1 muestra el texto en negrita

  29. Dar Formato texto (3) 29 Ejemplo (formato_texto.ztt)

  30. Botones Checker Permite comprobar el valor de entrada de un item Si la condición NO se satisface, se muestra un mensaje Pordefecto, la condición se ejecutasobre la tabla subjects Sobre el botón -> Checker Programa El programa se ejecutasi la condiciónesvalidada Boton_no_salir_checker.ztt 30

  31. Arrays Vectores: variables indexadas Requiere declaración antes de ser usada: Arraynombre[]: define un vector con índices del 1 al número de sujetos conectados. Array nombre[tamaño]: define un vector con índices del 1 a tamaño. Arraynombre[i1, i2]: define un vector con índices del i1 a i2. El índicesiemprecomienza en 1 (nomArray[0]) Útilparaguardarlasdecisiones de los miembros de tugrupo, susidentificadores… 31

  32. Arrays • Ejemplo: • tamVector = 4; • arraymiVector[tamVector]; • i = 1; • while (i <= tamVector) { • miVector[i] = i; • i = i + 1; • } • Ejercicio: • Almacenar en un vector el identificador de cada uno de los miembros de tu grupo (grupos de 4), siendo el índice del vector el identificador del participante dentro del grupo. • Nota: para calcular • Arrays.ztt 32

  33. Sessiontable Permite acceder a las variables de la sesión anterior. Mientras no se cierre el zTree las variables permanecen en la tabla. session1.ztt session2.ztt prueba_tableSession1.ztt prueba_tableSession2.ztt variables variables Tratamiento 1 F5 Tratamiento 2 F5 session 33

  34. Bancarrota (1) • Se produce cuando el sujeto tiene perdidas • Diseña el experimento evitando la bancarrota. • ¿Pueden tener perdidas los sujetos? NO uses la variable Profit ni TotalProfit. Crear tu propia variable. Por ejemplo: prof • ¿Es inevitable? (nunca lo es) pero… Las pérdidas se puedenafrontarcon: • Beneficiosobenidos en anterioresperiodos • Show-up fee • Inyectando el experimentalistadurantela sesiónunacantidadsuficiente 34

  35. Bancarrota (2) 1 2 3 35

  36. Bancarrota (3) Si los periodosanteriores no cubrenlasperdidas, perosi el show-up fee, los sujetosobservanunapantalla con el mensaje 1 ¿continuanusando el show-up fee? Si El sujetollega al estado "BankruptShowupNo" (se observa en la clients table), y el experimentalistadebedescartarlo de la sesión ¡perdida de muestra! [estaopción no estáopertivaactualemte] No Continuan 36

  37. Bancarrota (4) • Si el show-up fee no cubrelasperdidas, los sujetosobservanunapantalla con el mensaje2. • Si la respuestaes NO: • El sujetollega al estado "BankruptShowupNo" (se observa en la clients table), y el experimentalistadebedescastarlo de la sesión • ¡perdida de muestra! [estaopción no estáopertivaactualemte] • Si la respuestaesSI: • El sujetollega al estado "BankruptShowupYes“ los sujetosobservanunapantalla con el mensaje3. • El experimentalistadebedecidirsiinyectar • unacantidadsuficienteparacubrirlas • perdidasy asícontinuar en la sesión • Bancarrota.ztt 37

  38. Bancarrota (5) FinalProfit: Suma todos los beneficios de los tratamientosque se hayamejecutado MoneyAdded Money: Cantidadinyectada al sujeto (bancarrota) ShowUpFee: Cantidad show-up fee. MoneyToPay: ShowUpfee+ FinalProfit + MoneyAdded. MoneyEarned: Showupfee + FinalProfit. 38

  39. Excel (1) aammdd_hhmm.xls Variables Nº sesión tablas fecha 39

  40. Excel (2) SessionTable FinalProfit guarda el beneficio acumulado según la tasa de cambio especificada Se recomienda calcular el beneficio en función la variable definida para tal efecto en la SubjectTable y posteriormente realizar la conversión de la moneda 40

  41. Excel (3) Beneficio acumulado calcular el beneficio en función la variable definida para tal efecto en la SubjectTable y posteriormente realizar la conversión de la moneda en otro documento excel con los pagos a los sujetos. 41

  42. Excel (4) Menu > Tools > SeparateTables… Lee el ficher .xls generado por z-Tree y crear tantos ficheros como tablas y tratamiento. Se puede seleccionar más de un fichero a la vez. Utilizar cuando haya finalizado la sesión. ztree2stata Kan Takeuchi ha desarrollado un fichero .ado paraimportar los datosgeneradospor el z-Tree directamente a stata. http://www.econ.hitu.ac.jp/~kan/research/ztree2stata/index.html 42

  43. RunMenu Stop Clock: Permite detener el tiempo definido en la etapa. Los sujetos pueden continuar tomando decisiones. Cuando todos terminen (o según se haya definido en la etapa), la ejecución del tratamiento continúa aunque el reloj se haya detenido. RestartClock: Reinicia el contador de tiempo en el segundo en el que se quedó LeaveStage: los sujetos seleccionado abandonan el active screen de la etapa actual (aunque no hubieran tomado la decisión) (testeo). Esta variable es modificable mediante código. Stop afterthisperiod: Una vez el periodo actual finaliza, se para la ejecución del tratamiento (testeo) Restartallclients: Restaura todos los clientes. Es necesario que los clientes sigan conectados correctamente. La dirección de las hojas es guardado cuando el primer cliente comienza y se ha marcado el comando Save Client Order RestoreClientOrder: Restaura el ordenestablecido en la tabla Clients de la últimasesión o después de la últimaejecución del comando SaveClientOrder: Guarda el orden establecido en la tabla Clients. ReloadDatabase: Vuelve a cargar las tablas. Útil en caso de error en la ejecución de la sesión 43

  44. Crash! (1) Si un cliente se desconectaesteapareceentreparéntesis Solución 1: Si se conectaotrocliente con el mismonombre, puedecontinuardonde se quedópreviamente. Solución 2: conectar un nuevocliente y Arrastralo hasta el clientedesconectado (nueva_hojareemplaza a hoja3) 44

  45. Crash! (2) Si el servidor se desconecta, realiza los siguientespasos: • Reinicia el z-Tree • Abre la Client’s table • Restauratodos los clientes (Run → Restart all clients) • Si los clientes no se conectan: • - Hazlomanualmente • - Esperaunos 4 minutos y repite la operación • - Reinicia el server y repite la operación. • Restaura el Clients Order • Recarga el database • Comprueba el número de periodos hasta donde se produjo en incidente (porejemplo, en la excel) • Abre el tratamiento y pon en #practice periods a –n (número de periodosyajugados) • Run → Start treatment 1 2 3 45

  46. Cuestionarios (1) Extensión .zqt Los datos se almacenan en .sbj. Unacolumna con cadasujeto con el identificador del zleave Esobligatorio la ejecución de un tratamiento .ztt antes de poderejecutar el cuestionario. Estápermitidoejecutar un tratamientodespués de un cuestionario. cuestionario_socio.ztq 46

  47. Cuestionarios (2) File > New Questionnaire File > New Question Form File > New Question 47

  48. Cuestionarios (3) 48

More Related