#995 closed enhancement (fixed)
Descomposición combinada Fisrt-In y Marginal con sinergía cero.
| Reported by: | mafernandez | Owned by: | mafernandez |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | General | Keywords: | |
| Cc: |
Description
Se necesita contar en DecoTools con un tipo de descomposión que combine dos descomposiciones, una First-In y otra Marginal, de forma que la sinergía resulte idénticamente nula.
Change History (4)
comment:1 Changed 13 years ago by
comment:2 Changed 13 years ago by
| Owner: | changed from Pedro Gea to mafernandez |
|---|---|
| Status: | new → accepted |
comment:3 Changed 13 years ago by
| Resolution: | → fixed |
|---|---|
| Status: | accepted → closed |
Note: See
TracTickets for help on using
tickets.
![(please configure the [header_logo] section in trac.ini)](/mms/chrome/site/logomms.png)
A modo de ilustrar el código, sirva como ejemplo la implementación ad-hoc que se está usando en call center:
// First-In Set Deco.FI = DecoTools::Deco.BaseFirstIn(_.decoOF, Transf); // Marginal Set Deco.MA = DecoTools::Deco.BaseMarginal(_.decoOF, Transf); Serie synergyFI = Deco.FI[Card(Deco.FI)]; Serie synergyMA = Deco.MA[Card(Deco.FI)]; Set Dates = Dates(Dating(synergyFI), First(synergyFI), Last(synergyFI)); Set tmp = EvalSet(Dates, Set(Date dat){ Real synergyFI_t = SerDat(synergyFI, dat); Real synergyMA_t = SerDat(synergyMA, dat); Set Case(Real Sign(synergyFI_t)* Real Sign(synergyMA_t) < 0, { // sinergias con signo opuesto Set For(1, Card(Deco.FI), Real(Real i){ Real (SerDat(Deco.FI[i], dat)*Abs(synergyMA_t) + SerDat(Deco.MA[i], dat)*Abs(synergyFI_t)) / (Abs(synergyMA_t) + Abs(synergyFI_t)) }) }, // sinergias con mismo signo y distintas synergyFI_t != synergyMA_t, { Set For(1, Card(Deco.FI), Real(Real i){ Real (SerDat(Deco.FI[i], dat)*synergyMA_t - SerDat(Deco.MA[i], dat)*synergyFI_t) / (synergyMA_t - synergyFI_t) }) }, Real Sign(synergyFI_t)* Real Sign(synergyMA_t) == 0, { // sinergias ambas nulas Set For(1, Card(Deco.FI), Real(Real i){ Real (SerDat(Deco.FI[i], dat) + SerDat(Deco.MA[i], dat)) / 2.0 }) }, 1, Empty) });