Opened 13 years ago
Closed 13 years ago
#754 closed defect (fixed)
Problemas de supuesta multicolinealidad
Reported by: | libarra | Owned by: | Pedro Gea |
---|---|---|---|
Priority: | blocker | Milestone: | Release 0.6 |
Component: | StrategyBSR | Keywords: | |
Cc: |
Description
Buenos días, lanzando la estimación de un objeto Estimate_BSR (lo adjunto en el ticket) me encuentro con un problema de multicolinealidad.
Warning: [1] [CHOLMOD 1] at line c:\users\jsperez\suitesparse\cholmod\cholesky\t_cholmod_rowfac.c:431: not positive definite ERROR: [1] Cannot apply CholeskiFactor to a non positive definite virtual matrix Cholmod.R.Sparse(519x2)
Ahora bien lanzando la función de chequeo implementada en MMS y la forma antigua de diagnosis de multicolinealidad, no me reporta ninguna c.l.
Text Modelo = "PrecioHor.08.Log"; Set Set_F = ((MMS::Container::GetEstimations(?))[1])::GetModel(?)::GetSubmodel(Modelo)::GetExpTerms(?); Set Set_Input = EvalSet(Set_F, NameBlock(MMS::@ExpTermOmega st) { NameBlock st::GetInput(?) }); Set ((MMS::Container::GetEstimations(?))[1])::GetModel(?)::GetSubmodel(Modelo)::CheckMulticollinearity(?); Set Set_Series = EvalSet(Set_Input, Anything(NameBlock nb) { Anything nb::GetData(?) }); Matrix ToSVD = SerSetMat(Set_Series, y2010m05d01, y2011m10d01)*Tra(SerSetMat(Set_Series, y2010m05d01, y2011m10d01)); Set SVD(ToSVD); Matrix GaussInverse(ToSVD);
Change History (6)
comment:1 Changed 13 years ago by
Milestone: | → Release 0.6 |
---|---|
Status: | new → accepted |
version: | → 0.6 |
comment:2 Changed 13 years ago by
comment:3 Changed 13 years ago by
El método CheckMulticollinearity solamente busca colinealidad entre los parámetros no dependientes (método IsIndependent = True).
En este modelo se tienen todos los parámetros fijos (IsIndependent = False) excepto los que pertenecen al término explicativo Rev.y2011m10d01
En este término explicativo se tienen dos parámetros, uno con degree = 0 y otro con degree = 1. El que tiene degree = 1 participa en un combinación lineal (IsIndependent = False) dejando uno solo para para chequear su combinación lineal.
Por eso resulta que no detecta combinaciones lineales, cuando en realidad el parámetro con degree = 1 en nulo en el intervalo a considerar.
De modo que habría que o bien cambiar lo que se considera como parámetro dependiente en el método IsIndependent o bien discriminar de que tipo de dependencia se trata para así poder considerarla que entre o no en CheckMulticollinearity.
comment:5 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | accepted → closed |
En el commit [2676] se modifica el método IsIndependent (def_m_object_prior.tol) para que a partir de ahora el método CheckMulticollinearity sólo busque correlación en los inputs asociados a los parámetros que no cumplan las siguientes condiciones:
- esté fijado
- tenga prior
- participe en jerarquía
- participe en combinación con prior
- participe en equivalencia con prior
comment:6 Changed 12 years ago by
Los archivos adjuntos con datos privados se han ubicado en la unidad local B.
Se trata de un input de tipo pulso (Rev.y2011m10d01) colocado en la última fecha de estimación y con un retardo.