library for customization modeling .WA
Project description
WAMMODELS
La libreria permite a los usuarios obtener combinaciones óptimas de variables y obtener resultados precisos de manera rápida y eficiente.
Actualmente soporta:
- Busqueda de combinaciones optimas
- Creacion de descomposición manual.
Instalacion:
pip install wammodels
Importancion de Clases:
Las clases que posee la libreria wammodels son:
from wammodels.global_func import *
from wammodels.combination import Combination
from wammodels.descomp import Descomp
global_func : Clase que posee funciones que nos ayudara a la creacion de combinaciones y la creacion de nuestra descomposicion:
adstock(list,adstock_rate)
adbudg(list,rho=0,v=1,p=1,beta=1,alpha=0)
creation_seasonalities(data,start_range)
wmadstock_rate(*args):
wmv(*args):
wmrho(*args):
wmdiff(*args):
wmlag(*args):
wmcoef(*args):
wmcontrib(*args):
wmcomb(*args):
wmvar(*args):
test_comb(comb):
Combination
En este ejemplo vamos a usar la clase Combination para obtener un modelo basado en una busqueda de combinaciones las cuales nosotros le estamos proporcionando:
#Importamos nuestras clases
from wammodels.global_func import *
from wammodels.combination import Combination
#Creamos nuestra formula
formula = [
[y],
[data.INVN, wmcomb(wmadstock_rate(0.05,0.50,0.06),wmcoef("+"))],
[data.INVR, wmcomb(wmadstock_rate(0.05),wmv(1.0,4.5,0.05),wmrho(4000,30000000,2000),wmcontrib(0.10,0.20))],
[data.ENE, wmcomb(wmlag(1,4,2))],
[data.FEB, wmcomb(wmdiff(1,4,2))],
[data.MAR],
]
#Enviamos nuestra formula a nuestra clase
get_combination = Combination(formula)
get_combination.search_combinations()
Explicacion:
Creamos un array donde vamos a ingresar nuestras variables, comenzando con la variable Y, La variable data.INVN y la variable data.INVR le agregamos la funcion wmcomb que es una funcion unica para la busqueda de combinaciones y dentro de esa funcion colocamos otras funciones como :
-
wmadstock_rate : Como podemos observer en la funcion le indicamos 3 numeros , (0.05,0.50,0.06) esto quiere decir que la variable data.INVN no va a tener un wmadstock_rate fijo como la variable data.INVR de lo contrario va a modificar los valores entre: min : 0.05 - max: 0.50 con saltos de 0.06
-
wmv , wmrho : Estas 2 funciones se usan para obtener el adbudg siempre se tienen que poner las 2 funciones, de lo contrario dara error. Como se puede observar usa el mismo metodo de min - max - salto que la funcion wmadstock_rate
-
wmcoef : Esta funcion se encarga en seleccionar la variable transformada cuando su coefciente sea positivo wmcoef( "+") asi mismo le podemos indicar que sea negativo wmcoef("-")
-
wmcontrib : Esta funcion usa un rango de min - max indificando al algoritmo que cuando esa variable tenga una contribucion dentro de ese rango la dara como efectiva.
-
wmlag y wmdiff : Estas 2 funciones usan el mismo metodo de la funcion wmadstock_rate , min - max - salto lo unico diferente es que sus valores son numeros enteros.
Teniendo nuestra formula lista procedemos a enviar la formula a la clase Combination - Combination(formula) luego de enviar nuestra formula ejecutamos la funcion search_combinations() la cual es la encargada de buscar las combinaciones y el modelo perfecto basado en la formula que hicimos.
Nota1: Las variables pueden tener valores fijos o con sus respectivos argumentos.
Nota2: Siempre que deseemos agregar una de estas funciones tenemos que colocar la funcion wmcomb y dentro de esa funcion agregar las funciones mencionadas.
Funcion search_combinations()
Esta funcion permite ajustar nuestra busqueda con ciertos argumentos como son:
-
max_comb / default = 1 : El algoritmo se detiene cuando tenga x cantidad de modelos perfectos basados en nuestra formula realizada.
-
pvalor /default = 0.11: Nos ayuda a obtener los modelos que sus variables no superen el pvalor ingresado
-
time_stop default = None : Nos permite agregar un tiempo maximo de busqueda , cuando el tiempo llegue a su limite el algoritmo se detiene y dejara de buscar.
-
method = "default": Esta variable es muy importante ya que nuestro algoritmo cuenta con 2 algoritmos de busqueda ("default") y ("cross") el default es recomendable cuando tenemos pocas variables no quiere decir que no funcione con una formula con muchas variables y combinaciones, Puede funcionar perfectamente. El metodo cross es un algoritmo de ** "Busqueda Random Combinacion Cruzada"** , este metodo es entrenado para que busque por sectores eso implica que el algoritmo sea mas ordenado a la hora de buscar combinaciones , el algoritmo cross cuenta con 6 subprocesos dado que tiene 6 subprocesos es recomendable darle como tiempo de busqueda un minimo de 30 minutos para formulas con muchas combinaciones y variables.
Ejemplos:
-
Ejemplo 1 :
- Usa el metodo "cross"
- Cuando encuentre 3 combinaciones o llegue a 30 minutos de busqueda se detenga, lo primero que suceda.
get_combination = Combination(formula)
get_combination.search_combinations(max_comb=3,method="cross",time_stop=60*30)
-
Ejemplo 2:
- Usa el metodo "default"
- Cuando encuentre 3 combinaciones y todas las variables tengan un pvalor <= 0.08 se detenga.
get_combination = Combination(formula)
get_combination.search_combinations(max_comb=3,pvalor=0.08)
-
Ejemplo 3:
- Usa el metodo "cross"
- Le estamos diciendo que todas las variables deben de tener un pvalor <= 0.20 y que se detenga a cumplir los 30 minutos
get_combination = Combination(formula)
get_combination.search_combinations(method="cross",time_stop=60*30,pvalor=0.20)
Basado en esos ejemplos podemos jugar con las diferentes variables como son el method , time_stop, pvalor y max_comb dependiendo nuestra necesidad.
Funcion get_var_all()
Esta funcion se usara una ves terminada la busqueda y permite obtener las combinaciones que nuestro algoritmo encontro
get_combination = Combination(formula_comb)
get_combination.search_combinations(max_comb=3,method="cross")
get_combination.get_var_all(0)
Cuando ejecutamos esta funcion nos mostrara como resultado 2 dataframe, el valor 0 dentro de la funcion get_var_all(0) es la combinacion que queremos obtener. Si colocamos 1 nos traera la siguiente combinacion.
- El primer dataframe mostrara el R2 ajustado y el Durbin
- El segundo nos mostrara un dataframe indicando que combinaciones encontro y agregando los valores de contribucion , coef y pvalor (La imagen muestra una combinacion de una formula que tenia 18 variables.)
Si a nuestra funcion get_var_all() le agregamos la variable table="df" nos mostrara un dataframe diferente
get_combination = Combination(formula_comb)
get_combination.search_combinations(max_comb=3)
get_combination.get_var_all(0,table="df")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wammodels-0.0.11.tar.gz.
File metadata
- Download URL: wammodels-0.0.11.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f064f40d635032830af6415f083ab92e915d93e0524594af34dafe7490ad47d
|
|
| MD5 |
7ff2e02610a720ccd80b5704d1c41297
|
|
| BLAKE2b-256 |
d344cb5a474d07e3bd22e86a87cce8bc431d5acdab57a725fbaa0899b4a09f3d
|
File details
Details for the file wammodels-0.0.11-py3-none-any.whl.
File metadata
- Download URL: wammodels-0.0.11-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
931ab81988796aa965457542e8d35177d88b534cf0524a16a3a406c47bd1684b
|
|
| MD5 |
988a2f3267ba80306ffaf0b8c63d12ee
|
|
| BLAKE2b-256 |
cbd9d52d7e13b90a71a646f5eef1f9f30b2db64c58d994520530b313af205de7
|