Theil–Sen estimator

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in Module:Broader at line 30: attempt to call field '_formatLink' (a nil value).

The Theil–Sen estimator of a set of sample points with outliers (black line) compared to the non-robust simple linear regression line for the same set (blue). The dashed green line represents the ground truth from which the samples were generated.

In non-parametric statistics, there is a method for robustly fitting a line to a set of points (simple linear regression) that chooses the median slope among all lines through pairs of two-dimensional sample points. It has been called the Theil–Sen estimator, Sen's slope estimator,[1][2] slope selection,[3][4] the single median method,[5] the Kendall robust line-fit method,[6] and the Kendall–Theil robust line.[7] It is named after Henri Theil and Pranab K. Sen, who published papers on this method in 1950 and 1968 respectively, and after Maurice Kendall.

This estimator can be computed efficiently, and is insensitive to outliers. It can be significantly more accurate than non-robust simple linear regression for skewed and heteroskedastic data, and competes well against non-robust least squares even for normally distributed data in terms of statistical power.[8] It has been called "the most popular nonparametric technique for estimating a linear trend".[2]

Definition

As defined by Theil (1950), the Theil–Sen estimator of a set of two-dimensional points (xi,yi) is the median m of the slopes (yjyi)/(xjxi) determined by all pairs of sample points. Sen (1968) extended this definition to handle the case in which two data points have the same x-coordinate. In Sen's definition, one takes the median of the slopes defined only from pairs of points having distinct x-coordinates.

Once the slope m has been determined, one may determine a line from the sample points by setting the y-intercept b to be the median of the values yimxi.[9] As Sen observed, this estimator is the value that makes the Kendall tau rank correlation coefficient comparing the values of xi with the residual for the i-th observation become approximately zero.[10]

A confidence interval for the slope estimate may be determined as the interval containing the middle 95% of the slopes of lines determined by pairs of points,[11] and may be estimated quickly by sampling pairs of points and determining the 95% interval of the sampled slopes. According to simulations, approximately 600 sample pairs are sufficient to determine an accurate confidence interval.[8]

Variations

A variation of the Theil–Sen estimator due to Siegel (1982) determines, for each sample point (xi,yi), the median mi of the slopes (yjyi)/(xjxi) of lines through that point, and then determines the overall estimator as the median of these medians.

A different variant pairs up sample points by the rank of their x-coordinates (the point with the smallest coordinate being paired with the first point above the median coordinate, etc.) and computes the median of the slopes of the lines determined by these pairs of points.[12]

Variations of the Theil–Sen estimator based on weighted medians have also been studied, based on the principle that pairs of samples whose x-coordinates differ more greatly are more likely to have an accurate slope and therefore should receive a higher weight.[13]

For seasonal data, it may be appropriate to smooth out seasonal variations in the data by considering only pairs of sample points that both belong to the same month or the same season of the year, and finding the median of the slopes of the lines determined by this more restrictive set of pairs.[14]

Statistical properties

The Theil–Sen estimator is an unbiased estimator of the true slope in simple linear regression.[15] For many distributions of the response error, this estimator has high asymptotic efficiency relative to least-squares estimation.[16] Estimators with low efficiency require more independent observations to attain the same sample variance of efficient unbiased estimators.

The Theil–Sen estimator is more robust than the least-squares estimator because it is much less sensitive to outliers: It has a breakdown point of 1-\frac{1}{\sqrt 2}\approx 29.3\%, meaning that it can tolerate arbitrary corruption of up to 29.3% of the input data-points without degradation of its accuracy.[9] However, the breakdown point decreases for higher-dimensional generalizations of the method.[17] A higher breakdown point, 50%, holds for the repeated median estimator of Siegel.[9]

The Theil–Sen estimator is equivariant under every linear transformation of its response variable,[18] but is not equivariant under affine transformations of both the predictor and response variables.[17]

Algorithms

The median slope of a set of n sample points may be computed exactly by computing all O(n2) lines through pairs of points, and then applying a linear time median finding algorithm, or it may be estimated by sampling pairs of points. It is equivalent, under projective duality, to the problem of finding the crossing point in an arrangement of lines that has the median x-coordinate among all such crossing points.

The problem of performing slope selection exactly but more efficiently than the brute force quadratic time algorithm has been extensively studied in computational geometry. Several different methods are known for computing the Theil–Sen estimator exactly in O(n log n) time, either deterministically[3] or using randomized algorithms.[4] Siegel's repeated median estimator can also be constructed efficiently in the same time bound.[19] In models of computation in which the input coordinates are integers and bitwise operations on integers take constant time, the problem can be solved even more quickly, in randomized expected time O(n\sqrt{\log n}).[20]

An estimator for the slope with approximately median rank, having the same breakdown point as the Theil–Sen estimator, may be maintained in the data stream model (in which the sample points are processed one by one by an algorithm that does not have enough persistent storage to represent the entire data set) using an algorithm based on ε-nets.[21]

Applications

Theil–Sen estimation has been applied to astronomy due to its ability to handle censored regression models.[22] In biophysics, Fernandes & Leblanc (2005) suggest its use for remote sensing applications such as the estimation of leaf area from reflectance data due to its "simplicity in computation, analytical estimates of confidence intervals, robustness to outliers, testable assumptions regarding residuals and ... limited a priori information regarding measurement errors". For measuring seasonal environmental data such as water quality, a seasonally adjusted variant of the Theil–Sen estimator has been proposed as preferable to least squares estimation due to its high precision in the presence of skewed data.[14] In computer science, the Theil–Sen method has been used to estimate trends in software aging.[23] Another application of the Theil-Sen test is in meteorology and climatology. [24] The test is used to estimate the long-term trends of wind speed and occurrence.

See also

Notes

  1. Gilbert (1987).
  2. 2.0 2.1 El-Shaarawi & Piegorsch (2001).
  3. 3.0 3.1 Cole et al. (1989); Katz & Sharir (1993); Brönnimann & Chazelle (1998).
  4. 4.0 4.1 Dillencourt, Mount & Netanyahu (1992); Matoušek (1991); Blunck & Vahrenhold (2006).
  5. Massart et al. (1997).
  6. Sokal & Rohlf (1995); Dytham (2011).
  7. Granato (2006)
  8. 8.0 8.1 Wilcox (2001).
  9. 9.0 9.1 9.2 Rousseeuw & Leroy (2003), pp. 67, 164.
  10. Osborne (2008).
  11. For determining confidence intervals, pairs of points must be sampled with replacement; this means that the set of pairs used in this calculation includes pairs in which both points are the same as each other. These pairs are always outside the confidence interval, because they do not determine a well-defined slope value, but using them as part of the calculation causes the confidence interval to be wider than it would be without them.
  12. De Muth (2006).
  13. Jaeckel (1972); Scholz (1978); Sievers (1978); Birkes & Dodge (1993).
  14. 14.0 14.1 Hirsch, Slack & Smith (1982).
  15. Sen (1968), Theorem 5.1, p. 1384; Wang & Yu (2005).
  16. Sen (1968), Section 6; Wilcox (1998).
  17. 17.0 17.1 Wilcox (2005).
  18. Sen (1968), p. 1383.
  19. Matoušek, Mount & Netanyahu (1998).
  20. Chan & Pătraşcu (2010).
  21. Bagchi et al. (2007).
  22. Akritas, Murphy & LaValley (1995).
  23. Vaidyanathan & Trivedi (2005).
  24. Romanić D. Ćurić M- Jovičić I. Lompar M. 2015. Long-term trends of the ‘Koshava’ wind during the period 1949–2010. International Journal of Climatology 35(2):288-302. DOI:10.1002/joc.3981.

References

  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..

External links