processbehavior 0.2.0__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.
- processbehavior/__init__.py +133 -0
- processbehavior/analysis.py +2944 -0
- processbehavior/analysis_dataset.py +361 -0
- processbehavior/analysis_result.py +1276 -0
- processbehavior/calibration.py +70 -0
- processbehavior/capability.py +720 -0
- processbehavior/data_preparation.py +792 -0
- processbehavior/datasets/__init__.py +37 -0
- processbehavior/datasets/data/coffee_shop_demo_long.csv +385 -0
- processbehavior/datasets/loaders.py +66 -0
- processbehavior/datasets/synthetic.py +1711 -0
- processbehavior/derivations.py +602 -0
- processbehavior/effects_calculator.py +603 -0
- processbehavior/exceptions.py +216 -0
- processbehavior/exporters/__init__.py +5 -0
- processbehavior/exporters/excel_exporter.py +708 -0
- processbehavior/focused_result.py +329 -0
- processbehavior/formulation_spec.py +144 -0
- processbehavior/loss_function.py +517 -0
- processbehavior/maximum_information.py +285 -0
- processbehavior/plotting/__init__.py +46 -0
- processbehavior/plotting/_math.py +121 -0
- processbehavior/plotting/capability_chart.py +858 -0
- processbehavior/plotting/contracts.py +176 -0
- processbehavior/plotting/control_chart.py +206 -0
- processbehavior/plotting/effects_charts.py +640 -0
- processbehavior/plotting/lane_boundaries.py +78 -0
- processbehavior/plotting/limits.py +157 -0
- processbehavior/plotting/maximum_information_chart.py +395 -0
- processbehavior/plotting/plotter.py +1469 -0
- processbehavior/plotting/renderers.py +660 -0
- processbehavior/plotting/report.py +211 -0
- processbehavior/plotting/residuals.py +282 -0
- processbehavior/plotting/run_rules_viz.py +150 -0
- processbehavior/plotting/stats_box.py +183 -0
- processbehavior/plotting/themes.py +544 -0
- processbehavior/plotting/x_axis_layout.py +474 -0
- processbehavior/plotting/zones.py +127 -0
- processbehavior/process_behavior.py +1290 -0
- processbehavior/py.typed +0 -0
- processbehavior/residual_calculator.py +572 -0
- processbehavior/result_signals.py +149 -0
- processbehavior/result_tabular.py +296 -0
- processbehavior/sds_detector.py +1432 -0
- processbehavior/signals/__init__.py +14 -0
- processbehavior/signals/config.py +435 -0
- processbehavior/signals/detector.py +328 -0
- processbehavior/signals/detectors.py +368 -0
- processbehavior/signals/result.py +232 -0
- processbehavior/spc_constants.py +692 -0
- processbehavior/study.py +2733 -0
- processbehavior/types.py +154 -0
- processbehavior-0.2.0.dist-info/METADATA +279 -0
- processbehavior-0.2.0.dist-info/RECORD +56 -0
- processbehavior-0.2.0.dist-info/WHEEL +4 -0
- processbehavior-0.2.0.dist-info/licenses/LICENSE +201 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Data generation and loading utilities for processbehavior package.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from .loaders import load_coffee_shop
|
|
8
|
+
from .synthetic import (
|
|
9
|
+
compare_sds_characteristics,
|
|
10
|
+
generate_test_suite,
|
|
11
|
+
get_sds_info,
|
|
12
|
+
make_design,
|
|
13
|
+
make_edge_cases,
|
|
14
|
+
make_sds1,
|
|
15
|
+
make_sds2,
|
|
16
|
+
make_sds3,
|
|
17
|
+
make_sds4,
|
|
18
|
+
make_sds5,
|
|
19
|
+
make_sds6,
|
|
20
|
+
print_sds_summary,
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
__all__ = [
|
|
24
|
+
'make_sds1',
|
|
25
|
+
'make_sds2',
|
|
26
|
+
'make_sds3',
|
|
27
|
+
'make_sds4',
|
|
28
|
+
'make_sds5',
|
|
29
|
+
'make_sds6',
|
|
30
|
+
'make_design',
|
|
31
|
+
'make_edge_cases',
|
|
32
|
+
'load_coffee_shop',
|
|
33
|
+
'compare_sds_characteristics',
|
|
34
|
+
'generate_test_suite',
|
|
35
|
+
'get_sds_info',
|
|
36
|
+
'print_sds_summary',
|
|
37
|
+
]
|
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
date,year_week,week,day_of_week,hour,daypart,wait_sec
|
|
2
|
+
2026-01-05,2026-W01,1,Mon,8,Peak,239
|
|
3
|
+
2026-01-05,2026-W01,1,Mon,10,Off-peak,225
|
|
4
|
+
2026-01-05,2026-W01,1,Mon,13,Peak,234
|
|
5
|
+
2026-01-05,2026-W01,1,Mon,16,Off-peak,218
|
|
6
|
+
2026-01-06,2026-W01,1,Tue,8,Peak,241
|
|
7
|
+
2026-01-06,2026-W01,1,Tue,10,Off-peak,227
|
|
8
|
+
2026-01-06,2026-W01,1,Tue,13,Peak,252
|
|
9
|
+
2026-01-06,2026-W01,1,Tue,16,Off-peak,209
|
|
10
|
+
2026-01-07,2026-W01,1,Wed,8,Peak,263
|
|
11
|
+
2026-01-07,2026-W01,1,Wed,10,Off-peak,240
|
|
12
|
+
2026-01-07,2026-W01,1,Wed,13,Peak,269
|
|
13
|
+
2026-01-07,2026-W01,1,Wed,16,Off-peak,238
|
|
14
|
+
2026-01-08,2026-W01,1,Thu,8,Peak,278
|
|
15
|
+
2026-01-08,2026-W01,1,Thu,10,Off-peak,239
|
|
16
|
+
2026-01-08,2026-W01,1,Thu,13,Peak,264
|
|
17
|
+
2026-01-08,2026-W01,1,Thu,16,Off-peak,227
|
|
18
|
+
2026-01-09,2026-W01,1,Fri,8,Peak,273
|
|
19
|
+
2026-01-09,2026-W01,1,Fri,10,Off-peak,238
|
|
20
|
+
2026-01-09,2026-W01,1,Fri,13,Peak,269
|
|
21
|
+
2026-01-09,2026-W01,1,Fri,16,Off-peak,231
|
|
22
|
+
2026-01-10,2026-W01,1,Sat,8,Peak,238
|
|
23
|
+
2026-01-10,2026-W01,1,Sat,10,Off-peak,213
|
|
24
|
+
2026-01-10,2026-W01,1,Sat,13,Peak,263
|
|
25
|
+
2026-01-10,2026-W01,1,Sat,16,Off-peak,215
|
|
26
|
+
2026-01-12,2026-W02,2,Mon,8,Peak,249
|
|
27
|
+
2026-01-12,2026-W02,2,Mon,10,Off-peak,242
|
|
28
|
+
2026-01-12,2026-W02,2,Mon,13,Peak,242
|
|
29
|
+
2026-01-12,2026-W02,2,Mon,16,Off-peak,225
|
|
30
|
+
2026-01-13,2026-W02,2,Tue,8,Peak,261
|
|
31
|
+
2026-01-13,2026-W02,2,Tue,10,Off-peak,218
|
|
32
|
+
2026-01-13,2026-W02,2,Tue,13,Peak,242
|
|
33
|
+
2026-01-13,2026-W02,2,Tue,16,Off-peak,233
|
|
34
|
+
2026-01-14,2026-W02,2,Wed,8,Peak,243
|
|
35
|
+
2026-01-14,2026-W02,2,Wed,10,Off-peak,229
|
|
36
|
+
2026-01-14,2026-W02,2,Wed,13,Peak,253
|
|
37
|
+
2026-01-14,2026-W02,2,Wed,16,Off-peak,227
|
|
38
|
+
2026-01-15,2026-W02,2,Thu,8,Peak,230
|
|
39
|
+
2026-01-15,2026-W02,2,Thu,10,Off-peak,237
|
|
40
|
+
2026-01-15,2026-W02,2,Thu,13,Peak,233
|
|
41
|
+
2026-01-15,2026-W02,2,Thu,16,Off-peak,198
|
|
42
|
+
2026-01-16,2026-W02,2,Fri,8,Peak,257
|
|
43
|
+
2026-01-16,2026-W02,2,Fri,10,Off-peak,234
|
|
44
|
+
2026-01-16,2026-W02,2,Fri,13,Peak,245
|
|
45
|
+
2026-01-16,2026-W02,2,Fri,16,Off-peak,233
|
|
46
|
+
2026-01-17,2026-W02,2,Sat,8,Peak,272
|
|
47
|
+
2026-01-17,2026-W02,2,Sat,10,Off-peak,209
|
|
48
|
+
2026-01-17,2026-W02,2,Sat,13,Peak,274
|
|
49
|
+
2026-01-17,2026-W02,2,Sat,16,Off-peak,245
|
|
50
|
+
2026-01-19,2026-W03,3,Mon,8,Peak,257
|
|
51
|
+
2026-01-19,2026-W03,3,Mon,10,Off-peak,195
|
|
52
|
+
2026-01-19,2026-W03,3,Mon,13,Peak,274
|
|
53
|
+
2026-01-19,2026-W03,3,Mon,16,Off-peak,230
|
|
54
|
+
2026-01-20,2026-W03,3,Tue,8,Peak,273
|
|
55
|
+
2026-01-20,2026-W03,3,Tue,10,Off-peak,232
|
|
56
|
+
2026-01-20,2026-W03,3,Tue,13,Peak,256
|
|
57
|
+
2026-01-20,2026-W03,3,Tue,16,Off-peak,215
|
|
58
|
+
2026-01-21,2026-W03,3,Wed,8,Peak,284
|
|
59
|
+
2026-01-21,2026-W03,3,Wed,10,Off-peak,232
|
|
60
|
+
2026-01-21,2026-W03,3,Wed,13,Peak,247
|
|
61
|
+
2026-01-21,2026-W03,3,Wed,16,Off-peak,216
|
|
62
|
+
2026-01-22,2026-W03,3,Thu,8,Peak,262
|
|
63
|
+
2026-01-22,2026-W03,3,Thu,10,Off-peak,202
|
|
64
|
+
2026-01-22,2026-W03,3,Thu,13,Peak,241
|
|
65
|
+
2026-01-22,2026-W03,3,Thu,16,Off-peak,222
|
|
66
|
+
2026-01-23,2026-W03,3,Fri,8,Peak,267
|
|
67
|
+
2026-01-23,2026-W03,3,Fri,10,Off-peak,207
|
|
68
|
+
2026-01-23,2026-W03,3,Fri,13,Peak,264
|
|
69
|
+
2026-01-23,2026-W03,3,Fri,16,Off-peak,225
|
|
70
|
+
2026-01-24,2026-W03,3,Sat,8,Peak,274
|
|
71
|
+
2026-01-24,2026-W03,3,Sat,10,Off-peak,200
|
|
72
|
+
2026-01-24,2026-W03,3,Sat,13,Peak,242
|
|
73
|
+
2026-01-24,2026-W03,3,Sat,16,Off-peak,231
|
|
74
|
+
2026-01-26,2026-W04,4,Mon,8,Peak,278
|
|
75
|
+
2026-01-26,2026-W04,4,Mon,10,Off-peak,200
|
|
76
|
+
2026-01-26,2026-W04,4,Mon,13,Peak,265
|
|
77
|
+
2026-01-26,2026-W04,4,Mon,16,Off-peak,235
|
|
78
|
+
2026-01-27,2026-W04,4,Tue,8,Peak,237
|
|
79
|
+
2026-01-27,2026-W04,4,Tue,10,Off-peak,214
|
|
80
|
+
2026-01-27,2026-W04,4,Tue,13,Peak,245
|
|
81
|
+
2026-01-27,2026-W04,4,Tue,16,Off-peak,232
|
|
82
|
+
2026-01-28,2026-W04,4,Wed,8,Peak,257
|
|
83
|
+
2026-01-28,2026-W04,4,Wed,10,Off-peak,230
|
|
84
|
+
2026-01-28,2026-W04,4,Wed,13,Peak,263
|
|
85
|
+
2026-01-28,2026-W04,4,Wed,16,Off-peak,211
|
|
86
|
+
2026-01-29,2026-W04,4,Thu,8,Peak,273
|
|
87
|
+
2026-01-29,2026-W04,4,Thu,10,Off-peak,210
|
|
88
|
+
2026-01-29,2026-W04,4,Thu,13,Peak,233
|
|
89
|
+
2026-01-29,2026-W04,4,Thu,16,Off-peak,221
|
|
90
|
+
2026-01-30,2026-W04,4,Fri,8,Peak,258
|
|
91
|
+
2026-01-30,2026-W04,4,Fri,10,Off-peak,212
|
|
92
|
+
2026-01-30,2026-W04,4,Fri,13,Peak,280
|
|
93
|
+
2026-01-30,2026-W04,4,Fri,16,Off-peak,253
|
|
94
|
+
2026-01-31,2026-W04,4,Sat,8,Peak,262
|
|
95
|
+
2026-01-31,2026-W04,4,Sat,10,Off-peak,234
|
|
96
|
+
2026-01-31,2026-W04,4,Sat,13,Peak,240
|
|
97
|
+
2026-01-31,2026-W04,4,Sat,16,Off-peak,196
|
|
98
|
+
2026-02-02,2026-W05,5,Mon,8,Peak,245
|
|
99
|
+
2026-02-02,2026-W05,5,Mon,10,Off-peak,217
|
|
100
|
+
2026-02-02,2026-W05,5,Mon,13,Peak,268
|
|
101
|
+
2026-02-02,2026-W05,5,Mon,16,Off-peak,232
|
|
102
|
+
2026-02-03,2026-W05,5,Tue,8,Peak,275
|
|
103
|
+
2026-02-03,2026-W05,5,Tue,10,Off-peak,222
|
|
104
|
+
2026-02-03,2026-W05,5,Tue,13,Peak,277
|
|
105
|
+
2026-02-03,2026-W05,5,Tue,16,Off-peak,225
|
|
106
|
+
2026-02-04,2026-W05,5,Wed,8,Peak,261
|
|
107
|
+
2026-02-04,2026-W05,5,Wed,10,Off-peak,232
|
|
108
|
+
2026-02-04,2026-W05,5,Wed,13,Peak,290
|
|
109
|
+
2026-02-04,2026-W05,5,Wed,16,Off-peak,216
|
|
110
|
+
2026-02-05,2026-W05,5,Thu,8,Peak,271
|
|
111
|
+
2026-02-05,2026-W05,5,Thu,10,Off-peak,233
|
|
112
|
+
2026-02-05,2026-W05,5,Thu,13,Peak,262
|
|
113
|
+
2026-02-05,2026-W05,5,Thu,16,Off-peak,250
|
|
114
|
+
2026-02-06,2026-W05,5,Fri,8,Peak,236
|
|
115
|
+
2026-02-06,2026-W05,5,Fri,10,Off-peak,227
|
|
116
|
+
2026-02-06,2026-W05,5,Fri,13,Peak,258
|
|
117
|
+
2026-02-06,2026-W05,5,Fri,16,Off-peak,209
|
|
118
|
+
2026-02-07,2026-W05,5,Sat,8,Peak,277
|
|
119
|
+
2026-02-07,2026-W05,5,Sat,10,Off-peak,210
|
|
120
|
+
2026-02-07,2026-W05,5,Sat,13,Peak,265
|
|
121
|
+
2026-02-07,2026-W05,5,Sat,16,Off-peak,229
|
|
122
|
+
2026-02-09,2026-W06,6,Mon,8,Peak,264
|
|
123
|
+
2026-02-09,2026-W06,6,Mon,10,Off-peak,224
|
|
124
|
+
2026-02-09,2026-W06,6,Mon,13,Peak,273
|
|
125
|
+
2026-02-09,2026-W06,6,Mon,16,Off-peak,191
|
|
126
|
+
2026-02-10,2026-W06,6,Tue,8,Peak,271
|
|
127
|
+
2026-02-10,2026-W06,6,Tue,10,Off-peak,226
|
|
128
|
+
2026-02-10,2026-W06,6,Tue,13,Peak,267
|
|
129
|
+
2026-02-10,2026-W06,6,Tue,16,Off-peak,212
|
|
130
|
+
2026-02-11,2026-W06,6,Wed,8,Peak,230
|
|
131
|
+
2026-02-11,2026-W06,6,Wed,10,Off-peak,221
|
|
132
|
+
2026-02-11,2026-W06,6,Wed,13,Peak,268
|
|
133
|
+
2026-02-11,2026-W06,6,Wed,16,Off-peak,236
|
|
134
|
+
2026-02-12,2026-W06,6,Thu,8,Peak,241
|
|
135
|
+
2026-02-12,2026-W06,6,Thu,10,Off-peak,215
|
|
136
|
+
2026-02-12,2026-W06,6,Thu,13,Peak,249
|
|
137
|
+
2026-02-12,2026-W06,6,Thu,16,Off-peak,186
|
|
138
|
+
2026-02-13,2026-W06,6,Fri,8,Peak,246
|
|
139
|
+
2026-02-13,2026-W06,6,Fri,10,Off-peak,248
|
|
140
|
+
2026-02-13,2026-W06,6,Fri,13,Peak,262
|
|
141
|
+
2026-02-13,2026-W06,6,Fri,16,Off-peak,202
|
|
142
|
+
2026-02-14,2026-W06,6,Sat,8,Peak,273
|
|
143
|
+
2026-02-14,2026-W06,6,Sat,10,Off-peak,256
|
|
144
|
+
2026-02-14,2026-W06,6,Sat,13,Peak,305
|
|
145
|
+
2026-02-14,2026-W06,6,Sat,16,Off-peak,231
|
|
146
|
+
2026-02-16,2026-W07,7,Mon,8,Peak,264
|
|
147
|
+
2026-02-16,2026-W07,7,Mon,10,Off-peak,204
|
|
148
|
+
2026-02-16,2026-W07,7,Mon,13,Peak,258
|
|
149
|
+
2026-02-16,2026-W07,7,Mon,16,Off-peak,205
|
|
150
|
+
2026-02-17,2026-W07,7,Tue,8,Peak,282
|
|
151
|
+
2026-02-17,2026-W07,7,Tue,10,Off-peak,210
|
|
152
|
+
2026-02-17,2026-W07,7,Tue,13,Peak,278
|
|
153
|
+
2026-02-17,2026-W07,7,Tue,16,Off-peak,231
|
|
154
|
+
2026-02-18,2026-W07,7,Wed,8,Peak,268
|
|
155
|
+
2026-02-18,2026-W07,7,Wed,10,Off-peak,224
|
|
156
|
+
2026-02-18,2026-W07,7,Wed,13,Peak,247
|
|
157
|
+
2026-02-18,2026-W07,7,Wed,16,Off-peak,232
|
|
158
|
+
2026-02-19,2026-W07,7,Thu,8,Peak,269
|
|
159
|
+
2026-02-19,2026-W07,7,Thu,10,Off-peak,242
|
|
160
|
+
2026-02-19,2026-W07,7,Thu,13,Peak,257
|
|
161
|
+
2026-02-19,2026-W07,7,Thu,16,Off-peak,209
|
|
162
|
+
2026-02-20,2026-W07,7,Fri,8,Peak,271
|
|
163
|
+
2026-02-20,2026-W07,7,Fri,10,Off-peak,212
|
|
164
|
+
2026-02-20,2026-W07,7,Fri,13,Peak,263
|
|
165
|
+
2026-02-20,2026-W07,7,Fri,16,Off-peak,208
|
|
166
|
+
2026-02-21,2026-W07,7,Sat,8,Peak,271
|
|
167
|
+
2026-02-21,2026-W07,7,Sat,10,Off-peak,223
|
|
168
|
+
2026-02-21,2026-W07,7,Sat,13,Peak,253
|
|
169
|
+
2026-02-21,2026-W07,7,Sat,16,Off-peak,245
|
|
170
|
+
2026-02-23,2026-W08,8,Mon,8,Peak,197
|
|
171
|
+
2026-02-23,2026-W08,8,Mon,10,Off-peak,180
|
|
172
|
+
2026-02-23,2026-W08,8,Mon,13,Peak,216
|
|
173
|
+
2026-02-23,2026-W08,8,Mon,16,Off-peak,192
|
|
174
|
+
2026-02-24,2026-W08,8,Tue,8,Peak,223
|
|
175
|
+
2026-02-24,2026-W08,8,Tue,10,Off-peak,192
|
|
176
|
+
2026-02-24,2026-W08,8,Tue,13,Peak,212
|
|
177
|
+
2026-02-24,2026-W08,8,Tue,16,Off-peak,179
|
|
178
|
+
2026-02-25,2026-W08,8,Wed,8,Peak,210
|
|
179
|
+
2026-02-25,2026-W08,8,Wed,10,Off-peak,172
|
|
180
|
+
2026-02-25,2026-W08,8,Wed,13,Peak,178
|
|
181
|
+
2026-02-25,2026-W08,8,Wed,16,Off-peak,204
|
|
182
|
+
2026-02-26,2026-W08,8,Thu,8,Peak,234
|
|
183
|
+
2026-02-26,2026-W08,8,Thu,10,Off-peak,157
|
|
184
|
+
2026-02-26,2026-W08,8,Thu,13,Peak,211
|
|
185
|
+
2026-02-26,2026-W08,8,Thu,16,Off-peak,206
|
|
186
|
+
2026-02-27,2026-W08,8,Fri,8,Peak,220
|
|
187
|
+
2026-02-27,2026-W08,8,Fri,10,Off-peak,188
|
|
188
|
+
2026-02-27,2026-W08,8,Fri,13,Peak,224
|
|
189
|
+
2026-02-27,2026-W08,8,Fri,16,Off-peak,212
|
|
190
|
+
2026-02-28,2026-W08,8,Sat,8,Peak,203
|
|
191
|
+
2026-02-28,2026-W08,8,Sat,10,Off-peak,182
|
|
192
|
+
2026-02-28,2026-W08,8,Sat,13,Peak,205
|
|
193
|
+
2026-02-28,2026-W08,8,Sat,16,Off-peak,173
|
|
194
|
+
2026-03-02,2026-W09,9,Mon,8,Peak,222
|
|
195
|
+
2026-03-02,2026-W09,9,Mon,10,Off-peak,204
|
|
196
|
+
2026-03-02,2026-W09,9,Mon,13,Peak,209
|
|
197
|
+
2026-03-02,2026-W09,9,Mon,16,Off-peak,176
|
|
198
|
+
2026-03-03,2026-W09,9,Tue,8,Peak,204
|
|
199
|
+
2026-03-03,2026-W09,9,Tue,10,Off-peak,199
|
|
200
|
+
2026-03-03,2026-W09,9,Tue,13,Peak,241
|
|
201
|
+
2026-03-03,2026-W09,9,Tue,16,Off-peak,197
|
|
202
|
+
2026-03-04,2026-W09,9,Wed,8,Peak,211
|
|
203
|
+
2026-03-04,2026-W09,9,Wed,10,Off-peak,157
|
|
204
|
+
2026-03-04,2026-W09,9,Wed,13,Peak,242
|
|
205
|
+
2026-03-04,2026-W09,9,Wed,16,Off-peak,204
|
|
206
|
+
2026-03-05,2026-W09,9,Thu,8,Peak,210
|
|
207
|
+
2026-03-05,2026-W09,9,Thu,10,Off-peak,187
|
|
208
|
+
2026-03-05,2026-W09,9,Thu,13,Peak,224
|
|
209
|
+
2026-03-05,2026-W09,9,Thu,16,Off-peak,182
|
|
210
|
+
2026-03-06,2026-W09,9,Fri,8,Peak,228
|
|
211
|
+
2026-03-06,2026-W09,9,Fri,10,Off-peak,187
|
|
212
|
+
2026-03-06,2026-W09,9,Fri,13,Peak,218
|
|
213
|
+
2026-03-06,2026-W09,9,Fri,16,Off-peak,166
|
|
214
|
+
2026-03-07,2026-W09,9,Sat,8,Peak,224
|
|
215
|
+
2026-03-07,2026-W09,9,Sat,10,Off-peak,172
|
|
216
|
+
2026-03-07,2026-W09,9,Sat,13,Peak,201
|
|
217
|
+
2026-03-07,2026-W09,9,Sat,16,Off-peak,182
|
|
218
|
+
2026-03-09,2026-W10,10,Mon,8,Peak,204
|
|
219
|
+
2026-03-09,2026-W10,10,Mon,10,Off-peak,194
|
|
220
|
+
2026-03-09,2026-W10,10,Mon,13,Peak,209
|
|
221
|
+
2026-03-09,2026-W10,10,Mon,16,Off-peak,182
|
|
222
|
+
2026-03-10,2026-W10,10,Tue,8,Peak,196
|
|
223
|
+
2026-03-10,2026-W10,10,Tue,10,Off-peak,164
|
|
224
|
+
2026-03-10,2026-W10,10,Tue,13,Peak,218
|
|
225
|
+
2026-03-10,2026-W10,10,Tue,16,Off-peak,203
|
|
226
|
+
2026-03-11,2026-W10,10,Wed,8,Peak,220
|
|
227
|
+
2026-03-11,2026-W10,10,Wed,10,Off-peak,166
|
|
228
|
+
2026-03-11,2026-W10,10,Wed,13,Peak,212
|
|
229
|
+
2026-03-11,2026-W10,10,Wed,16,Off-peak,186
|
|
230
|
+
2026-03-12,2026-W10,10,Thu,8,Peak,224
|
|
231
|
+
2026-03-12,2026-W10,10,Thu,10,Off-peak,195
|
|
232
|
+
2026-03-12,2026-W10,10,Thu,13,Peak,188
|
|
233
|
+
2026-03-12,2026-W10,10,Thu,16,Off-peak,168
|
|
234
|
+
2026-03-13,2026-W10,10,Fri,8,Peak,227
|
|
235
|
+
2026-03-13,2026-W10,10,Fri,10,Off-peak,201
|
|
236
|
+
2026-03-13,2026-W10,10,Fri,13,Peak,220
|
|
237
|
+
2026-03-13,2026-W10,10,Fri,16,Off-peak,205
|
|
238
|
+
2026-03-14,2026-W10,10,Sat,8,Peak,233
|
|
239
|
+
2026-03-14,2026-W10,10,Sat,10,Off-peak,185
|
|
240
|
+
2026-03-14,2026-W10,10,Sat,13,Peak,218
|
|
241
|
+
2026-03-14,2026-W10,10,Sat,16,Off-peak,211
|
|
242
|
+
2026-03-16,2026-W11,11,Mon,8,Peak,220
|
|
243
|
+
2026-03-16,2026-W11,11,Mon,10,Off-peak,190
|
|
244
|
+
2026-03-16,2026-W11,11,Mon,13,Peak,216
|
|
245
|
+
2026-03-16,2026-W11,11,Mon,16,Off-peak,176
|
|
246
|
+
2026-03-17,2026-W11,11,Tue,8,Peak,179
|
|
247
|
+
2026-03-17,2026-W11,11,Tue,10,Off-peak,177
|
|
248
|
+
2026-03-17,2026-W11,11,Tue,13,Peak,222
|
|
249
|
+
2026-03-17,2026-W11,11,Tue,16,Off-peak,202
|
|
250
|
+
2026-03-18,2026-W11,11,Wed,8,Peak,218
|
|
251
|
+
2026-03-18,2026-W11,11,Wed,10,Off-peak,170
|
|
252
|
+
2026-03-18,2026-W11,11,Wed,13,Peak,213
|
|
253
|
+
2026-03-18,2026-W11,11,Wed,16,Off-peak,192
|
|
254
|
+
2026-03-19,2026-W11,11,Thu,8,Peak,231
|
|
255
|
+
2026-03-19,2026-W11,11,Thu,10,Off-peak,192
|
|
256
|
+
2026-03-19,2026-W11,11,Thu,13,Peak,196
|
|
257
|
+
2026-03-19,2026-W11,11,Thu,16,Off-peak,212
|
|
258
|
+
2026-03-20,2026-W11,11,Fri,8,Peak,221
|
|
259
|
+
2026-03-20,2026-W11,11,Fri,10,Off-peak,188
|
|
260
|
+
2026-03-20,2026-W11,11,Fri,13,Peak,209
|
|
261
|
+
2026-03-20,2026-W11,11,Fri,16,Off-peak,184
|
|
262
|
+
2026-03-21,2026-W11,11,Sat,8,Peak,227
|
|
263
|
+
2026-03-21,2026-W11,11,Sat,10,Off-peak,171
|
|
264
|
+
2026-03-21,2026-W11,11,Sat,13,Peak,231
|
|
265
|
+
2026-03-21,2026-W11,11,Sat,16,Off-peak,176
|
|
266
|
+
2026-03-23,2026-W12,12,Mon,8,Peak,310
|
|
267
|
+
2026-03-23,2026-W12,12,Mon,10,Off-peak,253
|
|
268
|
+
2026-03-23,2026-W12,12,Mon,13,Peak,301
|
|
269
|
+
2026-03-23,2026-W12,12,Mon,16,Off-peak,256
|
|
270
|
+
2026-03-24,2026-W12,12,Tue,8,Peak,271
|
|
271
|
+
2026-03-24,2026-W12,12,Tue,10,Off-peak,248
|
|
272
|
+
2026-03-24,2026-W12,12,Tue,13,Peak,278
|
|
273
|
+
2026-03-24,2026-W12,12,Tue,16,Off-peak,244
|
|
274
|
+
2026-03-25,2026-W12,12,Wed,8,Peak,246
|
|
275
|
+
2026-03-25,2026-W12,12,Wed,10,Off-peak,195
|
|
276
|
+
2026-03-25,2026-W12,12,Wed,13,Peak,238
|
|
277
|
+
2026-03-25,2026-W12,12,Wed,16,Off-peak,254
|
|
278
|
+
2026-03-26,2026-W12,12,Thu,8,Peak,254
|
|
279
|
+
2026-03-26,2026-W12,12,Thu,10,Off-peak,230
|
|
280
|
+
2026-03-26,2026-W12,12,Thu,13,Peak,244
|
|
281
|
+
2026-03-26,2026-W12,12,Thu,16,Off-peak,194
|
|
282
|
+
2026-03-27,2026-W12,12,Fri,8,Peak,273
|
|
283
|
+
2026-03-27,2026-W12,12,Fri,10,Off-peak,191
|
|
284
|
+
2026-03-27,2026-W12,12,Fri,13,Peak,229
|
|
285
|
+
2026-03-27,2026-W12,12,Fri,16,Off-peak,220
|
|
286
|
+
2026-03-28,2026-W12,12,Sat,8,Peak,258
|
|
287
|
+
2026-03-28,2026-W12,12,Sat,10,Off-peak,222
|
|
288
|
+
2026-03-28,2026-W12,12,Sat,13,Peak,210
|
|
289
|
+
2026-03-28,2026-W12,12,Sat,16,Off-peak,161
|
|
290
|
+
2026-03-30,2026-W13,13,Mon,8,Peak,224
|
|
291
|
+
2026-03-30,2026-W13,13,Mon,10,Off-peak,173
|
|
292
|
+
2026-03-30,2026-W13,13,Mon,13,Peak,209
|
|
293
|
+
2026-03-30,2026-W13,13,Mon,16,Off-peak,195
|
|
294
|
+
2026-03-31,2026-W13,13,Tue,8,Peak,218
|
|
295
|
+
2026-03-31,2026-W13,13,Tue,10,Off-peak,183
|
|
296
|
+
2026-03-31,2026-W13,13,Tue,13,Peak,194
|
|
297
|
+
2026-03-31,2026-W13,13,Tue,16,Off-peak,180
|
|
298
|
+
2026-04-01,2026-W13,13,Wed,8,Peak,195
|
|
299
|
+
2026-04-01,2026-W13,13,Wed,10,Off-peak,167
|
|
300
|
+
2026-04-01,2026-W13,13,Wed,13,Peak,226
|
|
301
|
+
2026-04-01,2026-W13,13,Wed,16,Off-peak,201
|
|
302
|
+
2026-04-02,2026-W13,13,Thu,8,Peak,225
|
|
303
|
+
2026-04-02,2026-W13,13,Thu,10,Off-peak,191
|
|
304
|
+
2026-04-02,2026-W13,13,Thu,13,Peak,236
|
|
305
|
+
2026-04-02,2026-W13,13,Thu,16,Off-peak,183
|
|
306
|
+
2026-04-03,2026-W13,13,Fri,8,Peak,207
|
|
307
|
+
2026-04-03,2026-W13,13,Fri,10,Off-peak,175
|
|
308
|
+
2026-04-03,2026-W13,13,Fri,13,Peak,225
|
|
309
|
+
2026-04-03,2026-W13,13,Fri,16,Off-peak,179
|
|
310
|
+
2026-04-04,2026-W13,13,Sat,8,Peak,202
|
|
311
|
+
2026-04-04,2026-W13,13,Sat,10,Off-peak,223
|
|
312
|
+
2026-04-04,2026-W13,13,Sat,13,Peak,228
|
|
313
|
+
2026-04-04,2026-W13,13,Sat,16,Off-peak,165
|
|
314
|
+
2026-04-06,2026-W14,14,Mon,8,Peak,284
|
|
315
|
+
2026-04-06,2026-W14,14,Mon,10,Off-peak,142
|
|
316
|
+
2026-04-06,2026-W14,14,Mon,13,Peak,219
|
|
317
|
+
2026-04-06,2026-W14,14,Mon,16,Off-peak,194
|
|
318
|
+
2026-04-07,2026-W14,14,Tue,8,Peak,245
|
|
319
|
+
2026-04-07,2026-W14,14,Tue,10,Off-peak,191
|
|
320
|
+
2026-04-07,2026-W14,14,Tue,13,Peak,195
|
|
321
|
+
2026-04-07,2026-W14,14,Tue,16,Off-peak,161
|
|
322
|
+
2026-04-08,2026-W14,14,Wed,8,Peak,251
|
|
323
|
+
2026-04-08,2026-W14,14,Wed,10,Off-peak,158
|
|
324
|
+
2026-04-08,2026-W14,14,Wed,13,Peak,196
|
|
325
|
+
2026-04-08,2026-W14,14,Wed,16,Off-peak,147
|
|
326
|
+
2026-04-09,2026-W14,14,Thu,8,Peak,215
|
|
327
|
+
2026-04-09,2026-W14,14,Thu,10,Off-peak,218
|
|
328
|
+
2026-04-09,2026-W14,14,Thu,13,Peak,224
|
|
329
|
+
2026-04-09,2026-W14,14,Thu,16,Off-peak,205
|
|
330
|
+
2026-04-10,2026-W14,14,Fri,8,Peak,228
|
|
331
|
+
2026-04-10,2026-W14,14,Fri,10,Off-peak,112
|
|
332
|
+
2026-04-10,2026-W14,14,Fri,13,Peak,194
|
|
333
|
+
2026-04-10,2026-W14,14,Fri,16,Off-peak,196
|
|
334
|
+
2026-04-11,2026-W14,14,Sat,8,Peak,208
|
|
335
|
+
2026-04-11,2026-W14,14,Sat,10,Off-peak,201
|
|
336
|
+
2026-04-11,2026-W14,14,Sat,13,Peak,217
|
|
337
|
+
2026-04-11,2026-W14,14,Sat,16,Off-peak,180
|
|
338
|
+
2026-04-13,2026-W15,15,Mon,8,Peak,203
|
|
339
|
+
2026-04-13,2026-W15,15,Mon,10,Off-peak,183
|
|
340
|
+
2026-04-13,2026-W15,15,Mon,13,Peak,213
|
|
341
|
+
2026-04-13,2026-W15,15,Mon,16,Off-peak,215
|
|
342
|
+
2026-04-14,2026-W15,15,Tue,8,Peak,251
|
|
343
|
+
2026-04-14,2026-W15,15,Tue,10,Off-peak,206
|
|
344
|
+
2026-04-14,2026-W15,15,Tue,13,Peak,222
|
|
345
|
+
2026-04-14,2026-W15,15,Tue,16,Off-peak,216
|
|
346
|
+
2026-04-15,2026-W15,15,Wed,8,Peak,283
|
|
347
|
+
2026-04-15,2026-W15,15,Wed,10,Off-peak,128
|
|
348
|
+
2026-04-15,2026-W15,15,Wed,13,Peak,219
|
|
349
|
+
2026-04-15,2026-W15,15,Wed,16,Off-peak,156
|
|
350
|
+
2026-04-16,2026-W15,15,Thu,8,Peak,205
|
|
351
|
+
2026-04-16,2026-W15,15,Thu,10,Off-peak,183
|
|
352
|
+
2026-04-16,2026-W15,15,Thu,13,Peak,181
|
|
353
|
+
2026-04-16,2026-W15,15,Thu,16,Off-peak,190
|
|
354
|
+
2026-04-17,2026-W15,15,Fri,8,Peak,202
|
|
355
|
+
2026-04-17,2026-W15,15,Fri,10,Off-peak,210
|
|
356
|
+
2026-04-17,2026-W15,15,Fri,13,Peak,225
|
|
357
|
+
2026-04-17,2026-W15,15,Fri,16,Off-peak,157
|
|
358
|
+
2026-04-18,2026-W15,15,Sat,8,Peak,220
|
|
359
|
+
2026-04-18,2026-W15,15,Sat,10,Off-peak,164
|
|
360
|
+
2026-04-18,2026-W15,15,Sat,13,Peak,144
|
|
361
|
+
2026-04-18,2026-W15,15,Sat,16,Off-peak,197
|
|
362
|
+
2026-04-20,2026-W16,16,Mon,8,Peak,191
|
|
363
|
+
2026-04-20,2026-W16,16,Mon,10,Off-peak,226
|
|
364
|
+
2026-04-20,2026-W16,16,Mon,13,Peak,227
|
|
365
|
+
2026-04-20,2026-W16,16,Mon,16,Off-peak,171
|
|
366
|
+
2026-04-21,2026-W16,16,Tue,8,Peak,205
|
|
367
|
+
2026-04-21,2026-W16,16,Tue,10,Off-peak,225
|
|
368
|
+
2026-04-21,2026-W16,16,Tue,13,Peak,253
|
|
369
|
+
2026-04-21,2026-W16,16,Tue,16,Off-peak,213
|
|
370
|
+
2026-04-22,2026-W16,16,Wed,8,Peak,182
|
|
371
|
+
2026-04-22,2026-W16,16,Wed,10,Off-peak,139
|
|
372
|
+
2026-04-22,2026-W16,16,Wed,13,Peak,193
|
|
373
|
+
2026-04-22,2026-W16,16,Wed,16,Off-peak,156
|
|
374
|
+
2026-04-23,2026-W16,16,Thu,8,Peak,213
|
|
375
|
+
2026-04-23,2026-W16,16,Thu,10,Off-peak,248
|
|
376
|
+
2026-04-23,2026-W16,16,Thu,13,Peak,216
|
|
377
|
+
2026-04-23,2026-W16,16,Thu,16,Off-peak,150
|
|
378
|
+
2026-04-24,2026-W16,16,Fri,8,Peak,188
|
|
379
|
+
2026-04-24,2026-W16,16,Fri,10,Off-peak,186
|
|
380
|
+
2026-04-24,2026-W16,16,Fri,13,Peak,221
|
|
381
|
+
2026-04-24,2026-W16,16,Fri,16,Off-peak,206
|
|
382
|
+
2026-04-25,2026-W16,16,Sat,8,Peak,263
|
|
383
|
+
2026-04-25,2026-W16,16,Sat,10,Off-peak,134
|
|
384
|
+
2026-04-25,2026-W16,16,Sat,13,Peak,240
|
|
385
|
+
2026-04-25,2026-W16,16,Sat,16,Off-peak,202
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""Loaders for bundled demo datasets shipped with processbehavior."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import TYPE_CHECKING
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from ..process_behavior import ProcessBehavior
|
|
10
|
+
|
|
11
|
+
_DATA_DIR = Path(__file__).parent / 'data'
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def load_coffee_shop() -> ProcessBehavior:
|
|
15
|
+
"""Coffee-shop wait times — a full SPC story, ready to formulate.
|
|
16
|
+
|
|
17
|
+
A barista station's drink wait time (seconds), sampled four times a day at
|
|
18
|
+
08:00, 10:00, 13:00 and 16:00 across 16 weeks, Mon-Sat (96 days x 4 readings
|
|
19
|
+
= 384 rows). The two rush hours (08:00, 13:00) are the ``Peak`` daypart and
|
|
20
|
+
the two quieter hours (10:00, 16:00) are ``Off-peak`` — Peak is genuinely
|
|
21
|
+
slower, a real main effect. Formulate with ``daypart`` as the factor and
|
|
22
|
+
``date`` as the time axis for a full-replication (SDS 1) study.
|
|
23
|
+
|
|
24
|
+
The series has three deliberate events:
|
|
25
|
+
|
|
26
|
+
* **Week 8 (2026-02-23)** — a new espresso machine permanently lowers wait
|
|
27
|
+
time (~240s -> ~205s), improving Peak a touch more than Off-peak (a mild
|
|
28
|
+
interaction). A favorable shift on the Xbar chart.
|
|
29
|
+
* **Week 12** — a new POS is installed; a one-week learning curve elevates
|
|
30
|
+
and destabilises wait time, decaying back to normal by week 13 (a run
|
|
31
|
+
above the center line, not a lone outlier).
|
|
32
|
+
* **Weeks 14-16** — several new baristas are hired; the mean holds but the
|
|
33
|
+
within-subgroup spread roughly doubles — the dispersion (S) chart breaks
|
|
34
|
+
while the location (Xbar) chart looks fine. Averages hide variation.
|
|
35
|
+
|
|
36
|
+
Columns
|
|
37
|
+
-------
|
|
38
|
+
date : str (ISO date) day of the reading (use as the date time axis)
|
|
39
|
+
year_week : str ``2026-Www`` label for the week
|
|
40
|
+
week : int 1..16 (an integer time axis; handy for capability windows)
|
|
41
|
+
day_of_week : str Mon..Sat
|
|
42
|
+
hour : int hour of the reading (8, 10, 13, 16)
|
|
43
|
+
daypart : str Peak / Off-peak (the process-design factor)
|
|
44
|
+
wait_sec : int wait time in seconds (the response)
|
|
45
|
+
|
|
46
|
+
Returns
|
|
47
|
+
-------
|
|
48
|
+
ProcessBehavior
|
|
49
|
+
Wrapping the demo data; call ``.formulate(...)`` to build a Study.
|
|
50
|
+
|
|
51
|
+
Examples
|
|
52
|
+
--------
|
|
53
|
+
>>> from processbehavior import load_coffee_shop
|
|
54
|
+
>>> pb = load_coffee_shop()
|
|
55
|
+
>>> study = pb.formulate(response='wait_sec', factors=['daypart'], time='date')
|
|
56
|
+
>>> study.observed_design_state.sds # 1 — full replication
|
|
57
|
+
1
|
|
58
|
+
>>> # before/after the week-8 change along the integer week axis
|
|
59
|
+
>>> study_w = pb.formulate(response='wait_sec', factors=['daypart'], time='week')
|
|
60
|
+
>>> study_w.capability(usl=240, target=180, window=(8, None)).ppk # after the change
|
|
61
|
+
"""
|
|
62
|
+
# Lazy import keeps the datasets package import light and avoids any
|
|
63
|
+
# circular-import risk at package load.
|
|
64
|
+
from ..process_behavior import ProcessBehavior
|
|
65
|
+
|
|
66
|
+
return ProcessBehavior.read_csv(str(_DATA_DIR / 'coffee_shop_demo_long.csv'))
|