Can wearable sensors tell a museum guide how a visitor feels, second by second, for a visitor it has never met?
The setup
The guide has never encountered this visitor. Every score presented is measured on a visitor held out of training.
Agenda
| Section | What it covers | |
|---|---|---|
| 1 | The detection margin | How large a difference has to be before this evidence can call it a difference |
| 2 | Data characterisation | What the recordings actually contain, measured before any modelling |
| 3 | Five experiments | Sensors alone; sensors combined; an ordinal target; the attended painting and where the variance sits; personalisation |
| 4 | Conclusion | What it means, what it contributes, where it is limited, and what I would do next |
The detection margin · method
This is the question that matters for an unseen visitor: would a difference survive a different sample of people?
The detection margin · result
Data characterisation · method
The third pass is descriptive and independent of every feature choice in the thesis.
Data characterisation · result
| Channel | What the audit found |
|---|---|
| Electrodermal | 20 of 47 recordings carry no usable signal. 18 are negative for at least half their length, which a skin conductance cannot be; 2 more are almost flat. The failures cluster in time: 15 of 22 in the second collection wave against 5 of 25 in the first, consistent with electrode wear. |
| Eye tracker | One sample per rendered frame, so a median 23 Hz against a nominal 120, and slowest at the paintings themselves (18 samples per second there against 47 elsewhere). The two eyes agree at a median r = 0.92. |
| Blood-volume pulse | Exactly 64 Hz in every recording, so no samples are lost. Three sessions have no recording inside the session window. |
| Speech | Visitors spoke little: a median 6.9% of analysed seconds (1.2 to 23.0%). Eight transcripts are near-empty. |
| Annotations | In the live stream, 20.0% of valence seconds rest exactly on the scale midpoint, where an untouched joystick sits. In the retrospective stream, none do. |
Experiment 1 · RQ1 · method
Every score is measured on a visitor held out of training, with imputation and tuning fitted inside the training fold only.
Experiment 1 · result
Experiment 1 · result
The result does not depend on the model chosen. At this cohort size no feature relates to the ratings beyond chance.
Experiment 1 · findings
Experiment 2 · RQ1 · method
| Mechanism | How the sensors are joined |
|---|---|
| Early fusion | Concatenate every feature into one table; a single model decides how to weigh the sensors. |
| Simple averaging | One model per sensor; average their predictions with equal weight. |
| Weighted averaging | One model per sensor; weight each by its own score on the training visitors, with a negative weight floored to zero so that a poor sensor cannot invert the prediction. |
Experiment 2 · result
| Combination | Mechanism | CCC |
|---|---|---|
| EDA | simple | +0.03888 |
| EDA | early | +0.03888 |
| pupil + EDA | simple | +0.02940 |
| EDA + cardiac | weighted | +0.02878 |
| EDA + cardiac | simple | +0.02680 |
| Combination | Mechanism | CCC |
|---|---|---|
| cardiac | simple | +0.08224 |
| cardiac | early | +0.08224 |
| pupil + cardiac | weighted | +0.08224 |
| EDA + cardiac | weighted | +0.08224 |
| cardiac + speech acoustics | weighted | +0.08224 |
| Combination | Mechanism | CCC |
|---|---|---|
| pupil + EDA + cardiac + speech | early | +0.05989 |
| pupil + EDA + cardiac | early | +0.05392 |
| cardiac + speech content | early | +0.05028 |
| pupil + cardiac + speech | early | +0.04952 |
| pupil + cardiac | early | +0.04789 |
| Combination | Mechanism | CCC |
|---|---|---|
| pupil + speech acoustics | early | +0.04933 |
| pupil + speech ac. + content | early | +0.04481 |
| pupil + speech content | early | +0.03330 |
| pupil + speech acoustics | simple | +0.03242 |
| pupil + speech acoustics | weighted | +0.03242 |
On retro valence the five best rows carry an identical score, because every sensor but cardiac was floored to zero weight. Across all 316 combination rows, 15 are identical to one of their own sensors; every one is weighted averaging, on that one slice.
Experiment 2 · result
Experiment 2 · findings
Experiment 3 · RQ2 · method
The two annotation streams are binned separately, because only the live stream has a resting position at the scale midpoint.
Experiment 3 · result
Experiment 3 · findings
Experiment 4 · RQ3 and RQ4 · method
The second half uses no sensor and no model. It describes the ratings themselves.
Experiment 4 · result
The absence of a gain therefore does not rest on which seconds were scored.
Experiment 4 · result
Experiment 4 · findings
Experiment 5 · RQ5 · method
Every arm is scored on the same rows, so the arms are comparable to one another and not only to their own references.
Experiment 5 · result
The control wins. Estimating the visitor’s own opening mean and then ignoring every sensor reaches 0.29 to 0.54 pooled kappa, against 0.08 to 0.27 for the trained warm-up, in all four slices. And more warm-up does not help: out to 600 s the per-visitor CCC and kappa are exactly zero at every length, and past 360 s only 25 visitors or fewer can supply it.
Experiment 5 · findings
Conclusion
On this evidence, a guide cannot rely on second-by-second affect decoding for an unseen visitor.
Contributions
The method transfers to other collections. The figures do not; they are specific to this one.
Limitations
Future work
The open question of greatest interest: would this same pipeline recover a signal on a collection where one is known to be present?
Questions are welcome: on the protocol, the null results, or the variance decomposition.