3 votos

Porcentaje de contribución de múltiples factores a una única variable dependiente

Tengo un conjunto de datos (observación en marcha a lo largo de una vía de crucero) que incluye una variable dependiente A y tres variables independientes B, C y D. Se sabe que A está relacionado con cada uno de los tres factores, por lo que quiero encontrar una relación numérica que me permita expresar A mediante B, C y D, y me gustaría poder evaluar la contribución relativa de cada variable independiente a A.

Soy consciente de que el PCA es la herramienta que hay que utilizar en esta situación, y lo he intentado en Excel, sólo para obtener un biplot en el que las cuatro variables se tratan por igual como el mismo tipo de variable dependiente, y la variable A se utiliza para explicar esos componentes principales. Lo que realmente quiero es ver cómo se comporta A bajo la influencia conjunta de B, C y D, y no me importa cómo se relacionan B, C y D entre sí.

(Estoy trabajando en MATLAB).

2 votos

Parece que no necesitas PCA en absoluto, necesitas hacer una regresión de A sobre B, C y D.

0 votos

Mi objetivo final es poder predecir A con BCD basándome en lo que me dan los datos actuales. Así que creo que necesitaré el análisis multivariante para deducir una relación entre A y BCD, en lugar de fijarme en A frente a B, A frente a C, A frente a D respectivamente.

1 votos

Sí, @Lin, esto se sigue llamando regresión, más concretamente, "regresión múltiple" con A como variable dependiente y B,C,D como variables independientes. Lo que quería decir es que tu pregunta no tiene nada que ver con el ACP.

4voto

Kuro Puntos 81

Como escribió Ameba en los comentarios, este es un problema de regresión múltiple y no tiene nada que ver con PCA (ver Regresión lineal en Wikipedia ). Aquí utilizo los supuestos estándar de un modelo lineal con ruido aditivo:

$$ A = b ~ B + c ~ C + d ~ D + k + E. $$

Aquí $b$ , $c$ y $d$ son los coeficientes de regresión escalar para sus tres variables explicativas, $k$ es un desplazamiento constante, y $E$ captura todo lo que no cabe en los otros términos (el error).

En Matlab, para calcular $A$ si se dieran todos los valores del lado izquierdo, se escribiría en notación matricial:

A = [B C D ones(n, 1)] * [b c d k]' + E

asumiendo que todas las variables se representan como vectores columna, y que $n$ es el número de puntos de datos.

Para resolver esta ecuación para los coeficientes $b$ , $c$ , $d$ y $k$ para un determinado $A$ puede utilizar el operador de barra invertida :

coeff = [B C D ones(n, 1)] \ A

Este operador da un solución por mínimos cuadrados , lo que significa $A$ se determina de forma que la suma de errores al cuadrado ( $\sum_{i = 1}^n E_i^2$ o sum(E .^ 2) en Matlab) es lo más pequeño posible. A continuación, puede extraer los coeficientes individuales:

b = coeff(1)
c = coeff(2)
d = coeff(3)

Estos coeficientes son estimaciones de la intensidad de las variables $B$ , $C$ y $D$ contribuir a $A$ .


Tu título dice que te interesa un "porcentaje de contribución" de las variables independientes, y supongo que te refieres a porcentajes de varianza explicada. El problema es que si las variables $B$ , $C$ y $D$ están correlacionadas (comparten la varianza entre ellas), no hay una respuesta sencilla a esa pregunta, porque la varianza de sus contribuciones a $A$ que son $b ~ B$ , $c ~ C$ y $d ~ D$ no se combinan de forma aditiva. Suponiendo que no hay correlaciones, se pueden calcular esas contribuciones así:

var([B C D] * diag([b c d])) / var(A) * 100

que le da un vector de tres elementos con estimaciones de la contribución relativa en porcentaje de las tres variables independientes.

1 votos

Esta es una buena explicación y buenos ejemplos de Matlab. +1 en particular para el operador barra invertida.

0 votos

Esta es una excelente respuesta a mi pregunta. Siento no haber podido responderte antes. Veo que la regresión múltiple me da una ecuación lineal en la que A se expresa mediante B C D. Esto debería funcionar en mi conjunto de datos porque se supone que A se correlaciona con esas 3 variables linealmente. Sólo por curiosidad, si A está asociada de forma no lineal con B C D, ¿seguirá funcionando este método? Otra pregunta es que usted mencionó que la regresión funciona bien sólo si BCD son independientes entre sí. ¿Sigue funcionando si son de alguna manera dependientes, incluso si están ligeramente relacionados entre sí? Gracias por su ayuda.

0 votos

@Lin, si la relación es sólo débilmente no lineal, todavía se puede coger el parte lineal mediante regresión. Para relaciones fuertemente no lineales se necesitan otros métodos, véase, por ejemplo, la regresión de vectores de soporte.

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