yasa.EpochByEpochAgreement.summary#
- EpochByEpochAgreement.summary(by_stage=False, ci_method=None, confidence=0.95, bootstrap_kwargs=None, **kwargs)[source]#
Return group-level agreement scores.
- Parameters:
- by_stagebool
If
False(default),summarywill include agreement scores derived from average-based metrics. IfTrue, returnedsummaryDataFramewill include agreement scores for each sleep stage, derived from one-vs-rest metrics.- ci_methodstr or None
Method used to compute a confidence interval of the mean of each metric across sessions.
None(default) — no confidence interval is computed.'boot'— non-parametric bootstrap across sessions. The same resampled sessions are used for every metric (and stage), so each replicate remains internally consistent. Sessions in which a metric is undefined (see thezero_divisionparameter ofget_agreement_bystage) are ignored, and replicates in which a metric has no defined value are excluded from its percentiles.
Added in version 0.8.0.
- confidencefloat
Confidence level (between 0 and 1) of the confidence interval. Default is 0.95.
Added in version 0.8.0.
- bootstrap_kwargsdict or None
Optional settings of the bootstrap procedure when
ci_method='boot'. Valid keys are:'n_resamples'— number of bootstrap resamples (int, default 10000).'method'—'BCa'(default) for bias-corrected and accelerated percentiles (Efron, 1987),'percentile'for plain percentiles, or'basic'for the reverse-percentile method. Metrics that are constant across all resamples fall back to plain percentiles. BCa can be unstable with few sessions, and a warning is emitted below 20 sessions.'rng'— an integer seed ornumpy.random.Generatorfor reproducible intervals (default None).
Added in version 0.8.0.
- **kwargskey, value pairs
Additional keyword arguments are passed to
pandas.DataFrame.groupby.agg. This can be used to customize the descriptive statistics returned.
- Returns:
- summary
pandas.DataFrame A
pandas.DataFramesummarizing agreement scores across the entire dataset with descriptive statistics. Each row is an agreement metric (or a (stage, metric) pair ifby_stage=True) and each column is a descriptive statistic (e.g., mean, standard deviation).When
ci_methodis notNone, two extra columnsci_lowerandci_upperare appended. They are left missing forsupport, which is not an agreement score.
- summary
Examples
The scores of the last
get_agreement(orget_agreement_bystageifby_stage=True) call are summarized; if none was made, default scores are computed:>>> import yasa >>> ref_hyps = [yasa.simulate_hypnogram(tib=600, scorer="Human", seed=i) for i in range(5)] >>> obs_hyps = [h.simulate_similar(scorer="YASA", seed=i) for i, h in enumerate(ref_hyps)] >>> ebe = yasa.EpochByEpochAgreement(ref_hyps, obs_hyps) >>> _ = ebe.get_agreement() >>> ebe.summary().round(2) mad mean std min median max metric accuracy 5.30 28.58 6.27 21.42 30.58 35.08 balanced_acc 4.13 24.16 5.85 16.85 23.87 32.68 kappa 0.05 0.04 0.07 -0.06 0.06 0.14 mcc 0.05 0.05 0.07 -0.06 0.06 0.14 precision 6.24 28.26 7.33 20.29 30.64 34.93 f1 5.89 27.97 6.88 20.50 30.56 34.55
To control the descriptive statistics included as columns:
>>> ebe.summary(func=["count", "mean", "sem"]).round(2) count mean sem metric accuracy 5.0 28.58 2.80 balanced_acc 5.0 24.16 2.62 kappa 5.0 0.04 0.03 mcc 5.0 0.05 0.03 precision 5.0 28.26 3.28 f1 5.0 27.97 3.07
To add a bootstrap confidence interval of the mean across sessions, pass
ci_method.>>> ebe.summary( ... ci_method="boot", ... bootstrap_kwargs={"method": "percentile", "n_resamples": 1000, "rng": 0}, ... func=["mean"], ... ).round(2) mean ci_lower ci_upper metric accuracy 28.58 23.68 33.28 balanced_acc 24.16 20.08 29.09 kappa 0.04 -0.01 0.10 mcc 0.05 -0.01 0.10 precision 28.26 22.50 34.03 f1 27.97 22.60 33.13