8 votos

El retorno de la Atribución: los Posibles remedios para la multicolinealidad

Digamos que tengo la siguiente regresión de instalación, que estoy utilizando para la cartera de retorno de atribución:

$R = 1*\beta(1) + A*\beta(2) + B*\beta(3) + C*\beta(4) + \epsilon $

donde a es ficticio de la matriz de país , B es un muñeco de la matriz de Industrias, C es una matriz de factor de exposiciones, 1 es un vector de

Como se puede ver en esta configuración, hay multicolinealidad entre a y B. El rango de (AB) < rango de (A) + rango (B). En el código de Matlab:

rank([dummyvar(ceil(abs(rand(20,1))*5)'),dummyvar(ceil(abs(rand(20,1))*4)')])

Cómo se puede ir sobre la computación todas estas betas sin dejar caer una de las Columnas de a o B de la matriz, como se suele hacer para solucionar este problema. Yo sé que hay un truco para solucionar esto, pero no puedo recordar cómo se hace.

2voto

penti Puntos 93

Para abordar el problema de la multicolinealidad es, básicamente, puede hacer lo siguiente (de la fuente, el autor escribió su tesis de Doctorado sobre la multicolinealidad de diagnóstico):

  1. Conseguir más datos
  2. Eliminar una de las variables
  3. La combinación de las variables (por ejemplo, con mínimos cuadrados parciales de regresión o de componentes principales regresión) y
  4. La realización de regresión ridge, que da sesgada de los resultados, pero reduce la varianza en las estimaciones.

No sé si 1. es factible, pero es siempre una buena idea (uno de los aprendizajes de los datos de la ciencia es que cada vez más y mejores datos es preferible a la más sofisticados algoritmos).

Sobre 2. usted dijo que usted no quiere eso.

3. no parece práctico, ya que la nueva variable no será interpretable más.

De modo que 4. parece ser el mejor candidato. Matemáticamente esto se conoce también como la regularización de Tikhonov. En matlab un buen punto de partida parece ser esta:
http://www.mathworks.com/help/stats/ridge-regression.html

El comando ridge(), ver también aquí:
http://www.mathworks.com/help/stats/ridge.html

1voto

Vladimir Reshetnikov Puntos 18017

Usted puede utilizar restringido de regresión. Esta será la dirección exactamente su problema. Es afaik el estándar de la industria de las formas de abordar este problema.

Usted querrá configurar una restricción para cada uno de los grupo de variables ficticias que tienen tales que la suma de los coeficientes de que grupo es 0. En este caso de a y B. puede dejar C sin restricción (en realidad debería !)

Si el co-linealidad es proveniente de C (factores). Entonces es otra cuestión y consejos en otras respuestas son muy útiles.

Usted necesita hacer esto tan largo como usted tiene más de 2 grupos, o de un grupo y la intersección. Es bastante estándar para un modelado de riesgos de la técnica. Véase, por ejemplo, cómo MSCI trata en su modelo de msci.com/documents/10199/ed6e42a3-c1fa-4430-89ba-efd5a5b52558 (en el medio de la página 1)

En una nota de lado, también se debe considerar el uso de una sólida técnica de regresión.

Si usted está usando Matlab (parece que de su fragmento) usted puede leer acerca de obligado y regresión robusta en este excelente tutorial: http://www.mathworks.com/matlabcentral/fileexchange/8553-optimization-tips-and-tricks

Y el uso de la siguiente función: http://www.mathworks.com/matlabcentral/fileexchange/13835-lse Aunque Matlab también tiene algunas funciones de regresión, pero son más limitados de la OMI.

0voto

Šime Vidas Puntos 116

Usted puede utilizar el análisis de Componentes Principales que se divide la variable en la no-correlación de los factores y el uso del factor de resumen de las puntuaciones como entrada en el modelo, en lugar de las puntuaciones de variables.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X