7 votos

MicroArray, comprobar si una muestra es la misma con datos de alta varianza.

Explicaré el problema, pero lo que busco son algunos métodos sugeridos para abordar este problema. No necesitas saber lo que es un microarray pero si te interesa mira aquí texto del enlace La información que sigue es simplificada, no está dirigida a un microbiólogo (yo no lo soy)

Datos:

En un array hay unas 250.000 sondas que miden cada una una parte de una muestra de ADN. Un array es específico para un individuo (germen, persona....). Si el array está diseñado para mi ADN y ponemos el tuyo en él, algunas sondas coincidirán (creo que ambos somos humanos) y otras no. Si coinciden la medición es alta (la sonda brilla) como el ADN en una sonda coincide menos brilla menos. Hay una variación muy alta en cada sonda a través del mismo ADN. Así que es muy difícil saber si una muestra individual coincide (el mismo ADN) a nivel de sonda.

Si los datos fueran buenos, podríamos hacer una simple prueba de hipótesis para determinar si la sonda de la muestra es la misma que el ADN para el que se fabricó el array. Debido a la alta varianza, esto no funcionará.

Pregunta:

Buscamos una forma de tener en cuenta las mediciones en otras sondas para mejorar la prueba en una sonda. Sabemos más o menos que esto debería funcionar (basándonos en el ADN) pero no estamos seguros de cómo elegir las sondas que mejor ayudarán para cada una del conjunto de 250.000 sondas o qué método estadístico sería el mejor para utilizar la información sobre las otras sondas para probar una sonda individual.

Un ejemplo diferente, quizá más fácil de entender:

Una persona tiene 6 características, digamos peso, altura, edad, ingresos, fecha de nacimiento (db), educación, raza. Me mido las características a mí mismo, pero mis herramientas de medición son realmente malas, así que hago varias mediciones pero tengo una variación muy grande en mis mediciones. Ahora mido a otra persona y quiero saber si tiene unos ingresos diferentes a los míos. Pero mis herramientas de medición son tan malas que casi cualquier ingreso medido de otra persona estaría dentro de mi intervalo de confianza. (Sólo puedo medir a la otra persona una vez, Los mata ☺ ) Pero sé que otras características deben ser capaces de ayudarme a determinar si los ingresos son los mismos. No sé cuáles (peso, altura, edad, db, educación, raza). Necesito un método para elegir las características más útiles/útiles. Supongamos que sé que la altura y la edad pueden ayudar a determinar si nuestros ingresos son iguales o diferentes. ¿Cuál sería el método estadístico utilizado?

Tengo lo que podría llamarse un conjunto de entrenamiento. Es decir en saber lo que es y no es lo mismo.

Respuesta de @sheldon-cooper, "Nota: nada de esto dará una "puntuación de significación"", Un valor de confianza es lo suficientemente bueno. No necesito una "Prueba" estadística

Como MD espero que esta sea una pregunta aceptable para MathOverFlow.net. y espero que puedan entender la pregunta tan abreviada como es. Si alguien quiere ayudarme a reescribir o tiene alguna sugerencia sobre cómo puedo reescribir la pregunta sin todo el trasfondo biográfico y como una pregunta de estadística más específica, que me lo haga saber.

9voto

user3035 Puntos 91

En general, el enfoque de utilizar mediciones adicionales de otros valores (no el que le interesa directamente) fue útil en muchos problemas en el pasado, por lo que parece una buena idea también en su caso. Aquí hay algunas cosas a tener en cuenta:

Clasificación binaria

Si la tarea consiste en determinar si una sonda dada es "compatible", puede plantearlo como un problema de clasificación binaria. Las características de entrada de un clasificador serán TODAS las sondas de la matriz. El clasificador determinará automáticamente cuáles de ellas son útiles. Si la varianza en la sonda objetivo es realmente pequeña, puede decidir fijarse sólo en esa sonda. Si otros sitios (sondas) también son útiles, puede decidir examinarlos también. Los clasificadores pueden construir automáticamente reglas complejas que tengan en cuenta una o varias sondas, según sea necesario.

Esto puede ser sencillo de probar, ya que hay paquetes fácilmente disponibles y no hay muchos parámetros que ajustar. Yo intentaría usar un clasificador llamado SVM, funciona bien en muchos casos, puede tratar con datos de entrenamiento limitados (parece que eso es un problema para usted). De nuevo, hay paquetes SVM disponibles que puedes descargar y simplemente ejecutar (libsvm es un ejemplo, pero hay muchos otros).

La desventaja es que puede consumir muchos recursos si se desea un clasificador para cada sonda. La dimensionalidad de la entrada es de 250.000. Un clasificador lineal simple necesita aproximadamente un número por dimensión, es decir, 250.000 números. Si necesitas un clasificador para cada sonda, necesitarás 250.000^2 números en total, lo que es mucho. Hay formas de evitar esto, pero es una preocupación.

Filtrado colaborativo

El filtrado colaborativo permite básicamente predecir el valor de un elemento a partir de los valores de los elementos relacionados. Digamos que sabe que me han gustado dos películas, M1 y M2, y que me han disgustado otras dos, M3 y M4. Mediante el filtrado colaborativo, puede predecir si me gustará o no una nueva película, M5. En tu caso, no estás haciendo una predicción completamente ciega para M5; tienes alguna observación (aunque muy ruidosa). Así que combinaría esa observación con la predicción de otras características.

La ventaja es que sólo hay un modelo (frente a un clasificador por sonda). Por tanto, es más fácil de escalar.

Un modelo funcionaría más o menos así. Agruparía las sondas que son todas "iguales" o todas "diferentes" la mayor parte del tiempo. (El modelo aprendería estos grupos a partir de los datos de entrenamiento.) A continuación, ante una nueva matriz, utilizaría estos grupos y los datos de otras sondas de cada grupo para determinar si un grupo es, de nuevo, "igual" o "diferente". Este tenía un enlace a lo que parecía una sencilla introducción al filtrado colaborativo.

La principal desventaja es que no estoy seguro de que puedas encontrar una implementación del modelo que necesitas para microarrays en línea (o en cualquier lugar). Probablemente tendrías que derivar algo adecuado para tus datos, lo cual no es difícil, pero requiere saber qué hacer.

Otra desventaja es que probablemente necesitará más datos de entrenamiento para que el filtrado colaborativo funcione.

Nota: nada de esto dará una "puntuación de significación" (como en la prueba t, por ejemplo). Obtendrá un valor de confianza, pero no podrá decir que los resultados son estadísticamente significativos con una cierta confianza.

4voto

Wheelie Puntos 2365

Intentaré enfocar la pregunta desde un punto de vista muy ingenuo (ya tienes dos respuestas de alta tecnología y, dada mi falta de conocimientos especiales, sería una tontería por mi parte intentar competir con ellas utilizando alguna otra de alta tecnología). Así pues, supongo que el modelo es el siguiente. Usted tiene $m=36$ muestras con $n=250,000$ posiciones y una $n$ -matriz de posición con la que se desea comparar. Usted cree (esta es la parte más inestable porque todavía no sé qué es exactamente esa creencia) que la coincidencia en la primera posición se produce si y sólo si también se produce en alguna otra $k$ posiciones desconocidas (o, al menos, que coincidan en esos $k$ posiciones hace más probable la coincidencia en la primera posición y viceversa). Tiene la herramienta de medición que emite algún valor numérico $X_i$ ' para el puesto $i$ que ha significado $1$ cuando se produce la coincidencia y media $0$ cuando no lo hace, pero también tiene un montón de ruido aleatorio, los ruidos para diferentes posiciones son independientes y tienen más o menos la misma varianza de tamaño comparable a $1$ . Su pregunta es $k$ posiciones adicionales para apoyar el partido en la primera posición y cómo hacerlo.

Me parece que sería razonable probar la regla de la suma ponderada $X_1+w\sum_{j=1}^k X_{i_j}>T$ para tomar la decisión (con algunos $w\in(0,1)$ ). Si está de acuerdo, la elección de $k$ posiciones desconocidas $i_j$ es muy sencillo: basta con hacer las 36 mediciones y en cada posición $i$ observe la diferencia del valor medio de $X_i$ sobre las muestras buenas (las que coinciden en la primera posición) y las malas (las que no). Elija las $k$ posiciones con los mayores valores de esta diferencia. Ahora, juega con $w$ y $T$ cometer el menor número posible de errores en sus 36 muestras. Después, cruza los dedos y espera lo mejor.

Esto es más o menos equivalente a lo que haría un clasificador binario inteligente, salvo que se puede tener más control sobre lo que ocurre y se puede incorporar algún conocimiento a priori en este esquema (por ejemplo, se puede saber qué $k$ es, qué posiciones son ciertamente irrelevantes, etc.). Es posible que desee asignar diferentes pesos a las distintas sondas de apoyo, pero esto le da demasiada libertad y puede ser más perjudicial que útil en una muestra de pequeño tamaño. La decisión crucial es qué $k$ usar. Supongo que tienes alguna idea a partir de tu conocimiento de la estructura del ADN, pero si no es así, ten en cuenta que para que sea útil, deberías tener $(1+kw)^2\gg 1+kw^2$ (la diferencia media debe ser notablemente mayor que la desviación típica).

¿Funcionará? Sigo sospechando que 36 es un número demasiado pequeño para hacer la elección correcta de unas pocas posiciones de apoyo de 250.000 basándose únicamente en las diferencias de medias por lo que deberías usar tus conocimientos de biología para reducir el número de posibles posiciones de apoyo tanto como puedas (y luego eliges $k$ mayores diferencias de todos ellos).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X