1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 The GSL Team.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being "GNU General Public License" and "Free Software
Needs Free Documentation", the Front-Cover text being "A GNU Manual",
and with the Back-Cover Text being (a) (see below). A copy of the
license is included in the section entitled "GNU Free Documentation
License".
(a) The Back-Cover Text is: "You have the freedom to copy and modify this
GNU Manual." -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library – Reference Manual: Median and Percentiles</title>
<meta name="description" content="GNU Scientific Library – Reference Manual: Median and Percentiles">
<meta name="keywords" content="GNU Scientific Library – Reference Manual: Median and Percentiles">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Statistics.html#Statistics" rel="up" title="Statistics">
<link href="Example-statistical-programs.html#Example-statistical-programs" rel="next" title="Example statistical programs">
<link href="Maximum-and-Minimum-values.html#Maximum-and-Minimum-values" rel="previous" title="Maximum and Minimum values">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Median-and-Percentiles"></a>
<div class="header">
<p>
Next: <a href="Example-statistical-programs.html#Example-statistical-programs" accesskey="n" rel="next">Example statistical programs</a>, Previous: <a href="Maximum-and-Minimum-values.html#Maximum-and-Minimum-values" accesskey="p" rel="previous">Maximum and Minimum values</a>, Up: <a href="Statistics.html#Statistics" accesskey="u" rel="up">Statistics</a> [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Median-and-Percentiles-1"></a>
<h3 class="section">21.9 Median and Percentiles</h3>
<p>The median and percentile functions described in this section operate on
sorted data. For convenience we use <em>quantiles</em>, measured on a scale
of 0 to 1, instead of percentiles (which use a scale of 0 to 100).
</p>
<dl>
<dt><a name="index-gsl_005fstats_005fmedian_005ffrom_005fsorted_005fdata"></a>Function: <em>double</em> <strong>gsl_stats_median_from_sorted_data</strong> <em>(const double <var>sorted_data</var>[], size_t <var>stride</var>, size_t <var>n</var>)</em></dt>
<dd><p>This function returns the median value of <var>sorted_data</var>, a dataset
of length <var>n</var> with stride <var>stride</var>. The elements of the array
must be in ascending numerical order. There are no checks to see
whether the data are sorted, so the function <code>gsl_sort</code> should
always be used first.
</p>
<p>When the dataset has an odd number of elements the median is the value
of element <em>(n-1)/2</em>. When the dataset has an even number of
elements the median is the mean of the two nearest middle values,
elements <em>(n-1)/2</em> and <em>n/2</em>. Since the algorithm for
computing the median involves interpolation this function always returns
a floating-point number, even for integer data types.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005fstats_005fquantile_005ffrom_005fsorted_005fdata"></a>Function: <em>double</em> <strong>gsl_stats_quantile_from_sorted_data</strong> <em>(const double <var>sorted_data</var>[], size_t <var>stride</var>, size_t <var>n</var>, double <var>f</var>)</em></dt>
<dd><p>This function returns a quantile value of <var>sorted_data</var>, a
double-precision array of length <var>n</var> with stride <var>stride</var>. The
elements of the array must be in ascending numerical order. The
quantile is determined by the <var>f</var>, a fraction between 0 and 1. For
example, to compute the value of the 75th percentile <var>f</var> should have
the value 0.75.
</p>
<p>There are no checks to see whether the data are sorted, so the function
<code>gsl_sort</code> should always be used first.
</p>
<p>The quantile is found by interpolation, using the formula
</p>
<div class="example">
<pre class="example">quantile = (1 - \delta) x_i + \delta x_{i+1}
</pre></div>
<p>where <em>i</em> is <code>floor</code>(<em>(n - 1)f</em>) and <em>\delta</em> is
<em>(n-1)f - i</em>.
</p>
<p>Thus the minimum value of the array (<code>data[0*stride]</code>) is given by
<var>f</var> equal to zero, the maximum value (<code>data[(n-1)*stride]</code>) is
given by <var>f</var> equal to one and the median value is given by <var>f</var>
equal to 0.5. Since the algorithm for computing quantiles involves
interpolation this function always returns a floating-point number, even
for integer data types.
</p></dd></dl>
<hr>
<div class="header">
<p>
Next: <a href="Example-statistical-programs.html#Example-statistical-programs" accesskey="n" rel="next">Example statistical programs</a>, Previous: <a href="Maximum-and-Minimum-values.html#Maximum-and-Minimum-values" accesskey="p" rel="previous">Maximum and Minimum values</a>, Up: <a href="Statistics.html#Statistics" accesskey="u" rel="up">Statistics</a> [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|