Opened 14 years ago
Closed 14 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 14 years ago by
| Milestone: | → Release 0.6 |
|---|---|
| Status: | new → accepted |
| version: | → 0.6 |
comment:2 Changed 14 years ago by
comment:3 Changed 14 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 14 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 13 years ago by
Los archivos adjuntos con datos privados se han ubicado en la unidad local B.
![(please configure the [header_logo] section in trac.ini)](/mms/chrome/site/logomms.png)
Se trata de un input de tipo pulso (Rev.y2011m10d01) colocado en la última fecha de estimación y con un retardo.