Mean, median, both variances, all nine quantile definitions and the moment coefficients of shape, each with the definition it is under and where to reproduce it.
Related reading
Initializing in your browser…
Exact arithmetic on rationals, with both evaluation conventions named and the precedence table the parser runs on printed on the page.
Plot functions with a real expression parser, poles drawn as gaps, and roots, turning points and integrals found by bracketing with the check printed.
Plot 3D surfaces from z = f(x, y), polar z = f(r, theta), or fully parametric equations. Exact evaluation via mathjs, real holes where a function is undefined, and OBJ or STL export for 3D printing.
You need the quartiles of the numbers 1 to 10, and your colleague has a different answer.
Data
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
Q1, under each definition
type 1: 3 type 4: 2.5 type 7: 3.25 type 2: 3 type 5: 2.75 type 8: 2.9167 type 3: 2 type 6: 2.75 type 9: 2.9375
There are nine standard quantile definitions (Hyndman and Fan, 1996) and on ten numbers they put Q1 anywhere from 2 to 3.25. R, NumPy and Excel PERCENTILE.INC use type 7; SPSS and Excel PERCENTILE.EXC use type 6; SAS uses type 2. Neither of you is wrong, and neither of you said which one you used. All nine are selectable here and the tool names the packages that use each. The same goes for the variance, where dividing by n gives 8.25 and dividing by n minus 1 gives 9.1667, and for the skewness, where the moment coefficient and Pearson second coefficient are different numbers.
Mean, median, both variances, all nine quantile definitions, the moment coefficient of skewness and the excess kurtosis, each with the definition it is under and where to reproduce it. More than one definition is in common use for three of these, so the tool says which it picked instead of choosing quietly.
Most of the numbers a statistics calculator prints have one definition. Three of them do not, and a tool that picks one silently has answered a different question from the one you asked.
**Quartiles have nine standard definitions.** Hyndman and Fan catalogued them in 1996 and R implements all nine behind a `type=` argument. On the numbers 1 to 10 they put Q1 at 2, 2.5, 2.75, 3 or 3.25, depending. Type 7 is the default in R, NumPy, Google Sheets and Excel PERCENTILE.INC; type 6 is Excel PERCENTILE.EXC, Minitab and SPSS; type 2 is the SAS default; type 8 is what Hyndman and Fan themselves recommend. All nine are here, selectable, with the packages that use each one named, and a table showing what all nine give on your numbers. Q1, Q3, the interquartile range and the outlier fences all move with the choice, which is exactly why it is on the page.
**Variance has two divisors.** Dividing by n gives the population variance, which describes these numbers and claims nothing else. Dividing by n minus 1 gives the sample variance, which estimates the variance of a population these numbers came from. On 1 to 10 they are 8.25 and 9.1667. Both are printed here, labelled, with their standard deviations, and the sample form is reported as undefined for a single value rather than as zero.
**Skewness has two coefficients in circulation.** The Fisher-Pearson moment coefficient g1 is the third standardised moment and is what a textbook and `scipy.stats.skew` mean by the word. Pearson's second coefficient, 3 times mean minus median over the standard deviation, is a cheaper approximation and a different number: on 1, 1, 1, 2, 2, 3, 4, 9, 20 they are 1.850327 and 1.416355. The moment coefficient is what is printed, and it says so.
**Two things that break at scale are fixed.** The geometric mean is computed as the exponential of the mean of the logarithms rather than as an nth root of a product, so four hundred values of 10 give 10 rather than Infinity, and four hundred values of 0.01 give 0.01 rather than 0. And nothing spreads an array into an argument list, which throws a stack overflow somewhere around a hundred thousand values; two hundred thousand numbers are summarised here without complaint.
**Values are read against a stated grammar.** A token that is not a number is reported with the reason rather than silently read as a prefix: `1abc` is not 1, `0x1F` is not 0, and `Infinity` is refused rather than poisoning the mean. Sums use Neumaier compensation and the page reports how far plain left-to-right addition would have drifted. Alongside all of that: the harmonic and quadratic means, the mid-range, every mode rather than the first, a Freedman-Diaconis histogram with the mean and median drawn as separate lines, Tukey's fences with the values outside them listed, and a z-score and percentile rank for any value you name.
Enter 1 through 10 and open the table of all nine definitions: Q1 comes out at 3 under type 1, 2.5 under type 2, 2.75 under type 5, 3.25 under type 7 and 2.9167 under type 8. There is no single right answer, only a stated one.
On 1 to 10 the population variance is 8.25 and the sample variance is 9.1667. Neither is wrong; they answer different questions, and a calculator printing one under the label "Variance" has chosen for you.
Paste four hundred copies of 10. Computed as an nth root of a product this is Infinity, because 1e400 is past the range of a double. Computed through logarithms it is 10.
Pick the quantile definition that package uses and the quartiles line up.
Get both variance forms, the shape coefficients and the outlier fences without opening a stats package.
The definition behind every number is on the page, with where to reproduce it.
Almost certainly the quantile definition. There are nine standard ones (Hyndman and Fan, 1996) and packages differ: R and NumPy default to type 7, Excel PERCENTILE.EXC and SPSS use type 6, SAS uses type 2. Select the same one here and the numbers match.
Divide by n minus 1 (the sample variance) when your numbers are a sample and you want to say something about the wider population. Divide by n (the population variance) when the numbers are the entire thing you are describing. Both are shown, labelled.
The Fisher-Pearson moment coefficient g1, which is the third standardised moment. It is what scipy.stats.skew computes and what a textbook means by the word. It is not Pearson's second coefficient, 3(mean minus median) over the standard deviation, which is a different number.
A value more than 1.5 interquartile ranges outside the quartiles, which is Tukey's fence rule from Exploratory Data Analysis (1977). That is a convention for drawing a box plot, not a test: a normal sample of a hundred has about one by chance, and a value outside the fence is not necessarily wrong.
They are listed with the reason and excluded from the count. Nothing is read as a prefix, so "1abc" is not 1 and "0x1F" is not 0, and Infinity is refused rather than turning the mean into Infinity.
Two hundred thousand is comfortable. Past about four thousand characters the list is no longer put into the shareable link, because a URL of that size is not a link; the page says so and everything still works on the whole list.
Every calculation runs locally in your browser. Your numbers and expressions are not transmitted or stored.