help for fieller                                         Version 1.0 2004-12-07

Confidence interval of a quotient by Fieller's method (for unpaired data)

fieller varname [if exp] [in range] , by(grouping_varname) [level(real) reverse]

fielleri numerator_mean numerator_SD numerator_n denominator_mean denominator_SD denominator_n [, Level(real)]

by ...: may be used with fieller; see help by.


fieller calculates the confidence interval for a quotient of two independent samples of normally distributed data in varname. The samples are identified by the grouping variable in the by() option.

fielleri is the immediate form of the command. Means, standard deviations and ns are given sequentially, with the numerator's statistics first.


by() is required for fieller. It identifies the grouping variable, which may be either numeric or string. The smallest value defines the group that will go into the numerator and the next-smallest value is the group in the denominator.

reverse (for fieller) allows the user to invert the quotient should the by() variable be coded such that the group intended to be in the denominator is the lesser value.

level allows the user to choose the level of the confidence interval. It defaults to c(level). See help creturn.


The confidence interval is calculated as described in Motulsky (1995). The method is based upon an eponymous theorem by Edgar C. Fieller.

The method is intended for normally distributed data, but variances need not be identical between the two groups. fieller and fielleri are for uncorrelated data (independent groups). Confidence intervals for quotients of paired data should be calculable by the official Stata command pkequiv with the fieller option, if the dataset can be arranged to meet the requirements of the command. See help pkequiv.

The confidence interval relies upon the solution to a quadratic equation, which doesn't necessarily have both roots real; therefore, the confidence interval might not always be calculable. This will happen when the quotient is not statistically signficsignficantly different from zero at the specified level of Type I error rate—the mean of the denominator should be "large" in comparison to its standard deviation.


Harvey Motulsky, Intuitive Biostatistics Oxford: Oxford University Press, 1995. pp. 285–86.


. sysuse bplong

. // A recommended preliminary: -regress- and plot residuals with, for example, -pnorm-

. bysort when: fieller bp, by(sex) level(90)

. fieller bp if when == 2, by(sex)

. // An alternative approach (for large samples) using the delta method; less favorably considered

. tabulate sex, generate(Sex)

. regress bp Sex1 Sex2 if when == 2, noconstant

. nlcom _b[Sex1] / _b[Sex2]

. // Another alternative, using generalized linear modeling (again, for large samples)

. glm bp Sex1 if when == 2, family(gaussian) link(log) eform nolog

. fielleri 278 5.5 4 254 2.88 4, level(99)


E-mail Joseph Coveney if you observe any problems.

Also see

Manual: [R] pkequiv