laurafdeza / Dissertation

0 stars 2 forks source link

Interaction effects #6

Open laurafdeza opened 4 years ago

laurafdeza commented 4 years ago

He empezado a pasar los modelos GCA para las pruebas auditivas. Quería preguntarte qué opción sería mejor para probar las interacciones. Tengo un montón de posibles variables independientes que se agrupan en 4 (condición, WM, rhythm y pitch) y he mirado ya los main effects, pero de interacción no he hecho ningún modelo todavía porque de rhythm estoy mirando cada uno de los 4 ritmos y pitch cada una de las melodías y si pruebo todas las combinaciones posibles, van a ser demasiados modelos. La otra alternativa que se me ocurre es agrupar todas las condiciones de ritmo y pitch y considerarlos dos variables globales. ¿Estaría bien si eligiera esta segunda alternativa? He subido el script y los modelos que tengo ya (menos monolingües, pero los resultados están comentados en el script). https://github.com/laurafdeza/Dissertation/blob/master/scripts/music/analyses/03_analysis_gca.R @jvcasillas

jvcasillas commented 4 years ago

He empezado a pasar los modelos GCA para las pruebas auditivas. Quería preguntarte qué opción sería mejor para probar las interacciones.

Pruebas las interacciones de la misma forma que pruebas los efectos principales. O sea comparando el modelo con otro que no tenga el efecto.

Tengo un montón de posibles variables independientes que se agrupan en 4 (condición, WM, rhythm y pitch) y he mirado ya los main effects, pero de interacción no he hecho ningún modelo todavía porque de rhythm estoy mirando cada uno de los 4 ritmos y pitch cada una de las melodías y si pruebo todas las combinaciones posibles, van a ser demasiados modelos.

Hay una lección importante aquí. Supongo que no tengo que decirla... Pero sí... son muchos modelos. Tienes hipótesis acerca de las interacciones entre los predictores?

La otra alternativa que se me ocurre es agrupar todas las condiciones de ritmo y pitch y considerarlos dos variables globales. ¿Estaría bien si eligiera esta segunda alternativa? He subido el script y los modelos que tengo ya (menos monolingües, pero los resultados están comentados en el script).

Esta alternativa puede servir, pero no sé si entiendo qué quieres decir. Si agrupas todas las condiciones entonces no serían dos variables, no? Sería una variable nueva. O me pierdo algo? Igual tienes que explicarte más. De todas formas, la decision se toma en base a si contesta tus preguntas de investigación. Tienes hipótesis acerca de los efectos entre rhythm y pitch?

laurafdeza commented 4 years ago

Hay una lección importante aquí. Supongo que no tengo que decirla... Pero sí... son muchos modelos. Tienes hipótesis acerca de las interacciones entre los predictores?

Pues vistos los main effects, diría que pitch perception tiene más posibilidades que ritmo.

Esta alternativa puede servir, pero no sé si entiendo qué quieres decir. Si agrupas todas las condiciones entonces no serían dos variables, no? Sería una variable nueva. O me pierdo algo? Igual tienes que explicarte más. De todas formas, la decision se toma en base a si contesta tus preguntas de investigación. Tienes hipótesis acerca de los efectos entre rhythm y pitch?

Me refiero a que en vez de pasar DO_down, DO_up, etc. podría tener simplemente "pitch" y "rhythm". Con estas dos variables ya subiría hasta ot1:condition_sum:WM_set:pitch:rhythm, que no sé ni siquiera si podré llegar a hacer eso. Mis hipótesis eran que pitch sólo afectaría a los chinos, que por un lado sí se ha cumplido, y que ritmo afectaría a todos los L2, pero de ritmo no ha salido prácticamente nada. No creo que en las interacciones vaya a salir mucho tampoco.

jvcasillas commented 4 years ago

Hay una lección importante aquí. Supongo que no tengo que decirla... Pero sí... son muchos modelos. Tienes hipótesis acerca de las interacciones entre los predictores?

Pues vistos los main effects, diría que pitch perception tiene más posibilidades que ritmo.

O sea no tenías hipótesis. Esto es más bien exploratory research, no?

Esta alternativa puede servir, pero no sé si entiendo qué quieres decir. Si agrupas todas las condiciones entonces no serían dos variables, no? Sería una variable nueva. O me pierdo algo? Igual tienes que explicarte más. De todas formas, la decision se toma en base a si contesta tus preguntas de investigación. Tienes hipótesis acerca de los efectos entre rhythm y pitch?

Me refiero a que en vez de pasar DO_down, DO_up, etc. podría tener simplemente "pitch" y "rhythm". Con estas dos variables ya subiría hasta ot1:condition_sum:WM_set:pitch:rhythm, que no sé ni siquiera si podré llegar a hacer eso. Mis hipótesis eran que pitch sólo afectaría a los chinos, que por un lado sí se ha cumplido, y que ritmo afectaría a todos los L2, pero de ritmo no ha salido prácticamente nada. No creo que en las interacciones vaya a salir mucho tampoco.

Ok ahora parece que sí tenías hipótesis concretas acerca de las interacciones (pitch x group, ritmo x group). Sigo sin entender lo otro. Qué significa pasar DO_down o DO_up? No son niveles de pitch? Entonces de todas formas tu factor es pitch? Escribe en un comentario lo que sería el "maximal model" (con todos los predictores) y pon también los niveles de cada factor categórico. Eso me ayuda a entender lo que quieres decir.

laurafdeza commented 4 years ago

Las alternativas que yo estaba pensando eran:

1)

gca_full_mod_base <-
  lmer(eLog ~ 1 + (ot1 + ot2 + ot3) * condition_sum * pitch * rhythm +          
         (1 + condition_sum + (ot1 + ot2 + ot3) | participant) +
         (1 + ot1 + ot2 + ot3 | target),
       control = lmerControl(optimizer = 'bobyqa',
                             optCtrl = list(maxfun = 2e4)),
       data = stress_gc_subset, REML = F)

Donde pitch y rhythm serían una sola medida, media de todas las condiciones.

2)

gca_full_mod_base <-
  lmer(eLog ~ 1 + (ot1 + ot2 + ot3) * condition_sum * pitch_sum * rhythm_sum +          
         (1 + condition_sum + (ot1 + ot2 + ot3) | participant) +
         (1 + ot1 + ot2 + ot3 | target),
       control = lmerControl(optimizer = 'bobyqa',
                             optCtrl = list(maxfun = 2e4)),
       data = stress_gc_subset, REML = F)

En cuyo caso habría luego que hacer como con group y refactor, no? Para mirar todos los niveles.

3)

gca_full_mod_base <-
  lmer(eLog ~ 1 + (ot1 + ot2 + ot3) * condition_sum * DO_up * DO_down * MI_up * ... * trochee * unpredictable +          
         (1 + condition_sum + (ot1 + ot2 + ot3) | participant) +
         (1 + ot1 + ot2 + ot3 | target),
       control = lmerControl(optimizer = 'bobyqa',
                             optCtrl = list(maxfun = 2e4)),
       data = stress_gc_subset, REML = F)

Con cada condición por separado, pero esto sería una locura.

Y estuve hablando con Cristina y me aconsejó no meter WM. Como en toda la lit de WM sale que según tu L1 tu verbal WM es distinta, estaría bien si dijese que he usado WM sólo para ver que la varianza dentro de cada población es la misma?

jvcasillas commented 4 years ago

Sigo sin entender todo (perdona, soy lento :) )

Las alternativas que yo estaba pensando eran:

gca_full_mod_base <-
  lmer(eLog ~ 1 + (ot1 + ot2 + ot3) * condition_sum * pitch * rhythm +          
         (1 + condition_sum + (ot1 + ot2 + ot3) | participant) +
         (1 + ot1 + ot2 + ot3 | target),
       control = lmerControl(optimizer = 'bobyqa',
                             optCtrl = list(maxfun = 2e4)),
       data = stress_gc_subset, REML = F)

Donde pitch y rhythm serían una sola medida, media de todas las condiciones.

Una sola medida? Dame un ejemplo de lo que quieres decir. Es un predictor continuo o categórico?

gca_full_mod_base <-
  lmer(eLog ~ 1 + (ot1 + ot2 + ot3) * condition_sum * pitch_sum * rhythm_sum +          
         (1 + condition_sum + (ot1 + ot2 + ot3) | participant) +
         (1 + ot1 + ot2 + ot3 | target),
       control = lmerControl(optimizer = 'bobyqa',
                             optCtrl = list(maxfun = 2e4)),
       data = stress_gc_subset, REML = F)

En cuyo caso habría luego que hacer como con group y refactor, no? Para mirar todos los niveles.

Ok, aquí entiendo que es categórico pero codificado para interpretar efectos principales. Entonces pitch y rhythm solo tienen dos niveles? Esta es la diferencia con respecto al modelo anterior?

gca_full_mod_base <-
  lmer(eLog ~ 1 + (ot1 + ot2 + ot3) * condition_sum * DO_up * DO_down * MI_up * ... * trochee * unpredictable +          
         (1 + condition_sum + (ot1 + ot2 + ot3) | participant) +
         (1 + ot1 + ot2 + ot3 | target),
       control = lmerControl(optimizer = 'bobyqa',
                             optCtrl = list(maxfun = 2e4)),
       data = stress_gc_subset, REML = F)

Con cada condición por separado, pero esto sería una locura.

Esto... mmm.. qué son? Los niveles de pitch y rhythm? No entiendo.

Lo que te estoy pidiendo que hagas es explicar el modelo para entender cuáles son tus predictores y cómo son (continuos o categóricos)... y si son categóricos quiero sabes cuáles son los niveles. Algo tipo...

Y estuve hablando con Cristina y me aconsejó no meter WM. Como en toda la lit de WM sale que según tu L1 tu verbal WM es distinta, estaría bien si dijese que he usado WM sólo para ver que la varianza dentro de cada población es la misma?

Si te interesa saber si la varianza entre las poblaciones es la misma puedes hacer un test aparte y no lo necesitas en tu modelo. Si quieres controlar WM tienes que incluirlo.

laurafdeza commented 4 years ago

Creo que estoy mezclando cosas. Por un lado tengo:

Por otro lado, tengo:

Para pitch y para rhythm hay distintos niveles porque cada condición es distinta. Es decir, los cuatro ritmos son distintos entre sí y para cada ritmo había 10 trials. Para pitch, cada nivel refleja una distancia distinta entre los tonos. Mi pregunta es si puedo combinar los RT de cada "nivel" de pitch para crear una sola medida continua que sea pitch, y lo mismo con rhythm, combinar lo sincronizados que iban con el ritmo para obtener una sola medida temporal continua. En el caso de pitch, siempre será una medida positiva, mientras que en ritmo puede ser que haya valores negativos si los participantes tendían a anticiparse al tono con el que tenían que pulsar espacio.

¡Espero haberme explicado mejor ahora! Creo que tengo un poco de cacao y por eso no está muy clara cuál es mi pregunta.

jvcasillas commented 4 years ago

Creo que estoy mezclando cosas. Por un lado tengo:

  • group: mon, ams, ims, aes, ies (categorical)
  • condition: present, preterit

Ok. No tenías grupo en los ejemplos anteriores.

Por otro lado, tengo:

  • pitch: DO_up, DO_down, MI_up, MI_down, SOL_up, SOL_down (pero para cada uno de estos niveles tengo una medida continua que refleja cuánto tardaron en darse de cuenta de que la melodía se hacía más aguda o más grave)

Me da que tienes dos factores aquí, no? Factor 1: DO, MI, SOL Factor 2: up, down

Aparte tienes un RT que refleja cuando tardaron en "darse cuenta"... o sea apretar un teclado, no? Parece que es otra DV.

  • rhythm: spondee, stressed_spondee, trochee, unpredictable (como en pitch, para cada nivel tengo una medida continua que refleja la distancia entre los key presses de los participantes respecto a un beat, es decir, lo sincronizados que iban con el ritmo)

Aquí parece que tienes un factor (4 niveles) y otra DV.

Para pitch y para rhythm hay distintos niveles porque cada condición es distinta. Es decir, los cuatro ritmos son distintos entre sí y para cada ritmo había 10 trials. Para pitch, cada nivel refleja una distancia distinta entre los tonos. Mi pregunta es si puedo combinar los RT de cada "nivel" de pitch para crear una sola medida continua que sea pitch, y lo mismo con rhythm, combinar lo sincronizados que iban con el ritmo para obtener una sola medida temporal continua. En el caso de pitch, siempre será una medida positiva, mientras que en ritmo puede ser que haya valores negativos si los participantes tendían a anticiparse al tono con el que tenían que pulsar espacio.

Creo que empiezo a entender lo que quieres decir. En lugar de usar los factores que describes arriba, quieres una medida individual (de cada participante) que refleje su comportamiento con respecto a pitch y rhythm (tipo beta_pitch, beta_rhythm) y no qué pitch/rhythm oyó, no?

¡Espero haberme explicado mejor ahora! Creo que tengo un poco de cacao y por eso no está muy clara cuál es mi pregunta.

laurafdeza commented 4 years ago

Sí, exacto. Al contrario que en la prueba lingüística, todos los participantes oyen todas las melodías y todos los ritmos. Y lo que quiero mirar es si tener un menor tiempo tanto en ritmo como en pitch está correlacionado de alguna manera con una mejor habilidad para anticipar en la prueba lingüística. En principio, puedo poner las tres DV en el modelo usando c(), no? Y añado las IV como he hecho hasta ahora.

Por cierto, ¡muchas gracias por los comentarios en la cover letter y el research statement!

jvcasillas commented 4 years ago

Sí, exacto. Al contrario que en la prueba lingüística, todos los participantes oyen todas las melodías y todos los ritmos. Y lo que quiero mirar es si tener un menor tiempo tanto en ritmo como en pitch está correlacionado de alguna manera con una mejor habilidad para anticipar en la prueba lingüística.

Creo que ayudaría bastante pensar en cómo conceptualizas cada componente de tu estudio. Tienes una tarea "lingüística" que entiendo que es la tarea de eyetracking (me perdonas... sé que lo habré leído y me lo habrás dicho, pero veo muchos estudios y no me acuerdo de estos detalles). En la tarea de eyetracking los participantes van estar en distintas condiciones relacionadas con pitch y rhythm, o sea son predictores en tu modelo, verdad?.

Ahora, tienes otra tarea aparte en la cual hacen otras cosas y mides response times de alguna forma. Es decir, esta tarea te sirve para determinar algo acerca de las capacidades de tus participantes con respecto al pitch y rhythm en una tarea no lingüística. Esta información es útil y la quieres incorporar al modelo de la tarea lingüística para poder determinar si la capacidad de alguien de usar pitch o rhythm en condiciones no lingüísticas tiene algo que ver a la hora de hacer una tarea lingüística. No es así?

En principio, puedo poner las tres DV en el modelo usando c(), no? Y añado las IV como he hecho hasta ahora.

Por cierto, ¡muchas gracias por los comentarios en la cover letter y el research statement!

No entiendo lo que quieres decir aquí. Específicamente no sé a qué modelo te refieres. Tienes varias tareas y vas a tener que crear varios modelos. Cuál es el propósito?

Creo que la pregunta que tienes ahora, si entiendo bien, es ¿cómo puedes usar la información de la tarea no lingüística para sacar una evaluación de cada participante en cuanto a sus capacidades con pitch y rhythm. O sea qué información incorporas al modelo que analiza la tarea lingüística?

laurafdeza commented 4 years ago

En la tarea de eyetracking los participantes van estar en distintas condiciones relacionadas con pitch y rhythm, o sea son predictores en tu modelo, verdad?

La tarea de eye-tracking es la lingüística, sí. Aquí las dos condiciones son paroxytone and oxytone, como el estudio que tienes con Nuria de firma-firmó. Al contrario de vuestro estudio y el de Cristina, aquí no hay más condiciones como estructura de la sílaba. En el modelo puramente lingüístico los predictores son por tanto grupo y condición (par vs ox), y WM si no lo complica demasiado.

Ahora, tienes otra tarea aparte en la cual hacen otras cosas y mides response times de alguna forma. Es decir, esta tarea te sirve para determinar algo acerca de las capacidades de tus participantes con respecto al pitch y rhythm en una tarea no lingüística. Esta información es útil y la quieres incorporar al modelo de la tarea lingüística para poder determinar si la capacidad de alguien de usar pitch o rhythm en condiciones no lingüísticas tiene algo que ver a la hora de hacer una tarea lingüística. No es así?

Además hay, efectivamente, una tarea de ritmo y otra de pitch. En estas dos tareas todos los participantes están expuestos a todas las condiciones. Y quiero ver cómo su performance en estas tareas está relacionada con su capacidad para usar lexical stress para anticipar en la prueba lingüística. Es decir, en mi mente, pitch y rhythm performance son también posibles predictores.

Creo que la pregunta que tienes ahora, si entiendo bien, es ¿cómo puedes usar la información de la tarea no lingüística para sacar una evaluación de cada participante en cuanto a sus capacidades con pitch y rhythm. O sea qué información incorporas al modelo que analiza la tarea lingüística?

Entonces, aunque tenga que crear varios modelos, al menos uno por cada prueba, me gustaría tener uno como tú dices donde incorporo la información no lingüística al modelo de la tarea lingüística.

Siento mucho que no me esté explicando muy allá. Si te parece, podemos hablar un día por Skype.

jvcasillas commented 3 years ago

En la tarea de eyetracking los participantes van estar en distintas condiciones relacionadas con pitch y rhythm, o sea son predictores en tu modelo, verdad?

La tarea de eye-tracking es la lingüística, sí. Aquí las dos condiciones son paroxytone and oxytone, como el estudio que tienes con Nuria de firma-firmó. Al contrario de vuestro estudio y el de Cristina, aquí no hay más condiciones como estructura de la sílaba. En el modelo puramente lingüístico los predictores son por tanto grupo y condición (par vs ox), y WM si no lo complica demasiado.

Entendido. Recomiendo que le digas stress al predictor que indica el acento léxico del ítem. Condition no significa nada.

Ahora, tienes otra tarea aparte en la cual hacen otras cosas y mides response times de alguna forma. Es decir, esta tarea te sirve para determinar algo acerca de las capacidades de tus participantes con respecto al pitch y rhythm en una tarea no lingüística. Esta información es útil y la quieres incorporar al modelo de la tarea lingüística para poder determinar si la capacidad de alguien de usar pitch o rhythm en condiciones no lingüísticas tiene algo que ver a la hora de hacer una tarea lingüística. No es así?

Además hay, efectivamente, una tarea de ritmo y otra de pitch. En estas dos tareas todos los participantes están expuestos a todas las condiciones. Y quiero ver cómo su performance en estas tareas está relacionada con su capacidad para usar lexical stress para anticipar en la prueba lingüística. Es decir, en mi mente, pitch y rhythm performance son también posibles predictores.

Bien. Entendido.

Creo que la pregunta que tienes ahora, si entiendo bien, es ¿cómo puedes usar la información de la tarea no lingüística para sacar una evaluación de cada participante en cuanto a sus capacidades con pitch y rhythm. O sea qué información incorporas al modelo que analiza la tarea lingüística?

Entonces, aunque tenga que crear varios modelos, al menos uno por cada prueba, me gustaría tener uno como tú dices donde incorporo la información no lingüística al modelo de la tarea lingüística.

Siento mucho que no me esté explicando muy allá. Si te parece, podemos hablar un día por Skype.

Creo que está todo claro. Yo que tú usaría las estimaciones de los efectos aleatorios de los modelos no lingüísticos como predictores en tu modelo lingüístico, pero para saber si eso es factible tengo que saber más de esos modelos. Cómo los tienes especificados ahora?

laurafdeza commented 3 years ago

Si entiendo bien lo que sugieres, sería algo asÍ? Cambié el data frame de wide a long para tener DO, MI y SOL en una columna, up y down en otra, y para tener también los distintos ritmos en otra. Ahora rt es cuánto tardan en darse cuenta de que el pitch es más agudo o más grave y time_diff el tiempo de diferencia entre el tap y el onset del beat.

mod_pitch_re0 <-
  lmer(rt ~ 1 + 
         (1 | participant) ,
       control = lmerControl(optimizer = 'bobyqa'),
       data = music50, weights = 1/wts, REML = F)

mod_pitch_re1 <- update(mod_pitch_re0, . ~ . + (1 | base_note))

mod_pitch_re2 <- update(mod_pitch_re1, . ~ . + (1 | direction))

Warning messages: 1: In doTryCatch(return(expr), name, parentenv, handler) : restarting interrupted promise evaluation 2: In doTryCatch(return(expr), name, parentenv, handler) : restarting interrupted promise evaluation

anova(mod_pitch_re0, mod_pitch_re1, mod_pitch_re2)

                       Df          AIC         BIC    logLik  deviance  Chisq Chi Df Pr(>Chisq)    

mod_pitch_re0 3 -533048 -533011 266527 -533054
mod_pitch_re1 4 -603940 -603891 301974 -603948 70895 1 < 2.2e-16 mod_pitch_re2 5 -708497 -708435 354253 -708507 104558 1 < 2.2e-16


mod_rhythm_re0 <-
  lmer(time_diff ~ 1 + 
         (1 | participant) ,
       control = lmerControl(optimizer = 'bobyqa'),
       data = music50, weights = 1/wts, REML = F)

mod_rhythm_re1 <- update(mod_rhythm_re0, . ~ . + (1 | pattern))

anova(mod_rhythm_re0, mod_rhythm_re1)
                          Df            AIC           BIC       logLik  deviance  Chisq Chi Df Pr(>Chisq)    

mod_rhythm_re0 3 -3841689 -3841651 1920847 -3841695
mod_rhythm_re1 4 -4037787 -4037737 2018897 -4037795 196100 1 < 2.2e-16 ***

jvcasillas commented 3 years ago

Tendré que mirarlo con más detalle luego, pero por ahora te puedo decir que tienes que quitar weights = 1/wts de todos los modelos a no ser que tengan como DV empirical logit (eLog). Ese modelo es un específico que hicimos con los datos de Cristina.