Cross Validated
2026-08-14 13:13 UTC
By heupferd
AI-113-20260814-social-media-4f9fd48c
Ordered beta regression with no observations at the upper bound: how to handle the non-identified cutpoint?
I fit a mixed ordered beta regression (Kubinec 2023, glmmTMB::ordbeta) to a proportion on [0,1] with ~23% exact zeros but no observations at 1 (max 0.925, n ≈ 2000). One of the two cutpoints therefore has no information. The likelihood places cutpoints ψ₁ P(y = 0) = 1 − ilogit(η − ψ₁) P(0 P(y = 1) = ilogit(η − ψ₂) With no y = 1, ψ₂ survives only in the second line, where the likelihood is monotonically increasing in it. There is no interior maximum; the supremum is approached as ψ₂ → ∞. Example: library(glmmTMB); set.seed(101) n no y = 1 realised u 1 - p1, 1, rbeta(n, mu*phi, (1-mu)*phi))) d $y == 0, one = d$ y == 1) # 303 zeros, 1697 interior, no ones m1 $fit$ convergence # 0 -- reports clean convergence vv $values[1:3], 3) # 2456719.755 0.039 0.026 round(setNames(abs(ee$ vectors[,1]), rownames(vv)), 3) # (Intercept) x disp theta_1|g.1 lower_cutoff upper_cutoff # 0 0 0 0 0 1 # confidence interval unbounded above confint(m1, method = "uniroot", parm = 6, parm.range = c(-20, 60)) # 2.5 % 97.5 % Estimate # upper cutoff 4.28 NA 19.64 The leading eigenvalue exceeds the next by 6 × 10⁷, and its eigenvector loads 1.000 on ψ₂ and 0.000 on everything else — the flat direction is orthogonal to the rest of the model. The point estimate is 19.64 where the generating value was 8; the optimiser simply stopped there. Note convergence = 0 throughout. The gradient along the flat direction decays exponentially, so the relative-convergence criterion is met at an arbitrary point. My workaround…
I fit a mixed ordered beta regression (Kubinec 2023, glmmTMB::ordbeta) to a proportion on [0,1] with ~23% exact zeros but no observations at 1 (max 0.925, n ≈ 2000). One of the two cutpoints therefore has no information. The likelihood places cutpoints ψ₁ P(y = 0) = 1 − ilogit(η − ψ₁) P(0 P(y = 1) = ilogit(η − ψ₂) With no y = 1, ψ₂ survives only in the second line, where the likelihood is monotonically increasing in it. There is no interior maximum; the supremum is approached as ψ₂ → ∞. Example: library(glmmTMB); set.seed(101) n no y = 1 realised u 1 - p1, 1, rbeta(n, mu*phi, (1-mu)*phi))) d $y == 0, one = d$ y == 1) # 303 zeros, 1697 interior, no ones m1 $fit$ convergence # 0 -- reports clean convergence vv $values[1:3], 3) # 2456719.755 0.039 0.026 round(setNames(abs(ee$ vectors[,1]), rownames(vv)), 3) # (Intercept) x disp theta_1|g.1 lower_cutoff upper_cutoff # 0 0 0 0 0 1 # confidence interval unbounded above confint(m1, method = "uniroot", parm = 6, parm.range = c(-20, 60)) # 2.5 % 97.5 % Estimate # upper cutoff 4.28 NA 19.64 The leading eigenvalue exceeds the next by 6 × 10⁷, and its eigenvector loads 1.000 on ψ₂ and 0.000 on everything else — the flat direction is orthogonal to the rest of the model. The point estimate is 19.64 where the generating value was 8; the optimiser simply stopped there. Note convergence = 0 throughout. The gradient along the flat direction decays exponentially, so the relative-convergence criterion is met at an arbitrary point. My workaround…
Full article content could not be extracted automatically. Read the original below.
Source:
Cross Validated
· stats.stackexchange.com