google-meridian 1.0.6__py3-none-any.whl → 1.0.7__py3-none-any.whl
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.
- {google_meridian-1.0.6.dist-info → google_meridian-1.0.7.dist-info}/METADATA +11 -10
- {google_meridian-1.0.6.dist-info → google_meridian-1.0.7.dist-info}/RECORD +7 -7
- {google_meridian-1.0.6.dist-info → google_meridian-1.0.7.dist-info}/WHEEL +1 -1
- meridian/__init__.py +1 -1
- meridian/data/load.py +10 -7
- {google_meridian-1.0.6.dist-info → google_meridian-1.0.7.dist-info/licenses}/LICENSE +0 -0
- {google_meridian-1.0.6.dist-info → google_meridian-1.0.7.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: google-meridian
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.7
|
|
4
4
|
Summary: Google's open source mixed marketing model library, helps you understand your return on investment and direct your ad spend with confidence.
|
|
5
5
|
Author-email: The Meridian Authors <no-reply@google.com>
|
|
6
6
|
License:
|
|
@@ -222,12 +222,12 @@ Requires-Dist: arviz
|
|
|
222
222
|
Requires-Dist: altair>=5
|
|
223
223
|
Requires-Dist: immutabledict
|
|
224
224
|
Requires-Dist: joblib
|
|
225
|
-
Requires-Dist: numpy<2
|
|
226
|
-
Requires-Dist: pandas<3,>=2.2
|
|
227
|
-
Requires-Dist: scipy<1.13
|
|
228
|
-
Requires-Dist: tensorflow<2.
|
|
229
|
-
Requires-Dist: tensorflow-probability<0.
|
|
230
|
-
Requires-Dist: tf-keras<2.
|
|
225
|
+
Requires-Dist: numpy<3,>=2.0.2
|
|
226
|
+
Requires-Dist: pandas<3,>=2.2.2
|
|
227
|
+
Requires-Dist: scipy<2,>=1.13.1
|
|
228
|
+
Requires-Dist: tensorflow<2.19,>=2.18
|
|
229
|
+
Requires-Dist: tensorflow-probability<0.26,>=0.25
|
|
230
|
+
Requires-Dist: tf-keras<2.19,>=2.18
|
|
231
231
|
Requires-Dist: xarray
|
|
232
232
|
Provides-Extra: dev
|
|
233
233
|
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
@@ -237,7 +237,8 @@ Requires-Dist: pyink; extra == "dev"
|
|
|
237
237
|
Provides-Extra: colab
|
|
238
238
|
Requires-Dist: psutil; extra == "colab"
|
|
239
239
|
Provides-Extra: and-cuda
|
|
240
|
-
Requires-Dist: tensorflow[and-cuda]<2.
|
|
240
|
+
Requires-Dist: tensorflow[and-cuda]<2.19,>=2.18; extra == "and-cuda"
|
|
241
|
+
Dynamic: license-file
|
|
241
242
|
|
|
242
243
|
# About Meridian
|
|
243
244
|
|
|
@@ -392,7 +393,7 @@ To cite this repository:
|
|
|
392
393
|
author = {Google Meridian Marketing Mix Modeling Team},
|
|
393
394
|
title = {Meridian: Marketing Mix Modeling},
|
|
394
395
|
url = {https://github.com/google/meridian},
|
|
395
|
-
version = {1.0.
|
|
396
|
+
version = {1.0.7},
|
|
396
397
|
year = {2025},
|
|
397
398
|
}
|
|
398
399
|
```
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
google_meridian-1.0.7.dist-info/licenses/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
|
|
2
|
+
meridian/__init__.py,sha256=Hsjx0IKX4gDeskNWFqlAY2Q4KwLKzsKFOOmdiOqlKTA,714
|
|
2
3
|
meridian/constants.py,sha256=pv59gIo7wlQR4blfF9om9pM9h2gKt2nysRpgEHdryfI,14661
|
|
3
4
|
meridian/analysis/__init__.py,sha256=-FooDZ5OzePpyTVkvRoWQx_xBaRR_hjVLny9H8-kkyQ,836
|
|
4
5
|
meridian/analysis/analyzer.py,sha256=xYngttdPBHHL-Nk-wQDmKNEL9KBKIFreFJg0Xzj-g4w,195295
|
|
@@ -20,7 +21,7 @@ meridian/analysis/templates/table.html.jinja,sha256=mvLMZx92RcD2JAS2w2eZtfYG-6Wd
|
|
|
20
21
|
meridian/data/__init__.py,sha256=ixOYHDQExjnPTLLnZ758pRQscZP7c8QJqtc8P4hK-mE,774
|
|
21
22
|
meridian/data/arg_builder.py,sha256=f7LEysYmixAagwygZOEiJkRnWggRhTeXj5AXthBpkQ8,3741
|
|
22
23
|
meridian/data/input_data.py,sha256=tfqkuiQNO8GdgE6rqTKIuSPQbXZ1L3GOFdHL748FNvg,33400
|
|
23
|
-
meridian/data/load.py,sha256=
|
|
24
|
+
meridian/data/load.py,sha256=MKCnRoR8ZIfhEAcm5ZUQsjfoEzi1c9SDOgf6BR8Akr0,54642
|
|
24
25
|
meridian/data/test_utils.py,sha256=LNtsAalrHuolw7JbdggesJjhc6HXuy_eGPPAf4ix42c,51756
|
|
25
26
|
meridian/data/time_coordinates.py,sha256=U4Qv8kXKUYoSH0A5F3REkoScSvrFDHgf_LaxSybdTgo,9881
|
|
26
27
|
meridian/model/__init__.py,sha256=bvx8vvXolktsCTDKViU9U1v85pgNWF3haDowTKy11d4,982
|
|
@@ -34,8 +35,7 @@ meridian/model/prior_distribution.py,sha256=6fqx_XIM0DSQICd65XaSRhelsjvZ4ariBfey
|
|
|
34
35
|
meridian/model/prior_sampler.py,sha256=zGSAQviFO3s2GcVbfG9EfXxo_SNFBFbTQC3e-QBFzio,23079
|
|
35
36
|
meridian/model/spec.py,sha256=xaHxfCLWLnWMAkMy2ouDoqGBHI_4tzzX8AaJOsKdu7Q,8878
|
|
36
37
|
meridian/model/transformers.py,sha256=te3OJixprWLtv7O00a9GZWE4waTS94NNLVo3tWIl1-k,7420
|
|
37
|
-
google_meridian-1.0.
|
|
38
|
-
google_meridian-1.0.
|
|
39
|
-
google_meridian-1.0.
|
|
40
|
-
google_meridian-1.0.
|
|
41
|
-
google_meridian-1.0.6.dist-info/RECORD,,
|
|
38
|
+
google_meridian-1.0.7.dist-info/METADATA,sha256=QgnvZGLD917PxfVVbeaGOFgMQelOAex_cNmvSCgoPdM,22055
|
|
39
|
+
google_meridian-1.0.7.dist-info/WHEEL,sha256=tTnHoFhvKQHCh4jz3yCn0WPTYIy7wXx3CJtJ7SJGV7c,91
|
|
40
|
+
google_meridian-1.0.7.dist-info/top_level.txt,sha256=nwaCebZvvU34EopTKZsjK0OMTFjVnkf4FfnBN_TAc0g,9
|
|
41
|
+
google_meridian-1.0.7.dist-info/RECORD,,
|
meridian/__init__.py
CHANGED
meridian/data/load.py
CHANGED
|
@@ -950,7 +950,7 @@ class DataFrameDataLoader(InputDataLoader):
|
|
|
950
950
|
raise ValueError('NA values found in the organic_frequency columns.')
|
|
951
951
|
|
|
952
952
|
# Determine columns in which NAs are expected in the lagged-media period.
|
|
953
|
-
|
|
953
|
+
not_lagged_columns = []
|
|
954
954
|
coords = [
|
|
955
955
|
constants.KPI,
|
|
956
956
|
constants.CONTROLS,
|
|
@@ -967,12 +967,12 @@ class DataFrameDataLoader(InputDataLoader):
|
|
|
967
967
|
for coord in coords:
|
|
968
968
|
columns = getattr(self.coord_to_columns, coord)
|
|
969
969
|
columns = [columns] if isinstance(columns, str) else columns
|
|
970
|
-
|
|
970
|
+
not_lagged_columns.extend(columns)
|
|
971
971
|
|
|
972
972
|
# Dates with at least one non-NA value in columns different from media,
|
|
973
973
|
# reach, frequency, organic_media, organic_reach, and organic_frequency.
|
|
974
974
|
time_column_name = self.coord_to_columns.time
|
|
975
|
-
no_na_period = self.df[(~self.df[
|
|
975
|
+
no_na_period = self.df[(~self.df[not_lagged_columns].isna()).any(axis=1)][
|
|
976
976
|
time_column_name
|
|
977
977
|
].unique()
|
|
978
978
|
|
|
@@ -999,13 +999,16 @@ class DataFrameDataLoader(InputDataLoader):
|
|
|
999
999
|
# organic_frequency.
|
|
1000
1000
|
not_lagged_data = self.df.loc[
|
|
1001
1001
|
self.df[time_column_name].isin(no_na_period),
|
|
1002
|
-
|
|
1002
|
+
not_lagged_columns,
|
|
1003
1003
|
]
|
|
1004
1004
|
if not_lagged_data.isna().any(axis=None):
|
|
1005
|
+
incorrect_columns = []
|
|
1006
|
+
for column in not_lagged_columns:
|
|
1007
|
+
if not_lagged_data[column].isna().any(axis=None):
|
|
1008
|
+
incorrect_columns.append(column)
|
|
1005
1009
|
raise ValueError(
|
|
1006
|
-
'NA values found in
|
|
1007
|
-
|
|
1008
|
-
' non-media columns).'
|
|
1010
|
+
f'NA values found in columns {incorrect_columns} within the modeling'
|
|
1011
|
+
' time window (time periods where the KPI is modeled).'
|
|
1009
1012
|
)
|
|
1010
1013
|
|
|
1011
1014
|
def load(self) -> input_data.InputData:
|
|
File without changes
|
|
File without changes
|