close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Closed 13 years ago

Last modified 13 years ago

#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 mafernandez

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)
  }); 

comment:2 Changed 13 years ago by mafernandez

Owner: changed from Pedro Gea to mafernandez
Status: newaccepted

comment:3 Changed 13 years ago by mafernandez

Resolution: fixed
Status: acceptedclosed

(In [3214]) closes #995

Se crea el método Deco.FirstInMarginalAverage. Promedia una descomposicioón BaseFirstIn y otra BaseMarginal eliminando la sinergía. Si la sinergía no puede ser eliminada se muestra un warning.

comment:4 Changed 13 years ago by mafernandez

Nombre cambiado a Deco.BaseFirstInMarginalAverage

Note: See TracTickets for help on using tickets.