SearchLibrium 0.0.135__tar.gz → 0.0.136__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of SearchLibrium might be problematic. Click here for more details.
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/PKG-INFO +1 -1
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/pyproject.toml +1 -1
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/latent_class.py +1 -1
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/search.py +69 -0
- searchlibrium-0.0.136/src/SearchLibrium/version.txt +1 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium.egg-info/PKG-INFO +1 -1
- searchlibrium-0.0.135/src/SearchLibrium/version.txt +0 -1
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/README.md +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/setup.cfg +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/Halton.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/MixedLogit.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/Mode_Activity_Nested.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/RandomP.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/SEARCH_SM_MARIO.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/Two_Level_Nest.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/__init__.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/__main__.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/_choice_model.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/_device.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/banditsa.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/bhhh/minimize.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/boxcox_functions.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/call_meta.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/constraints_builder.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/harmony.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/hspbil.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/main.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/main_debug.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/mdcev.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/misc.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/mixed_logit.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/mixed_nested.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/mixedrrm.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/multinomial_logit.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/multinomial_nested.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/multinomial_probit.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/ordered_logit.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/ordered_logit_mixed.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/predict.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/rrm.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/sapbil.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/selection_models.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/setup.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/siman.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/test_lc_de.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/test_mario_searches.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/test_sapbil_vs_banditsa.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/threshold.py +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium.egg-info/SOURCES.txt +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium.egg-info/dependency_links.txt +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium.egg-info/entry_points.txt +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium.egg-info/requires.txt +0 -0
- {searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: SearchLibrium
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.136
|
|
4
4
|
Summary: A Python package for econometric models driven by search
|
|
5
5
|
Author: Mario Fernando Taco Morales, Alexander Paz, Prithvi Beeramole, Robert Burdett
|
|
6
6
|
Author-email: Zeke Ahern <z.ahern@qut.edu.au>
|
|
@@ -73,7 +73,7 @@ Documentation = "https://pypi.org/project/SearchLibrium/"
|
|
|
73
73
|
realpython = "SearchLibrium.__main__:main"
|
|
74
74
|
|
|
75
75
|
[tool.bumpver]
|
|
76
|
-
current_version = "0.0.
|
|
76
|
+
current_version = "0.0.136"
|
|
77
77
|
version_pattern = "MAJOR.MINOR.PATCH"
|
|
78
78
|
commit_message = "[skip ci] Bump version {old_version} -> {new_version}"
|
|
79
79
|
commit = true
|
|
@@ -684,6 +684,10 @@ class Parameters:
|
|
|
684
684
|
self.de_tol = de_tol
|
|
685
685
|
self.de_polish = de_polish
|
|
686
686
|
|
|
687
|
+
# ── Regularisation (primarily for latent class) ──────────────
|
|
688
|
+
self.l1_penalty = kwargs.get('l1_penalty', 0.0)
|
|
689
|
+
self.l2_penalty = kwargs.get('l2_penalty', 0.1)
|
|
690
|
+
|
|
687
691
|
self.intercept_opts = intercept_opts
|
|
688
692
|
self.base_alt = base_alt
|
|
689
693
|
self.val_share = val_share
|
|
@@ -4013,6 +4017,8 @@ class Search():
|
|
|
4013
4017
|
random_state=seed if seed is not None else 0,
|
|
4014
4018
|
optimise_membership=optimise_membership,
|
|
4015
4019
|
membership_maxiter=100,
|
|
4020
|
+
l1_penalty=getattr(self.param, 'l1_penalty', 0.0),
|
|
4021
|
+
l2_penalty=getattr(self.param, 'l2_penalty', 0.0),
|
|
4016
4022
|
)
|
|
4017
4023
|
|
|
4018
4024
|
membership_vars = None
|
|
@@ -4216,6 +4222,65 @@ class Search():
|
|
|
4216
4222
|
# }
|
|
4217
4223
|
|
|
4218
4224
|
|
|
4225
|
+
''' ---------------------------------------------------------- '''
|
|
4226
|
+
''' Function. Fit and Evaluate Latent Class Model '''
|
|
4227
|
+
''' ---------------------------------------------------------- '''
|
|
4228
|
+
|
|
4229
|
+
def evaluate_lc(self, sol):
|
|
4230
|
+
# {
|
|
4231
|
+
sol = self.apply_constraints(sol)
|
|
4232
|
+
as_vars = sol.get('asvars', [])
|
|
4233
|
+
is_vars = sol.get('isvars', [])
|
|
4234
|
+
asc_ind = sol.get('asc_ind', False)
|
|
4235
|
+
bc_vars = self.define_bc_vars(sol)
|
|
4236
|
+
all_vars = [var for var in self.param.varnames if var in (as_vars + is_vars)]
|
|
4237
|
+
|
|
4238
|
+
class_params_spec = sol.get('class_params_spec', None)
|
|
4239
|
+
member_params_spec = sol.get('member_params_spec', None)
|
|
4240
|
+
num_classes = getattr(self.param, 'num_classes', 2)
|
|
4241
|
+
|
|
4242
|
+
X = self.param.df[all_vars].values
|
|
4243
|
+
y = self.param.choices
|
|
4244
|
+
ids = self.param.choice_id if self.param.choice_id is not None else self.param.ind_id
|
|
4245
|
+
|
|
4246
|
+
alts = self.param.alt_var
|
|
4247
|
+
if alts is None:
|
|
4248
|
+
alts = np.ones(len(y), dtype=int)
|
|
4249
|
+
|
|
4250
|
+
model = self.fit_lcm(
|
|
4251
|
+
X=X, y=y, varnames=all_vars,
|
|
4252
|
+
class_params_spec=class_params_spec,
|
|
4253
|
+
member_params_spec=member_params_spec,
|
|
4254
|
+
num_classes=num_classes,
|
|
4255
|
+
ids=ids,
|
|
4256
|
+
transvars=bc_vars,
|
|
4257
|
+
maxiter=self.param.maxiter,
|
|
4258
|
+
gtol=self.param.gtol,
|
|
4259
|
+
avail=self.param.avail,
|
|
4260
|
+
weights=self.param.weights,
|
|
4261
|
+
alts=alts,
|
|
4262
|
+
base_alt=self.param.base_alt,
|
|
4263
|
+
)
|
|
4264
|
+
|
|
4265
|
+
sol['model'] = model
|
|
4266
|
+
sol['coeff'] = model.coeff_est
|
|
4267
|
+
sol['model_n'] = 'latent_class'
|
|
4268
|
+
converged = model.converged
|
|
4269
|
+
|
|
4270
|
+
aic = getattr(model, 'aic', float('inf'))
|
|
4271
|
+
bic = getattr(model, 'bic', float('inf'))
|
|
4272
|
+
loglik = getattr(model, 'loglik', float('-inf'))
|
|
4273
|
+
|
|
4274
|
+
mae = float('inf')
|
|
4275
|
+
|
|
4276
|
+
if getattr(self.param, 'verbose', False):
|
|
4277
|
+
model.summarise()
|
|
4278
|
+
|
|
4279
|
+
tuple_ = (aic, bic, loglik, mae, as_vars, is_vars, {}, bc_vars, [], converged, sol)
|
|
4280
|
+
return tuple_
|
|
4281
|
+
# }
|
|
4282
|
+
|
|
4283
|
+
|
|
4219
4284
|
''' ---------------------------------------------------------- '''
|
|
4220
4285
|
''' Function. Fit and Evaluate Nested Logit Model '''
|
|
4221
4286
|
''' ---------------------------------------------------------- '''
|
|
@@ -4582,6 +4647,10 @@ class Search():
|
|
|
4582
4647
|
''' ---------------------------------------------------------- '''
|
|
4583
4648
|
def evaluate_model(self, sol):
|
|
4584
4649
|
# {
|
|
4650
|
+
# ── Latent class override: if param says latent, do latent ──
|
|
4651
|
+
if getattr(self.param, 'latent_class', False):
|
|
4652
|
+
return self.evaluate_lc(sol)
|
|
4653
|
+
|
|
4585
4654
|
model_n = sol.get('model_n', '')
|
|
4586
4655
|
|
|
4587
4656
|
# ── Pre-fit collinearity / prerequisite check ────────────────
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.0.136
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: SearchLibrium
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.136
|
|
4
4
|
Summary: A Python package for econometric models driven by search
|
|
5
5
|
Author: Mario Fernando Taco Morales, Alexander Paz, Prithvi Beeramole, Robert Burdett
|
|
6
6
|
Author-email: Zeke Ahern <z.ahern@qut.edu.au>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
0.0.135
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium/test_sapbil_vs_banditsa.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{searchlibrium-0.0.135 → searchlibrium-0.0.136}/src/SearchLibrium.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|