Psychometrics & Biostatistics
Feldt W Statistic and Confidence Bounds for Cronbach’s Alpha
Test observed Cronbach’s alpha against a minimum reliability benchmark using Feldt’s exact variance-ratio W = (1 - alpha_0) / (1 - alpha_hat) and Bonett’s log-complement 95% confidence interval.
Never accept a point-estimate Cronbach’s alpha without checking its lower bound
Reporting Cronbach’s alpha_hat = 0.84 as “above Nunnally’s 0.70 threshold” ignores sampling error when sample size N is modest. Feldt (1965, 1987) proved that W = (1 - alpha_0) / (1 - alpha_hat) follows an exact central F distribution with df1 = N - 1 and df2 = (N - 1)*(k - 1) under H0: alpha = alpha_0.
Check by hand for observed alpha_hat = 0.84 (B2), benchmark alpha_0 = 0.70 (B3), N = 51 respondents (B4), and k = 9 scale items (B5): Feldt’s ratio is W = (1 - 0.70) / (1 - 0.84) = 0.30 / 0.16 = 1.8750 on df1 = 50, df2 = 400. Bonett’s (2002) log-complement standard error SE_ln = SQRT(2 * k / ((k - 1) * (N - 2))) = SQRT(18 / 392) = 3 / 14 = 0.2143 yields a 95% confidence interval [0.7613, 0.8969] whose lower bound safely clears 0.70.
| Reliability Audit Metric | Formula Expression | Sample Output |
|---|---|---|
| Feldt Variance Ratio W | (1 - alpha_0) / (1 - alpha_hat) | 1.8750 (df1 = 50, df2 = 400) |
| Log-Complement SE (Bonett) | SQRT(2 * k / ((k - 1) * (N - 2))) | 0.2143 (Exact 3 / 14) |
| 95% Lower Confidence Bound | 1 - (1 - alpha_hat) * EXP(1.959964 * SE_ln - LN(N/(N-1))) | 0.7613 (> 0.70 benchmark) |
| 95% Upper Confidence Bound | 1 - (1 - alpha_hat) * EXP(-1.959964 * SE_ln - LN(N/(N-1))) | 0.8969 |
Feldt Benchmark Test Ratio W Formula
Guard invalid reliability bounds (alpha_hat >= 1 or alpha_0 >= 1) or insufficient items/respondents (N <= 2 or k < 2) before dividing.
=IF(OR(B2 >= 1, B3 >= 1, B4 <= 2, B5 < 2), "Invalid Scale Input", ROUND((1 - B3) / (1 - B2), 4))95% Lower Confidence Bound Formula & Sample-Size Check
Compute the two-sided 95% lower bound using Bonett’s bias-adjusted log-complement transformation b_adj = LN(N / (N - 1)). Now test why small pilot samples mislead: shrink N in B4 from 51 to 16 while keeping alpha_hat = 0.84 — the 95% lower bound drops to 0.6709 (below 0.70!), warning that the pilot cannot yet rule out sub-threshold reliability.
=LET(a_hat, B2, n_sub, B4, k_itm, B5, IF(OR(a_hat >= 1, n_sub <= 2, k_itm < 2), "Invalid Scale Input", LET(se_ln, SQRT((2 * k_itm) / ((k_itm - 1) * (n_sub - 2))), b_adj, LN(n_sub / (n_sub - 1)), ROUND(1 - (1 - a_hat) * EXP(1.959964 * se_ln - b_adj), 4))))Try the example
Use the original values or change them to test your understanding.