Quiero calcular correlaciones entre miles de genes utilizando datos de expresión de muchas muestras diferentes. Para los no biólogos, intentaré explicarlo. Básicamente, tengo genes $i=1..M$ y muestras $j=1..N$ y un $(M \times N)$ matriz $X$ con entradas $X_{ij}$ correspondientes a los niveles de expresión del gen $i$ en muestra $j$ . Por lo tanto, las correlaciones que estoy calculando son entre vectores $X_{k} = (X{_k}{_1}, X{_k}{_2},.., X{_k}{_N})$ y $X_l = (X{_l}{_1}, X{_l}{_2},..,X{_l}{_N})$ .
Mi problema es que a veces las correlaciones fuertes enmascaran correlaciones más débiles que siguen siendo biológicamente relevantes. Una de las razones por las que esto puede suceder es que los genes están organizados en grandes módulos funcionales que están a su vez altamente correlacionados (o anticorrelacionados). Por ejemplo, puede que los genes $X_5$ y $X{_1}{_0}$ pertenecen a módulos mutuamente excluyentes y, por tanto, están fuertemente anticorrelacionados. Esta anticorrelación oculta correlaciones más débiles dentro de los módulos que pueden no ser tan significativas cuando se observan todas las muestras.
El problema es que no siempre sé a qué módulos funcionales pertenece cada gen. Busco una forma general de detectar correlaciones más débiles, ¿quizás "sustrayendo" las correlaciones fuertes de mis datos? Lo ideal sería encontrar muchos niveles de correlación. Parece un problema estadístico sencillo, pero no sé por dónde empezar. He mirado el análisis multinivel, pero no quiero especificar "niveles" en mis datos. Estoy pensando más en la línea de "eigencorrelations", donde cada grupo de correlaciones describe diferentes tipos de variación entre los datos.
Si alguien me puede orientar, sería de gran ayuda. Gracias.