Começando do zero no PCIbex - Parte 05
Por Igor Costa (LAPAL/PUC-Rio) e Ana Paula Jakubów (LAPAL/PUC-Rio; UERJ)
Agora que já estabelecemos alguns conceitos básicos sobre o funcionamento do código, vamos dar alguns passos atrás e olhar para um aspecto muito importante no PCIbex: a organização dos estímulos experimentais na sua tabela .csv, complementando as informações que começamos a dar na Parte 2 do nosso tutorial.
Vamos partir da tabela que tínhamos deixado ao final daquele tutorial e que acabou sendo complementada no meio da Parte 3. Aqui está ela (apenas colocamos um destaque em dois dos conjuntos de itens para facilitar a explicação):
|
|
Montando um desenho between
Do modo como esses dados estão organizados, o PCIbex estará fazendo um design between participantes.
Design between: cada um dos participantes vê apenas uma condição experimental, sendo submetido a cada um dos itens dessa condição uma única vez. Por exemplo:
-
para a condição transitivo plural, o participante que foi colocado na lista B vê 4 itens distintos (As menina comeu…/ Os lobo mordeu…/ Os bruxo beijou…/As gata bebeu…); mas ele não é submetido a nenhuma das demais condições.
-
para a condição intransitivo singular, o participante que foi colocado na lista C vê itens distintos (A menina dormiu…/ O lobo morreu…/ O bruxo caiu…/ A gata chegou…); mas ele não é submetido a nenhuma das outras condições. E assim para as outras duas listas.
Até agora é isso o que viemos fazendo em todos os casos anteriores. Todos eram desenhos dessa natureza.
Montando um design within
Então vamos ver, agora, como montar um desenho within participantes, ou seja:
Design within: cada um dos participantes vê todas as condições experimentais, sendo submetido a uma (e somente uma) versão de cada item experimental (mais à frente vamos mudar isso. Por enquanto, fiquemos no simples.). Por exemplo:
- o participante 1, digamos, será submetido a todas as condições (transitivo-sg; transitivo-pl; intransitivo-sg; intransitivo-pl) vendo um item diferente para cada uma delas, como abaixo:
item | verbo | numero | frase |
---|---|---|---|
1 | transitivo | sg | A menina comeu o bolo. |
2 | transitivo | pl | Os lobo mordeu a lebre. |
3 | intransitivo | sg | O bruxo caiu da vassoura. |
4 | intransitivo | pl | As gata chegou tarde. |
- o participante 2, por sua vez, também será submetido a todas as condições, vendo um conjunto de versões diferente dos mesmos itens que foram vistos pelo participante 1, como abaixo:
item | verbo | numero | frase |
---|---|---|---|
1 | transitivo | pl | As menina comeu o bolo. |
2 | transitivo | sg | O lobo mordeu a lebre. |
3 | intransitivo | pl | Os bruxo caiu da vassoura. |
4 | intransitivo | sg | A gata chegou tarde. |
E assim por diante.
Desse modo, para montar um desenho within com os mesmos estímulos disponíveis acima, basta reorganizar a nossa tabela, como fizemos abaixo:
|
|
Uma dica mnemônica que pode facilitar a sua vida: use a coluna item como guia para atribuir os grupos. Assim:
-
para um design between, organize os estímulos pelo tipo de item, fazendo uma lista de todos os itens 1, depois 2, depois 3, etc. e apenas distribua os grupos em ordem para cada item (1A, 1B, 1C; 2A, 2B, 2C; etc.) como fizemos na primeira tabela. Desse modo, a coluna “group” estará definindo, de fato, os grupos experimentais, ou seja, algo como o “grupo controle” e os “grupos teste”.
-
para um design within, organize os itens em ordem crescente, um (e apenas um) para cada condição. Esgotados os itens, atribua o grupo A a esse conjunto; recomece a tarefa, organize os itens em ordem crescente, um por condição. Esgotados os itens, atribua o grupo B a esse conjunto (1A, 2A, 3A; 1B, 2B, 3B, etc.); e assim sucessivamente, como fizemos na tabela logo aqui acima. Desse modo, a coluna “group” estará definindo as listas experimentais, já que todos os sujeitos são submetidos a todas as condições, não há de fato “grupos”, mas listas de sujeitos.
Como nos informa um dos criadores do PCIbex:
The very function of the group/list column is to control between-subject row selection. All rows that should be presented to the same participant, even those defining different conditions as a result of a within-subject design manipulation, should have the same value in their group/list cell.
Ao final do processo, você terá o desenho experimental que deseja. É claro que você não precisa fazer nessa ordem (se fizer do modo correto, o PCIbex lerá do mesmo jeito), mas, fazendo assim, é mais fácil perceber eventuais erros humanos no processo.
Montando um desenho misto: parte between e parte within
Agora que isso ficou entendido, vamos complicar um pouquinho mais e imaginar um desenho ainda mais complexo, mantendo os mesmos fatores de antes, de modo que todos os sujeitos sejam submetidos a todas as condições (within), mas acrescentando um novo, em que um grupo veja uma condição e outro grupo veja outra (between).
- verbo: transitivo x intransitivo - within
- numero: singular (sg) x plural (pl) - within
- encaixamento: encaixada x não encaixada - between
Você pode pensar no grupo que verá as sentenças não encaixadas como o grupo controle, por exemplo.
Se fizermos isso, nossa tabela duplicará de tamanho, já que cada um dos quatro itens agora terá uma versão encaixada e uma não encaixada (4 itens x 2 tipos de verbos x 2 tipos de números x 2 tipos de encaixamento = 32 versões dos 4 itens originais).
|
|
Primeira solução: errada!
Uma primeira solução para esse problema seria pensar o seguinte: a coluna “group” controla as linhas que são apresentadas aos sujeitos. Logo, se atribuirmos às sentenças “encaixadas” o grupo A e às “não encaixadas” o grupo B, então o PCIbex fará a divisão adequada dos sujeitos nos grupos. Faça isso e veja o que acontece. Se você tiver preguiça de incluir uma nova coluna chamada group com A e B, simplesmente mude o nome da coluna “encaixamento” na tabela acima para “group”, desse modo:
item,group,verbo,numero,frase
1,encaixada,transitivo,sg,Paulo olhou a menina que comeu o bolo.
2,encaixada,transitivo,pl,João beijou os lobo que mordeu a lebre.
3,encaixada,intransitivo,sg,Taís ajudou o bruxo que caiu da vassoura.
O problema será evidente: o mesmo item experimental será mostrado várias vezes ao mesmo sujeito. Na verdade, o sujeito que estiver, digamos, no grupo “encaixada” verá todas as 16 versões de itens aí disponíveis, o que claramente não faz nenhum sentido. Isso ocorre porque nós sinalizamos para o programa fazer a distribuição between, mas não a within.
Segunda solução: agora a correta!
A outra opção seria fazer o que fizemos antes, organizando um conjunto de itens em ordem crescente e então atribuindo uma lista a cada conjunto de itens, mais ou menos como abaixo:
|
|
Vamos tentar entender o que estamos fazendo aqui e o porquê isso funciona:
- Primeiro, agora temos 8 listas experimentais (de A até H);
- Os sujeitos submetidos às listas de A até D só veem sentenças encaixadas (grupo teste ou fator between), mas eles veem todas as condições de “verbo” e de “número” (fatores within);
- Os sujeitos submetidos às listas de E até H só veem sentenças não encaixadas (grupo controle ou fator between), mas eles veem todas as condições de “verbo” e de “número” (fator within).
Mas não fique parado aqui olhando para essa tabela: crie um script (ou copie e cole o primeiro que usamos aqui) e veja a mágica em funcionamento.
Feito isso, basta organizar uma tabela de distratoras, aleatorizar tudo como vimos na Parte 03 e ser feliz.
Mas ainda não vimos como tomar medidas repetidas dos participantes por condição, ou seja, como fazer para que o mesmo participante seja submetido a vários itens da mesma condição e não a apenas um, como até agora estamos fazendo.
Tomando medidas repetidas por condição de cada sujeito
Vamos ver, então, como submeter o mesmo sujeito a vários itens na mesma condição. Para tanto, vamos tomar apenas as sentenças encaixadas e criar mais 4 itens para esse conjunto de dados, de modo que tenhamos um total de 8 itens experimentais e, portanto, 32 versões de cada item, como abaixo:
|
|
O que fizemos acima pode parecer muito confuso e complexo, mas não é. Observe as marcações do grupo A, que reproduzimos na tabela abaixo:
group | verbo | numero | frase | item |
---|---|---|---|---|
A | transitivo | sg | Paulo olhou a menina que comeu o bolo. | 1 |
A | transitivo | pl | João beijou os lobo que mordeu a lebre. | 2 |
A | intransitivo | sg | Taís ajudou o bruxo que caiu da vassoura. | 3 |
A | intransitivo | pl | Maria acariciou as gata que chegou tarde. | 4 |
A | transitivo | sg | Pedro aplaudiu o jogador que virou o jogo. | 5 |
A | transitivo | pl | Lua visitou as freira que alimentou o mendigo. | 6 |
A | intransitivo | sg | Josemar seduziu a moça que escorregou na poça. | 7 |
A | intransitivo | pl | Juliana atingiu o rapaz que sai do ônibus. | 8 |
Agora, se quiser, faça uma tabela semelhante para o Grupo B. Como você pode ver, para organizar rapidamente esse tipo de tabela, basta organizar os itens em ordem crescente (de 1 até 8) e atribuir a todo esse conjunto o Grupo A; em seguida, organize um segundo conjunto de 1 até 8 e atribua o Grupo B; o mesmo para o grupo C e D. No caso, em questão, cada sujeito verá 2 itens em cada uma das 4 condições.
Se você tiver mais itens, digamos, 12 itens, basta organizá-los em conjuntos de 1 até 12 e aplicar os grupos por conjuntos de itens.
Abaixo vamos reescrever a mesma tabela acima organizada dessa maneira (observe que ambas funcionam igualmente bem para o PCIbex):
|
|
Rodando o nosso experimento completo (até aqui)
Feito isso, já podemos pensar em rodar nossa experimento “completo” (mas apenas por enquanto): vamos mantê-lo com o conjunto de frases experimentais em que tínhamos encaixadas e não encaixadas como fator between (não esse último que vimos, mas o anterior) e o conjunto abaixo de frases distratoras (como cada lista vê apenas 4 sentenças experimentais, coloquemos o triplo de distratoras):
|
|
Ambas essas tabelas .csv devem entrar na aba Resources
. E o código abaixo será o que rodaremos:
PennController.ResetPrefix(null)
Sequence("instrucao", rshuffle("distratoras", "experimentais"))
newTrial("instrucao",
defaultText
.center()
.print()
,
newText("Aperte a barra de espaço para ler as frases. <br><br> Seu tempo de leitura estará sendo medido.")
,
newText("<br>Vamos começar?")
,
newButton("meubotao", "Sim!")
.center()
.print()
.wait()
)
,
Template("minhatabela.csv",
exp => newTrial("experimentais",
newController("DashedSentence", {s: exp.frase})
.center()
.print()
.log()
.wait()
.remove()
)
)
,
Template("minhasdistratoras.csv",
dist => newTrial("distratoras",
newController("DashedSentence", {s: dist.frase})
.center()
.print()
.log()
.wait()
.remove()
)
)
Feito isso, podemos avançar para inclusão de perguntas de compreensão para cada sentença, o que faremos na Parte 6.