An AI model on the IntoMind One scores EEG between two groups that overlap far more than they differ. What can a score this weak say about one person, and what must it never be used to say?
Background
Read it before the lab.
What the head was taught
The sex head was fitted on 194,940 four-second windows from 3,986 people in 95 studies, each person labeled 0 for male and 1 for female, as the studies recorded them. Its output is a least-squares score on that scale, not a probability, and it can fall below 0 or above 1.
The labels are the category each study recorded, however it decided it. The evaluation doesn't say whether the studies asked about sex or about gender, and two categories don't describe everyone's biology. The score measures only how much a recording resembles the training data's two groups.
From the published AUC The two groups the head learned from, drawn as normal scores 0.44 standard deviations apart, the separation an AUC of 0.623 implies.
How weak, exactly
Averaged over a person's windows, the head's AUC on studies it never saw is 0.623, and band power from the same channels gets 0.614. On one window, 0.588 against 0.582. If both groups' scores are normal with the same spread, the AUC fixes the separation of their means:
AUC = Φ(d′ / √2), so d′ = √2 Φ⁻¹(AUC)
That is about 0.44 standard deviations: the clouds overlap almost entirely. A call at the midpoint is right with probability Φ(d′/2), and what a call for one group is worth then depends on how common that group is.
From the published AUC The ROC curve of two normal groups 0.44 standard deviations apart. Its area is 0.623, and the diagonal is guessing.
Beating chance isn't a difference in kind
Small average differences can beat chance while almost everyone overlaps, and some of them may not be about the brain at all: head size and skull thickness change band power, and so can hair and contact. The published evaluation's own verdict is that the head is not a useful predictor of a person's sex, and is not offered as one. It shows what the embedding carries.
Prediction
Write it before the analysis.
PredictionIf one group were a tenth of the people scored, a call for that group would be right about of the time. Averaging a person's windows raises the AUC from 0.588 to 0.623 because .
Get ready
You need
For anyone who chooses to read their score: an IntoMind One, charged, with its cable unplugged, and the demo on a screen facing only them
Python 3 with NumPy and SciPy, or a spreadsheet
A clean microfiber, soft cotton or eyeglass cloth
Roles
Wearer
Anyone who chooses to read their own score, alone.
Analysts
Everyone, working from the published numbers.
Nobody is asked whether they wore it, or what they saw.
Rules
Unplug the cable before anyone puts it on.
Wearing it, and reading a score, are your choice.
Scores are private: nothing is written down or shared.
Wipe the electrodes between wearers with the soft cloth, since a rough one can scratch their gold coating.
Procedure
Decide privately
Reading your own score is a choice, and nobody else will see it. If you would rather nobody saw you wear the IntoMind One, use the station out of the room's view, or a time outside class. The rest of the lab works without anyone's score.
Read it alone, if you choose
Put the IntoMind One on at any site, connect to the Biological Sex Detector demo, and sit still for a couple of minutes. Save image saves a picture of your score: press it only if you want that picture, which is yours to keep or delete. Then close the tab.
You should seeTwo clouds that overlap almost entirely, spaced as the published AUC implies, and your average score among them.
Analysis
From the published AUCs alone, work out each separation, how often a call at the midpoint is right, and what a call for one group is worth as that group becomes rare. Then ask what averaging would give if a person's windows were independent.
import numpy as np
from scipy.stats import norm
for name, auc in (("one window", 0.588), ("a person's windows", 0.623)):
d = np.sqrt(2) * norm.ppf(auc) # the separation of two normal groups, in SDs
right = norm.cdf(d / 2) # a call at the midpoint, with equal groups
print(f"{name}: d' {d:.2f}, a call right {right:.0%} of the time with equal groups")
for base in (0.5, 0.1, 0.01):
ppv = base * right / (base * right + (1 - base) * (1 - right))
print(f" one group at {base:.0%} of people: a call for it is right {ppv:.0%}")
# If a person's windows were independent, averaging 40 of them would multiply d' by √40.
d1 = np.sqrt(2) * norm.ppf(0.588)
print("forty independent windows would give an AUC of", round(norm.cdf(d1 * np.sqrt(40) / np.sqrt(2)), 2))
Quantity
One window
A person's windows
Published AUC
0.588
0.623
Separation d′, in standard deviations
Right at the midpoint, equal groups
A call for a group that is 10 percent of people, right
Written analysis
Your prediction, as you wrote it before the analysis.
The quantities from the published AUCs, with the formula behind each.
What a call for a rare group is worth, and why.
What the score does not measure, and one thing besides the brain that could produce part of it.
One way a sex detector on EEG could harm someone, and one safeguard against it.
Problems
Say in words what an AUC of 0.62 means.
For an AUC of 0.623, how far apart are the means of two normal groups with the same spread?
Ten percent of the people scored are female. What fraction of those called female are?
If a person's 40 windows were independent, what AUC would averaging them give? What does 0.623 tell you?
What does the score not measure? Name three things.
Sources
IntoMind (2026). Heads for encoder e2f9b60f411f0e73. github.com/intomind/eeg-foundation-model-heads.
Fawcett, T. (2006). An introduction to ROC analysis. Pattern Recognition Letters.
Joel, D., and others (2015). Sex beyond the genitalia: the human brain mosaic. Proceedings of the National Academy of Sciences.
Lab 4 · Graduate
Biological Sex Detector
A score separates two labeled groups' EEG at an AUC near 0.6. What does it measure, how far could it ever go, and what would it take to show that it reads the brain rather than the head, the hair or the contact?
The demo, exactly
Part
What it does
Source
The head
The open sex head, which ships in slot 1. Fitted on 194,940 windows from 3,986 people in 95 studies, each person labeled 0 for male and 1 for female, as each study recorded them.
github.com/intomind/eeg-foundation-model-heads
Its output
A least-squares score on that scale, for every four-second window, not a probability: it can fall below 0 or above 1.
the device's model
The screen
The mean score so far, windows with a gap left out, drawn against two normal clouds spaced as an AUC of 0.623 implies.
biological-sex-detector/main.js, lib/readout.js
The published test
On studies it never saw, an AUC of 0.588 on one window and 0.623 on a person's averaged windows, against 0.582 and 0.614 for band power fitted the same way. The head's lead, 0.009 averaged, has a 95 percent interval from −0.013 to 0.032.
the same
What it leaves out: what the studies' labels meant. The evaluation doesn't say whether they asked about sex or gender, and two categories don't describe everyone's biology. And anything about why the score differs between groups: whatever the head reads, a band-power model reads nearly as well.
Background
Joel and others (2015) found that brains in MRI rarely have all their features at one sex's end, and called them mosaics. Chekroud and others (2016) answered that a multivariate classifier still separates the groups well, and Del Giudice and others (2016) that the mosaic method would miss large differences. Both can be true: groups can be told apart in many dimensions while individuals mix features. In EEG, a deep network trained on clinical recordings reached more than 80 percent accuracy, with fast beta, 20 to 25 hertz, its main feature (van Putten, Olbrich and Arns, 2018), a band where scalp recordings also carry muscle.
A score can separate groups through anything that differs between them on average and changes the signal: head size, hair under the electrodes, contact, age, the recording site, the study. Skull thickness, often suspected, explained little of alpha power between people in one study (Hagemann and others, 2008), which is the kind of test each suspect needs. Rippon and others (2014) set out principles for such research, from treating sex and gender as variables with many causes to reporting overlap, not only means.
Get ready
You need
For anyone who chooses to read their score: an IntoMind One, charged, with its cable unplugged, and the demo on a screen facing only them
Python 3 with NumPy and SciPy
A clean microfiber, soft cotton or eyeglass cloth
Roles
Wearer
Anyone who chooses to read their own score, alone.
Analysts
Everyone, from the published numbers and the simulation.
Nobody is asked whether they wore it, or what they saw.
Rules
Unplug the cable before anyone puts it on.
Wearing it, and reading a score, are your choice.
Scores are private: nothing is written down or shared.
Wipe the electrodes between wearers with the soft cloth, since a rough one can scratch their gold coating.
Procedure
Decide privately
Reading your own score is a choice, and nobody else will see it. If you would rather nobody saw you wear the IntoMind One, use the station out of the room's view, or a time outside class. The rest of the lab works without anyone's score.
Read it alone, if you choose
Put the IntoMind One on at any site, connect to the Biological Sex Detector demo, and sit still for a couple of minutes. Save image saves a picture of your score, yours to keep or delete. Then close the tab.
You should seeTwo clouds that overlap almost entirely, spaced as the published AUC implies, and your average score among them.
Analyses
From the published AUCs, with two normal groups of equal spread: the separation on one window and averaged, the share of a window's score that is stable within a person, and the AUC that averaging could never exceed. Then simulate a score that reads only contact, where contact differs between the groups, and adjust it for a measured index of contact, such as power from 30 to 45 hertz. Then a score with a real difference and contact that doesn't differ.
import numpy as np
from scipy.stats import norm, rankdata
def auc(score, group):
"""The chance that a random member of group 1 outscores a random member of group 0."""
r = rankdata(score)
n1 = group.sum()
return (r[group == 1].sum() - n1 * (n1 + 1) / 2) / (n1 * (len(group) - n1))
# 1. What the published AUCs imply, with two normal groups of equal spread.
d1, dm = (np.sqrt(2) * norm.ppf(a) for a in (0.588, 0.623))
m = 40 # the most windows averaged for one person
stable = (1 / (dm / d1) ** 2 - 1 / m) / (1 - 1 / m)
ceiling = d1 / np.sqrt(stable)
print(f"d' {d1:.2f} on one window, {dm:.2f} averaged")
print(f"the share of a window's score that is stable within a person: about {stable:.2f}")
print(f"averaging without limit: d' {ceiling:.2f}, AUC {norm.cdf(ceiling / np.sqrt(2)):.3f}")
# 2. A score that reads contact and nothing of the brain, when contact differs by group.
rng = np.random.default_rng(4)
n = 4000
group = rng.integers(0, 2, n) # the label the studies recorded
hair = rng.normal(0, 1, n) + 1.0 * group # hair under the electrodes, more in group 1
contact = -0.8 * hair + rng.normal(0, 1, n) # thicker hair, poorer contact
score = -0.6 * contact + rng.normal(0, 1, n) # poorer contact, higher score: no brain term
proxy = contact + rng.normal(0, 0.5, n) # a measured index of contact, with error
adjusted = score - np.polyval(np.polyfit(proxy, score, 1), proxy)
print(f"contact only: AUC {auc(score, group):.3f}, "
f"after adjusting for the index {auc(adjusted, group):.3f}")
# 3. The same, with a real difference and contact that doesn't differ by group.
contact = rng.normal(0, 1, n)
score = 0.3 * group - 0.5 * contact + rng.normal(0, 1, n)
proxy = contact + rng.normal(0, 0.5, n)
adjusted = score - np.polyval(np.polyfit(proxy, score, 1), proxy)
print(f"a real difference: AUC {auc(score, group):.3f}, "
f"after adjusting {auc(adjusted, group):.3f}")
Then report:
Derive the stable share from the two AUCs, and say what it means that averaging stops near 0.62.
From the simulation, what adjusting for contact does to a score that reads contact and to one that doesn't, and what a noisy index would leave behind.
Design the study that would separate brain from contact: what you would measure, in whom, and the comparison that would decide it.
Open problems
Brain, or body? How much of any EEG classifier's separation of the sexes comes from the brain rather than anatomy, hair, contact or muscle is not known, for this head or the deep network that found more.
Mosaics and classifiers. Whether brains are better described as two types or as mosaics depends on the question, and the debate Joel and others (2015) opened continues.
What the labels mean. Most datasets record two categories without saying how they were assigned. What a classifier learns from such labels, and for whom it fails, is open.
Written analysis
The quantities from the published AUCs, with the derivation behind each.
The confound simulation, and what it shows adjusting can and can't do.
Your design for separating brain from contact, with its comparison and what would count against each answer.
One way a sex classifier on EEG could harm someone, and one safeguard against it.
No one's score.
Sources
Hagemann, D., Hewig, J., Walter, C., and Naumann, E. (2008). Skull thickness and magnitude of EEG alpha activity. Clinical Neurophysiology.
Rippon, G., Jordan-Young, R., Kaiser, A., and Fine, C. (2014). Recommendations for sex/gender neuroimaging research: key principles and implications for research design, analysis, and interpretation. Frontiers in Human Neuroscience.
Joel, D., and others (2015). Sex beyond the genitalia: the human brain mosaic. Proceedings of the National Academy of Sciences.
Chekroud, A. M., Ward, E. J., Rosenberg, M. D., and Holmes, A. J. (2016). Patterns in the human brain mosaic discriminate males from females. Proceedings of the National Academy of Sciences.
Del Giudice, M., and others (2016). Joel et al.'s method systematically fails to detect large, consistent sex differences. Proceedings of the National Academy of Sciences.
van Putten, M. J. A. M., Olbrich, S., and Arns, M. (2018). Predicting sex from brain rhythms with deep learning. Scientific Reports.
IntoMind (2026). Heads for encoder e2f9b60f411f0e73. github.com/intomind/eeg-foundation-model-heads.
Part 2 · Bits · Lab 4
Biological Sex Detector
This lab starts at college. Choose College or Graduate at the top to see it.