Calcul des tailles d'effet et des erreurs standard pour la différence entre deux différences moyennes normalisées

8

J'ai deux questions connexes, toutes deux liées à une méta-analyse que j'effectue là où les principaux résultats sont exprimés en termes de différence moyenne normalisée.

Mes études ont plusieurs variables disponibles avec lesquelles calculer la différence moyenne standardisée. Je voudrais savoir dans quelle mesure les différences moyennes standardisées calculées sur une variable sont cohérentes avec les différences moyennes standardisées sur l'autre. À mon avis, cette question pourrait être exprimée comme une méta-analyse de la différence entre deux ensembles de différences moyennes normalisées. Cependant, j'ai du mal à déterminer la taille de l'effet et l'erreur d'échantillonnage pour la différence entre deux différences moyennes normalisées au sein de la même étude.

Pour exprimer mon problème d'une manière différente, considérons une étude à deux conditions avec les groupes et et les variables de résultat et . Ces deux variables de résultat sont corrélées comme . Nous pouvons calculer des différences moyennes normalisées pour et entre et , donnant , , et leurs variances d'échantillonnage et . J'ai inclus un schéma très simple de la situation ci-dessous.g1g2var1var2cor(var1,var2)var1var2g1g2dvar1dvar2vdvar1vdvar2

entrez la description de l'image ici

maintenant que nous calculons une différence entre et tant que . Je peux calculer la différence moyenne standardisée entre et comme , qui a la variance d'échantillonnage .var1var2diffg1g2ddiffvddiff

Ce que je voudrais faire, c'est exprimer et en fonction des variables suivantes:ddiffvddiff

  1. Tailles d'effet et ,dvar1dvar2
  2. échantillonnage et , etvdvar1vdvar2
  3. Correlationcor(var1,var2)

Je pense que cet objectif devrait être possible étant donné que, dans un contexte simple (non méta-analytique), l'écart-type de la différence entre et est donné commevar1var2

sd(var1)2+sd(var2)22cor(var1,var2)sd(var1)sd(var2)


Je m'intéresse également à une situation un peu plus compliquée où l'on a des études avec 3 (ou plus) groupes, et où l'on calcule donc deux ensembles de différences moyennes standardisées entre les deux variables candidates.

Pour exprimer cette deuxième question d'une manière différente, supposons qu'une étude donnée comporte trois groupes , et et deux variables de résultats et . De plus, supposons une fois de plus que et sont corrélés comme .g1g2g3var1var2var1var2cor(var1,var2)

Choisissez le groupe comme groupe de référence et, pour , calculez les tailles d'effet pour le groupe vs et vs . Cela produira deux ensembles de tailles d'effet pour chacun de et - pour , et , et, pour , et . Cela produira également deux variances d'échantillonnage pour chaque ensemble de tailles d'effet (pour , etg1var1g1g2g1g3var1var2var1dvar1g1g2dvar1g1g3var2dvar2g1g2dvar2g1g3var1vdvar1g1g2vdvar1g1g3 et, pour , et ) et une covariance d'échantillonnage pour chacun variable (pour , , et, pour , ). J'ai inclus un schéma très simple de la situation ci-dessous.var2vdvar2g1g2vdvar2g1g3var1cov(dvar1g1g2,dvar1g1g3)var2cov(dvar2g1g2,dvar2g1g3)

entrez la description de l'image ici

Encore une fois, je peux créer un score de différence entre et , ce qui donne un . Je peux ensuite calculer deux ensembles de tailles d'effet sur ce score de différence comme ci-dessus, en calculant une différence moyenne standardisée pour la comparaison entre et (donnant ) et une différence moyenne standardisée pour la comparaison entre et (donnant . Bien entendu, cette procédure produira également des variances et des covariances d'échantillonnage correspondantes.var1var2diffg1g2ddiffg1g2g1g3ddiffg1g3)

Ce que je voudrais, c'est exprimer les tailles d'effet, les variances d'échantillonnage et les covariances d'échantillonnage pour en termes de:diff

  1. Tailles d'effet , , etdvar1g1g2dvar1g1g3dvar2g1g2dvar2g1g3
  2. échantillonnage , , et ,vdvar1g1g2vdvar1g1g3vdvar2g1g2vdvar2g1g3
  3. échantillonnage et , etcov(dvar1g1g2,dvar1g1g3)cov(dvar2g1g2,dvar2g1g3)
  4. Correlationcor(var1,var2)

Encore une fois, je pense que mon objectif devrait être réalisable étant donné qu'il est possible de calculer l'écart type d'un score de différence entre et étant donné , et .var1var2sd(var1)sd(var2)cor(var1,var2)

Je me rends compte que mes questions sont un peu compliquées, mais j'ai l'impression qu'on pourrait y répondre étant donné un peu d'algèbre intelligente. Faites-moi savoir si je peux clarifier ma question et / ou ma notation de quelque manière que ce soit.

Patrick S. Forscher
la source

Réponses:

7

Je peux certainement vous donner une réponse à la première partie de votre question.

En utilisant votre notation, laissez et désigner les deux valeurs d (calculées pour les deux mêmes groupes) en fonction de deux variables dépendantes différentes et laissez et désigner les variances d'échantillonnage correspondantes, qui sont généralement calculés / estimés avec: et où et sont les deux groupes tailles.dvar1dvar2vvar1vvar2

vvar1=1n1+1n2+dvar122(n1+n2)
vvar2=1n1+1n2+dvar222(n1+n2),
n1n2

Soit la corrélation entre les deux variables. La covariance entre les deux valeurs d peut alors être estimée avec:Voir l'équation (19.27) dans le chapitre sur les tailles d'effet dépendant stochastiquement de Gleser et Olkin (2009) dans The handbook of research synthese and meta-analysis (2nd ed.).r=cor(var1,var2)

cov(dvar1,dvar2)=(1n1+1n2)r+(dvar1dvar22(n1+n2))r2.

Par conséquent, la variance d'échantillonnage de peut être calculée / estimée avec:

ddiff=dvar1dvar2
vddiff=vvar1+vvar22cov(dvar1,dvar2).

Le chapitre de Gleser et Olkin répond également en partie à votre deuxième question. Essentiellement, vous avez ce que les auteurs appellent une «étude à traitements multiples» et ils fournissent également des équations pour la covariance dans ce cas (voir Attente des variables corrélées ). Cependant, votre cas est en réalité une combinaison du cas de «traitement multiple» et de «point final multiple». La dérivation des équations de covariance nécessaires nécessiterait un travail supplémentaire.

Wolfgang
la source
1
Est-il également vrai que est simplement - , ou cette quantité est-elle également affectée par ? ddiffdvar1dvar2cor(var1,var2)
Patrick S.Forscher
1
Oui, faites juste la différence. La corrélation n'est pertinente que pour calculer la variance d'échantillonnage de . ddiff
Wolfgang
1
Génial! Avez-vous, par hasard, une idée de l'approche que je pourrais adopter pour résoudre ma deuxième question? Je sais par Gleser et Olkin que la covariance entre et est , mais je ne pas comment utiliser ces informations pour obtenir la covariance entre les deux tailles d'effet pour . dg1g2dg1g31/ng1+(dg1g2dg1g3)/(2(ng1+ng2+ng3))ddiff
Patrick S.Forscher
Si vous ne connaissez pas la solution complète, je serais heureux d'avoir une idée générale de la façon dont j'enquêterais sur ce problème.
Patrick S.Forscher
1
Il faudrait revenir à la dérivation de ces covariances et voir si vous pouvez généraliser / combiner les deux cas (plusieurs groupes et plusieurs points de terminaison). Une brève esquisse sur la façon de calculer la covariance pour le cas à plusieurs points de terminaison se trouve dans l'annexe de Rosenthal et Rubin (1986) . Je ne connais pas de référence qui couvre le cas de groupes multiples.
Wolfgang
3

On peut répondre à cette question en utilisant une approche de modélisation par équation structurelle (SEM). Il peut être utilisé tant que les tailles d'effet sont fonction des paramètres, tels que les moyennes, les corrélations et les écarts-types. La matrice de covariance d'échantillonnage est dérivée numériquement par l'utilisation de la méthode Delta automatiquement en SEM. Le chapitre 3 de Cheung (2015) fournit une introduction et des exemples de cette approche.

L'un des exemples utilisés dans l'ouvrage est les études à traitements multiples et à critères multiples. Voici la syntaxe et la sortie en R.

###################################################
### code chunk number 8: ME_MT
###################################################

## Load the library for SEM
library(lavaan)

## Covariance matrix of the control group for variables 1 and 2
lower <- '11          
          5, 10'
## Convert a lower triangle data into a covariance matrix
Cov1 <- getCov(lower, diag=TRUE, names=c("x1", "x2"))

## Covariance matrix of the treatment group 1 for variables 1 and 2
lower <- '12          
          6, 11'
Cov2 <- getCov(lower, diag=TRUE, names=c("x1", "x2"))

## Covariance matrix of the treatment group 2 for variables 1 and 2
lower <- '13          
          7, 12'
Cov3 <- getCov(lower, diag=TRUE, names=c("x1", "x2"))

## Convert covariance matrices into a list
Cov <- list(Cov1, Cov2, Cov3)

## Means for the three groups
## 10 and 11 are the means for variables 1 and 2
Mean <- list(c(10,11), c(12,13), c(13,14))

## Sample sizes for the groups
N <- c(50, 50, 50)

## Assuming homogeneity of covariance matrices
## You can free this constraint by using different labels
model5 <- 'eta1 =~ c("sd1", "sd1", "sd1")*x1
           eta2 =~ c("sd2", "sd2", "sd2")*x2
           eta1 ~~ c("r", "r", "r")*eta2
           ## The subscripts 0, 1 and 2 represent the means
           ##  of the control and two  treatment groups
           x1 ~ c("m1_0", "m1_1", "m1_2")*1
           x2 ~ c("m2_0", "m2_1", "m2_2")*1
           ## The measurement errors are fixed at 0
           x1 ~~ 0*x1
           x2 ~~ 0*x2
           ## Multiple endpoint effect size 1 for treatment group 1
           ES1_1 := (m1_1 - m1_0)/sd1
           ## Multiple endpoint effect size 2 for treatment group 1
           ES2_1 := (m2_1 - m2_0)/sd2
           ## Multiple endpoint effect size 1 for treatment group 2
           ES1_2 := (m1_2 - m1_0)/sd1
           ## Multiple endpoint effect size 2 for treatment group 2
           ES2_2 := (m2_2 - m2_0)/sd2'

fit5 <- sem(model5, sample.cov=Cov, sample.mean=Mean, 
            sample.nobs=N, std.lv=TRUE, 
            sample.cov.rescale=FALSE)

## Obtain the free parameters in the model
( x <- fit5@Fit@x )

## [1]  3.464102  3.316625  0.522233 10.000000 11.000000 12.000000 13.000000
## [8] 13.000000 14.000000    

## Obtain the sampling covariance matrix of the parameter estimates
VCOV <- vcov(fit5)

## Compute the multivariate effect sizes
( ES <- fit5@[email protected](x=x) )
##     ES1_1     ES2_1     ES1_2     ES2_2 
## 0.5773503 0.6030227 0.8660254 0.9045340

## Compute the jacobian for 'defined parameters'
JAC <- lavaan:::lavJacobianD(func=fit5@[email protected], x=x)

## Compute the sampling covariance matrix using delta method
ES.VCOV <- JAC %*% VCOV %*% t(JAC)

## Add the variable names for ease of reference
dimnames(ES.VCOV) <- list(names(ES), names(ES))

ES.VCOV
##            ES1_1      ES2_1      ES1_2      ES2_2
## ES1_1 0.04111111 0.02120582 0.02166667 0.01091942
## ES2_1 0.02120582 0.04121212 0.01091942 0.02181818
## ES1_2 0.02166667 0.01091942 0.04250000 0.02160145
## ES2_2 0.01091942 0.02181818 0.02160145 0.04272727

Dans cet exemple, le vecteur estimé des tailles d'effet est que leur matrice de covariance d'échantillonnage est ES et ES.VCOV, respectivement. ES1_1 et ES2_1 sont les tailles d'effet du groupe 1 comparant avec le groupe témoin, tandis que ES1_2 et ES2_2 sont les tailles d'effet groupe 2 comparant avec le groupe témoin.

Référence

Cheung, MW-L. (2015). Méta-analyse: une approche de modélisation par équation structurelle . Chichester, West Sussex: John Wiley & Sons, Inc.

Mike Cheung
la source
Merci de partager cette approche intéressante! Lorsque j'ai essayé d'exécuter les lignes suivantes: ( ES <- fit5@[email protected](x=x) )et JAC <- lavaan:::lavJacobianD(func=fit5@[email protected], x=x)j'ai eu une erreur qui xn'existe pas.
Patrick S.Forscher
En outre, votre exemple semble suggérer que, pour cette approche au travail, je dois connaître la corrélation / covariance entre var1et à l' var2intérieur g1, g2et g3. Est-ce le cas? En général , dans les études avec lesquels je travaille, seule la corrélation globale (effondrement à travers g1, g2et g3) est rapporté.
Patrick S.Forscher
Enfin, cette approche fonctionne-t-elle dans le cas de deux groupes où je ne connais pas les moyennes et les écarts-types pour et , mais suis capable d'extraire directement les tailles d'effet et de, par exemple, t -des tests rapportés dans le document en question? var1var2dvar1dvar2
Patrick S.Forscher
Merci, Patrick. J'ai ajouté la ligne manquante: (x <- fit5 @ Fit @ x). Étant donné que les tailles d'effet sont fonction des moyennes, des variances et des covariances, cette approche a besoin de ces éléments. Si certains de ces éléments ne sont pas disponibles, vous devrez peut-être trouver d'autres approches ...
Mike Cheung
Bonjour Mike, j'espère que vous suivez toujours ce fil. J'étais intéressé par votre approche, j'ai donc essayé de simuler des données à trois groupes avec deux variables (code collé dans le commentaire ci-dessous). Lorsque j'ai comparé votre approche à certains calculs manuels, j'ai obtenu des tailles d'effet identiques mais différentes erreurs d'échantillonnage des tailles d'effet. Pour autant que je sache, j'utilise votre code et les formules correctes pour les variances d'échantillonnage. Une idée de ce qui se passe?
Patrick S.Forscher
0

Je ne sais pas exactement comment cette solution a été dérivée, mais j'ai pensé que je la publierais de toute façon pour que d'autres personnes puissent l'évaluer. J'ai également pensé que cette information valait la peine d'être publiée en tant que réponse complète plutôt que de la laisser enfouie dans les commentaires de la réponse fournie par @Wolfgang.

Selon une réponse que Ian White a fournie en correspondance avec moi, compte tenu des groupes , et , et en supposant que l'écart-type utilisé pour calculer la taille de ses effets était regroupé entre , et ,g1g2g3g1g2g3

cov(ddiffg1g2,ddiffg1g3)=rn1+ddiffg1g2ddiffg1g3r2(2(n1+n2+n3))

Encore une fois, je ne suis pas tout à fait certain de la façon dont cette solution a été dérivée, et je vous serais reconnaissant de tout renseignement que d'autres pourraient fournir.

Patrick S. Forscher
la source