Les analyses chimiques d'échantillons environnementaux sont souvent censurées ci-dessous aux limites de déclaration ou à diverses limites de détection / quantification. Ces dernières peuvent varier, généralement proportionnellement aux valeurs des autres variables. Par exemple, un échantillon avec une concentration élevée d'un composé pourrait devoir être dilué pour l'analyse, ce qui entraînerait une inflation proportionnelle des limites de censure pour tous les autres composés analysés en même temps dans cet échantillon. Comme autre exemple, parfois la présence d'un composé peut modifier la réponse du test à d'autres composés (une «interférence matricielle»); lorsque cela est détecté par le laboratoire, il gonfle ses limites de déclaration en conséquence.
Je cherche un moyen pratique d'estimer la matrice variance-covariance pour de tels ensembles de données, en particulier lorsque de nombreux composés subissent une censure supérieure à 50%, ce qui est souvent le cas. Un modèle de distribution conventionnel est que les logarithmes des (vraies) concentrations sont distribués multinormalement, et cela semble bien cadrer dans la pratique, donc une solution à cette situation serait utile.
(Par "pratique", j'entends une méthode qui peut être codée de manière fiable dans au moins un environnement logiciel généralement disponible comme R, Python, SAS, etc., d'une manière qui s'exécute assez rapidement pour prendre en charge des recalculs itératifs tels que ceux qui se produisent lors d'une imputation multiple, et qui est raisonnablement stable [c'est pourquoi je suis réticent à explorer une implémentation de BUGS, bien que les solutions bayésiennes en général soient les bienvenues].)
Merci d'avance pour vos réflexions à ce sujet.
Réponses:
Je n'ai pas complètement intériorisé le problème des interférences matricielles mais voici une approche. Laisser:
être un vecteur qui représente la concentration de tous les composés cibles dans l'échantillon non dilué.Y
est le vecteur correspondant dans l'échantillon dilué.Z
est le facteur de dilution, c'est-à-dire que l'échantillon est dilué d : 1.d d
Notre modèle est:
où représente l'erreur due aux erreurs de dilution.ϵ∼N(0,σ2 I)
Il s'ensuit donc que:
Notons la distribution ci-dessus de par f Z ( . ) .Z fZ(.)
Soit les concentrations observées et τ représente le seuil de l'instrument de test en dessous duquel il ne peut pas détecter un composé. Ensuite, pour le composé i t h , nous avons:O τ ith
Sans perte de généralité, que les premiers composés soient tels qu'ils soient inférieurs au seuil. La fonction de vraisemblance peut alors s'écrire:k
où
L'estimation consiste alors à utiliser soit le maximum de vraisemblance, soit les idées bayésiennes. Je ne sais pas à quel point ce qui précède est traitable, mais j'espère que cela vous donnera quelques idées.
la source
Une autre option plus efficace en termes de calcul serait d'ajuster la matrice de covariance en faisant correspondre les moments en utilisant un modèle qui a été appelé "gaussien dichomisé", en réalité juste un modèle de copule gaussien.
Un article récent de Macke et al 2010 décrit une procédure de forme fermée pour ajuster ce modèle qui implique uniquement la matrice de covariance empirique (censurée) et le calcul de quelques probabilités normales bivariées. Le même groupe (laboratoire de Bethge au MPI Tuebingen) a également décrit des modèles gaussiens discrets / continus hybrides qui sont probablement ce que vous voulez ici (c'est-à-dire, puisque les VR gaussiens ne sont pas complètement "dichotomisés" - seulement ceux en dessous du seuil).
Surtout, ce n'est pas un estimateur ML, et je crains de ne pas savoir quelles sont ses propriétés de biais.
la source
Combien de composés y a-t-il dans votre échantillon? (Ou, quelle est la taille de la matrice de covariance en question?).
Alan Genz a un très bon code dans une variété de langages (R, Matlab, Fortran; voir ici ) pour calculer les intégrales de densités normales multivariées sur des hyper-rectangles (c'est-à-dire les types d'intégrales dont vous avez besoin pour évaluer la probabilité, comme indiqué par utilisateur28).
J'ai utilisé ces fonctions ("ADAPT" et "QSIMVN") pour les intégrales jusqu'à environ 10-12 dimensions, et plusieurs fonctions sur cette page annoncent les intégrales (et les dérivés associés dont vous pourriez avoir besoin) pour les problèmes jusqu'à la dimension 100. Je ne Je ne sais pas si c'est assez de dimensions pour vos besoins, mais si c'est le cas, cela pourrait probablement vous permettre de trouver des estimations du maximum de vraisemblance par ascension du gradient.
la source