Skip to content

Commit 3486622

Browse files
authored
Add dataset for testing R2 function and add reference pseudo-variance bernoulli (#115)
* add reference pseudo-variance bernoulli * add dataset
1 parent 9264e22 commit 3486622

File tree

3 files changed

+45
-1
lines changed

3 files changed

+45
-1
lines changed

src/arviz_base/references.bib

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,3 +349,18 @@ @article{kaplan_1958
349349
doi = {https://doi.org/10.1080/01621459.1958.10501452},
350350
url = {https://www.tandfonline.com/doi/abs/10.1080/01621459.1958.10501452},
351351
}
352+
353+
354+
@article{tjur_2009,
355+
author = {Tue Tjur},
356+
title = {Coefficients of Determination in Logistic Regression Models—A New Proposal: The Coefficient of Discrimination},
357+
journal = {The American Statistician},
358+
volume = {63},
359+
number = {4},
360+
pages = {366--372},
361+
year = {2009},
362+
publisher = {ASA Website},
363+
doi = {10.1198/tast.2009.08210},
364+
URL = {https://doi.org/10.1198/tast.2009.08210},
365+
eprint = {https://doi.org/10.1198/tast.2009.08210}
366+
}

src/arviz_base/testing.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,34 @@ def datatree_binary(seed=17):
108108
)
109109

110110

111+
def datatree_regression(seed=17):
112+
"""Generate a DataTree for regression data."""
113+
from scipy.stats import norm
114+
115+
rng = np.random.default_rng(seed)
116+
n_obs = 100
117+
true_sigma = 0.9
118+
true_mu = 2 * np.linspace(-1, 1, n_obs)
119+
observed_data = true_mu + rng.normal(0, true_sigma, size=n_obs)
120+
121+
posterior_sigma = rng.normal(true_sigma, 0.1, size=(4, 500))
122+
posterior_sigma = np.abs(posterior_sigma)
123+
124+
posterior_mu = rng.normal(true_mu, true_sigma * 0.5, size=(4, 500, n_obs))
125+
posterior_predictive = rng.normal(posterior_mu, true_sigma, size=(4, 500, n_obs))
126+
log_likelihood = norm(posterior_mu, true_sigma).logpdf(observed_data)
127+
128+
return from_dict(
129+
{
130+
"posterior": {"mu": posterior_mu, "sigma": posterior_sigma},
131+
"posterior_predictive": {"y": posterior_predictive},
132+
"observed_data": {"y": observed_data},
133+
"log_likelihood": {"y": log_likelihood},
134+
},
135+
dims={"y": ["obs_dim"]},
136+
)
137+
138+
111139
def datatree_4d(seed=31):
112140
"""Generate a DataTree with a 4D posterior."""
113141
rng = np.random.default_rng(seed)
@@ -167,7 +195,7 @@ def cmp():
167195

168196

169197
def fake_dt():
170-
"""Generate a fake prior/posterior DataTreeZ."""
198+
"""Generate a fake prior/posterior DataTree."""
171199
rng = np.random.default_rng(42)
172200

173201
return from_dict(

src/arviz_base/testing.pyi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ def datatree(seed=...) -> None: ...
1010
def datatree2(seed=...) -> None: ...
1111
def datatree3(seed=...) -> None: ...
1212
def datatree_binary(seed=...) -> None: ...
13+
def datatree_regression(seed=...) -> None: ...
1314
def datatree_4d(seed=...) -> None: ...
1415
def datatree_sample(seed=...) -> None: ...
1516
def cmp() -> None: ...

0 commit comments

Comments
 (0)