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 14 years ago

Closed 14 years ago

Last modified 14 years ago

#495 closed doubt (fixed)

Dudas con la transformación Boxcox — at Version 1

Reported by: lmperez Owned by:
Priority: critical Milestone: Maintenance
Component: Models Keywords: BoxCox
Cc:

Description (last modified by Pedro Gea)

Hola MMS, cuando defino un submodelo y escribo la orden

MMS::@Transformation _.transformation = MMS::@Transformation.BoxCox::Default(0,1)

entiendo que la serie output transformada debería ser zt=Log(st+1), sin embargo MMS hace zt=Log(st)

Por otra parte cuando quiero definir transformación identidad:

MMS::@Transformation _.transformation = MMS::@Transformation.BoxCox::Default(1,0)

entiendo que debería hacer zt=st, sin embargo MMS hace zt=st-1

Podéis compilar el projecto de matriculación de vehículos probando las dos transformaciones y ejecutar las ordenes:

Serie original = MMS::Container::GetModel("Mat.Veh__1.0")::GetSubmodel("Veh.Tur.Mat")::GetOutput(?)::GetVariable(?)::GetData(?);
Serie transformada = MMS::Container::GetModel("Mat.Veh__1.0")::GetSubmodel("Veh.Tur.Mat")::GetOutput(?)::GetData(?);

Serie TransLog = BoxCoxTransf(original,@BoxCoxStruct(0,1));
Serie TransId  = BoxCoxTransf(original,@BoxCoxStruct(1,0));

Change History (1)

comment:1 Changed 14 years ago by Pedro Gea

Component: EstimationModels
Description: modified (diff)
Milestone: Maintenance
Resolution: fixed
Status: newclosed
Summary: Problema con la transformacion BoxcoxDudas con la transformación Boxcox
Type: defectdoubt

No hay ningún problema con las transformación BoxCox, simplemente tenemos "viciada" la definición de esta transformación. En MMS hemos intentado ser coherentes con la nomenclatura más habitual en la literatura, donde la definición de la transformación es continua en el parámetro de potencia (lambda). Véase Transformación BoxCox.

La definición que usa MMS es la siguiente:

                           { ((y+alpha)^lambda - 1)/lambda  ;  lambda!=0
BoxCox[lambda, alpha](y) = {
                           { log(y+alpha)                   ;  lambda==0

Así:

BoxCox[0,0](x) = Log(x)
BoxCox[0,1](x) = Log(x+1)
BoxCox[1,0](x) = x-1
BoxCox[1,1](x) = x
Note: See TracTickets for help on using tickets.