Existem muitas maneiras de controlar variáveis.
O mais fácil, e o que você inventou, é estratificar seus dados para ter subgrupos com características semelhantes - existem métodos para reunir esses resultados e obter uma "resposta" única. Isso funciona se você tiver um número muito pequeno de variáveis que deseja controlar, mas, como descobriu corretamente, isso se desfaz rapidamente à medida que você divide seus dados em partes cada vez menores.
Uma abordagem mais comum é incluir as variáveis que você deseja controlar em um modelo de regressão. Por exemplo, se você tiver um modelo de regressão que possa ser descrito conceitualmente como:
BMI = Impatience + Race + Gender + Socioeconomic Status + IQ
A estimativa que você obterá para a impaciência será o efeito da impaciência nos níveis das outras covariáveis - a regressão permite suavizar essencialmente locais onde você não tem muitos dados (o problema com a abordagem de estratificação), embora isso deva ser feito com cuidado.
Ainda existem maneiras mais sofisticadas de controlar outras variáveis, mas as probabilidades são de que quando alguém diz "controlado por outras variáveis", elas significam que foram incluídas em um modelo de regressão.
Tudo bem, você pediu um exemplo no qual possa trabalhar para ver como isso acontece. Vou orientá-lo passo a passo. Tudo que você precisa é de uma cópia do R instalada.
Primeiro, precisamos de alguns dados. Recorte e cole os seguintes pedaços de código no R. Lembre-se de que este é um exemplo artificial que eu inventei no local, mas mostra o processo.
covariate <- sample(0:1, 100, replace=TRUE)
exposure <- runif(100,0,1)+(0.3*covariate)
outcome <- 2.0+(0.5*exposure)+(0.25*covariate)
Esses são seus dados. Observe que já sabemos a relação entre o resultado, a exposição e a covariável - esse é o objetivo de muitos estudos de simulação (dos quais este é um exemplo extremamente básico. Você começa com uma estrutura que conhece e garante que seu método possa você a resposta certa.
Agora, então, no modelo de regressão. Digite o seguinte:
lm(outcome~exposure)
Você recebeu um Intercept = 2.0 e uma exposição = 0.6766? Ou algo parecido, dado que haverá alguma variação aleatória nos dados? Bom - esta resposta está errada. Nós sabemos que está errado. Por que isso está errado? Falhamos no controle de uma variável que afeta o resultado e a exposição. É uma variável binária, faça como quiser - sexo, fumante / não fumante, etc.
Agora execute este modelo:
lm(outcome~exposure+covariate)
Desta vez, você deve obter coeficientes de Interceptação = 2,00, exposição = 0,50 e uma covariável de 0,25. Esta, como sabemos, é a resposta certa. Você controlou para outras variáveis.
Agora, o que acontece quando não sabemos se cuidamos de todas as variáveis que precisamos (nunca realmente fazemos)? Isso é chamado de confusão residual , e é uma preocupação na maioria dos estudos observacionais - que controlamos imperfeitamente, e nossa resposta, embora quase certa, não é exata. Isso ajuda mais?