Psychometric Functions & the PSE
Psychophysics is the science of turning perception into numbers: how bright a light must be before you notice it, how much one tone must rise before it sounds louder, how long an interval must last before it feels long. The instrument behind every such measurement is the psychometric function, an S-shaped curve that links a stimulus you control to the responses an observer gives. Fitting that curve, and reading two numbers off it, is the whole analysis, and the machinery is one you already met in logistic regression.
Psychophysics and the method of constant stimuli
Psychophysics measures the link between a physical stimulus and the perception it produces, a program Gustav Fechner launched in 1860 and one often credited as the start of experimental psychology. Its most transparent procedure is the method of constant stimuli. You fix a ladder of stimulus levels spanning the interesting range, from a level almost everyone judges one way to a level almost everyone judges the other, present each level many times in random order, and record the proportion of one response at each. Plotted against stimulus level, those proportions trace the psychometric function. (Adaptive procedures such as staircases tune each stimulus to the last response instead; the last section of this lesson measures what that actually buys. Constant stimuli is the one to learn first, because it lays the entire curve bare.)
That single recipe answers a remarkable range of questions. In vision: the faintest contrast at which a pattern becomes visible, or which of two lines looks longer. In hearing: the quietest detectable tone, the measurement behind the audiogram in every hearing clinic, or which of two tones is louder. In touch: the smallest gap at which two pressed points stop feeling like one. In the lifted-weight experiments that gave us Weber's law: which of two weights feels heavier. In the perception of time: whether an interval feels short or long. Detection tasks ask whether a stimulus is present at all; discrimination tasks ask which of two is more intense. Both yield the same shape, a proportion climbing smoothly from near 0 to near 1 as the stimulus grows.
The psychometric function
Whatever sense is being probed, that climbing proportion is the psychometric function: stimulus level in, response probability out. The analysis job is to describe its smooth rise with a compact curve and to summarize that curve with a few parameters.
Three families do most of the work in practice. The logistic is the same S-curve that powers logistic regression. The cumulative Gaussian comes from classic signal detection theory: it is what you get if the observer's internal reading of the stimulus is the true level plus normal noise. The Weibull is asymmetric on the stimulus axis and is a staple of detection tasks. Each has two parameters, a location and a spread, and each is fit by maximum likelihood on the raw trial counts. A trial is a Bernoulli outcome whose probability depends on the stimulus, which is exactly the binomial machinery of a GLM.
To make this concrete, the rest of the lesson stays with one task: the temporal bisection procedure, a standard way to study how people perceive duration. The observer first learns two anchor durations, a short one (200 ms) and a long one (800 ms). Probe intervals of in-between lengths then arrive one at a time, and each judgment is simply whether the probe felt closer to short or closer to long. The share of “long” responses at each probe duration is precisely the proportion the method of constant stimuli collects, and the interactive below fits a curve to it.
🎮 The Bisection Experiment
Each dot is the share of “long” responses at one probe duration; the curves are maximum-likelihood fits, with dashed drops at each condition's PSE. The simulated observer is always Gaussian; the selector changes only the fitted model. Sliders re-analyze the same frozen trials; “New trials” draws fresh ones.
Two numbers: PSE and JND
The point of subjective equality (PSE) is the stimulus level at which the two responses are equally likely, the 50% point of the fitted curve. In bisection it answers a genuinely psychological question: which duration feels like the exact midpoint between the anchors? Not necessarily the arithmetic middle. Timing studies often find bisection points near the geometric mean of the anchors (for 200 and 800 ms that is √(200 × 800) = 400 ms, not 500), one of the classic clues that our sense of time is compressive.
The just-noticeable difference (JND) measures precision: half the distance between the curve's 25% and 75% points. A steep curve means a small JND and a sharp sense of duration; a shallow curve means a large one. The two numbers are separate dials. One observer can be biased but precise (shifted PSE, steep slope), another unbiased but noisy. Dividing the JND by the PSE gives the Weber fraction, which lets you compare precision across different stimulus ranges.
Weber's law is what makes that ratio worth computing. The lifted-weight experiments mentioned above found that the just-noticeable difference grows in proportion to the baseline, so ΔI / I stays roughly constant as I changes: a gram you can just feel added to 100 g has to become four grams at 400 g. The law also explains why a bisection point lands on the geometric mean. If equal ratios feel equally different, then the duration halfway between 200 and 800 ms is √(200 × 800) = 400 ms, because 400 is double 200 and 800 is double 400. Like most laws in perception it is an approximation, and it fails near the faintest stimulus an observer can detect at all, where the Weber fraction climbs steeply; the usual repair adds a small constant to the denominator, ΔI / (I + a).
Shift or slope: two different findings
Now manipulate something. Play the probe tones louder, make a visual stimulus brighter, add a distracting task. When a condition changes the curve, it can do so in two cleanly different ways. A PSE shift slides the whole curve sideways: more intense stimuli tend to be judged longer, so a brighter probe moves the curve left and the PSE drops while the slope stays put. A slope change flattens or sharpens the curve without moving its midpoint: the observer's timing has become noisier or more precise, and the JND grows or shrinks accordingly.
That dissociation is usually the finding itself. “The manipulation changed how long things seem” is a PSE story; “the manipulation changed how well people can time at all” is a JND story. The comparison condition in the interactive lets you dial each one independently and watch what the fits report.
Does the choice of function matter? Less than students fear, though not equally for every family. The two symmetric curves, logistic and cumulative Gaussian, pin their 50% point to where the data bite hardest, so their PSEs agree to a millisecond or two. The asymmetric Weibull can sit several milliseconds off, because it is really a detection function anchored at zero stimulus and its lopsided shape fits symmetric bisection data a little awkwardly. The spread parameter is shakier still: a logistic fit to Gaussian data reports a JND about 10% smaller, and the families diverge most in the tails, where lapses live. Pick the family your subfield uses, report it, and keep it constant across conditions.
When the curve cannot start at zero
Every curve so far climbs from 0 to 1, which is right for bisection: an observer who never feels a probe as long says “short” every time. Plenty of psychophysics does not work that way. In a two-alternative forced-choice task (2AFC) the observer gets two intervals and reports which one held the stimulus, so pure guessing already earns 50%. The curve floors at chance rather than at zero, and the threshold is read by convention at 75%, halfway between chance and perfect, instead of at the 50% point that serves as a PSE here.
That floor is the guess rate γ (gamma), and the psychometric model used in practice carries it explicitly alongside a lapse rate λ (lambda) for the stray errors at the easy end. The curve itself is written ψ (psi):
ψ(x) = γ + (1 − γ − λ) · F(x)
with F one of the three families above. Fit a plain two-parameter curve to forced-choice data and the arithmetic breaks rather than bends. Simulating this lesson's own observer as a 2AFC task (true 75% threshold at 500 ms, 40 trials at each of the seven levels), the 50% point of an uncorrected fit lands at 280 ms, 220 ms below the truth, with the JND inflated from 54 ms to 160 ms. Holding γ at .5 recovers the threshold to within a millisecond.
Lapses do gentler damage, and they aim it at the JND. Give the same observer a 4% lapse rate and a two-parameter fit still finds the PSE at 500 ms, but reports a JND of 73 ms against a true 54 ms, a third too wide: a curve pinned at 0 and 1 can only reach those stray errors by lying flatter. Estimate the lapse rate alongside the curve and the JND comes back to 53 ms. The 2AFC floor and the lapse rate are also why the signal detection reading of a psychometric function is worth keeping in view: a forced-choice proportion correct converts straight to d′ = √2 · z(Pc), so 75% correct is a sensitivity of 0.95, while a yes/no proportion correct mixes sensitivity with wherever the observer put their criterion.
Fitting it in practice
For a clean two-parameter fit you can stay inside logistic regression: model each trial's response from the stimulus level, and the coefficients hand you both numbers: PSE = −b₀/b₁ and JND = ln 3 / b₁. Comparing conditions is one model away: add the condition and its interaction with stimulus level, and the condition term tests a PSE shift while the interaction tests a slope change. Real laboratory data usually deserve one more ingredient: lapse rates, small probabilities of stray finger errors that keep the curve from quite reaching 0 and 1. Purpose-built tools such as psignifit and quickpsy estimate those alongside the curve; the “Try it yourself” box below shows both routes.
In a full study you fit the function per participant and condition, then treat each participant's PSE or JND as a single data point in a familiar analysis: a paired t-test across two conditions, or a mixed model when the design grows.
How adaptive procedures find the threshold
The ladder of levels has one obvious weakness. You have to choose it before you know where the observer's threshold is, and levels far away from it teach you very little. Take this lesson's default observer, PSE 500 ms and σ = 80 ms. At 200 ms and at 800 ms the answer comes back the same on roughly 9,999 trials in 10,000. Adding up the Fisher information each level contributes, the 160 trials spent at 200, 300, 700 and 800 ms carry 7% of everything the experiment learns about the PSE, while the 40 trials at 500 ms alone carry 44%.
A staircase hands the placement problem to the observer. Start anywhere, and after each response move the stimulus one step toward the answer they did not give: they said “long”, so shorten the next probe; they said “short”, so lengthen it. The stimulus walks toward the level where the two answers are equally likely, then oscillates around it. Each turn is a reversal, and the step size normally starts coarse and halves at the first few of them. This 1-up-1-down rule settles on the 50% point, which for a bisection task is the PSE itself. Detection experiments usually want a threshold further up the curve, and Levitt's transformed up-down rules get there by demanding a run of correct answers before stepping down: k in a row to step down, one error to step up, which settles where pk = ½. So 2-down-1-up targets 70.7% and 3-down-1-up 79.4%; simulating both on a forced-choice observer returns .705 and .790.
Does it save trials? Placement and estimation turn out to be separate questions, and only the first has the answer you would expect. Simulated on this lesson's observer with the same budget of 280 trials as the ladder above, the staircase puts 97% of its trials within 80 ms of the true PSE, against the ladder's one level in seven. Then the classic recipe gives most of that back. Averaging the last eight reversals, which is the textbook estimator, recovers the PSE with a standard deviation of 24 ms against the ladder's 11 ms, and it stops improving after about forty trials, because eight reversals are eight numbers however long you run. Fit the psychometric function to all 280 staircase trials instead and that standard deviation drops to 6 ms. The fixed ladder needs roughly 790 trials, 2.8 times as many, to match it.
So adaptivity buys two things, and the one people quote is the weaker of them. It concentrates trials where the information is, and it spares you having to know the answer in advance. Move the same simulation to an observer whose true PSE is 525 ms with a sharp σ of 25 ms, so that only one rung of the fixed ladder falls anywhere near the rising part of the curve, and constant stimuli returns 505 ms, out by twenty, while the staircase lands on 525.0. What adaptivity does not buy is a free pass on the analysis: average the reversals and you throw the advantage away, fit the curve and you keep it.
Why it matters: psychometric functions are the workhorse of psychophysics, and they appear anywhere a binary judgment meets a graded stimulus: perception labs, audiology clinics fitting hearing thresholds, vision screening, animal timing studies. If you can fit one S-curve and read off its PSE and JND, you can quantify what an observer perceives, and argue about bias versus sensitivity with numbers instead of adjectives.
Problem 34 of the practice problems reads a psychometric function off its logistic coefficients, the point of subjective equality and the just-noticeable difference, then compares how a quieter probe shifts both.
Common questions
Can I pool everyone's trials into one curve?
Fit each observer separately and average the parameters, rather than the other way round. Pooling trials fits one curve to a mixture of people, and a mixture of shifted curves is always shallower than the curves it is made of: for the cumulative Gaussian the group curve's spread comes out at exactly √(σ² + τ²), where σ is a typical observer's own spread and τ is how much their PSEs differ. Simulate 24 observers with a true JND of 54 ms whose PSEs scatter with an SD of 60 ms and the pooled curve reports 67 ms, about a quarter too wide, while the PSE itself comes back correct. The damage lands on precision, which is usually the thing the study was measuring. When observers contribute unequal numbers of trials, a mixed model on the raw trials keeps the pooling honest.
Which function should I fit: logistic, cumulative Gaussian, or Weibull?
The two symmetric families (logistic and cumulative Gaussian) put the PSE in essentially the same place, and the asymmetric Weibull is usually within a handful of milliseconds; the spread parameter (and with it the JND) varies more, and the tails differ most. The cumulative Gaussian has the cleanest signal-detection interpretation (internal noise is normal), the logistic is computationally convenient and matches logistic regression, and the Weibull suits detection tasks where performance is anchored at zero stimulus. Convention in your subfield is a fine tie-breaker; just report the family and keep it constant across conditions.
Do I need a lapse rate in my psychometric model?
For real observers, usually yes. People blink, press the wrong key, and drift off, so a few errors appear even at the easiest stimulus levels. A two-parameter fit has to tilt the whole curve to accommodate those trials, which biases the slope (and so the JND); adding a small lapse parameter, either fixed at something like 0.02 or estimated with an upper bound, absorbs them instead. Tools built for psychophysics (psignifit, quickpsy) include lapse and guess rates by default, which is a good reason to graduate to them once the basic fit makes sense.