how Matlab iqr works

47 views (last 30 days)
Dajiang
Dajiang on 1 Jul 2015
Answered: Brendan Hamm on 1 Jul 2015
According to this wiki link (https://en.wikipedia.org/wiki/Interquartile_range), the iqr for this set of data
102 104 105 107 108 109 110 112 115 116 118
should be 115 - 105 = 10. I wonder why Matlab give me value of 8.75.
  1 Comment
Dajiang
Dajiang on 1 Jul 2015
I just came across this web page ( http://math.stackexchange.com/questions/65391/calculating-interquartile-range ). It seems several ways to calculate iqr(x); all of which will output similar result, I guess, if length(x) is big enough. Isn't it? However, I wonder how Matlab implements it.

Sign in to comment.

Answers (2)

Steven Lord
Steven Lord on 1 Jul 2015
If you're using the Statistics and Machine Learning Toolbox IQR function, the description of the output argument described what it does. The definition of Q1 and Q3 from that Wikipedia page are different from the definition given in the QUANTILE function. The quantile values for the vector do not necessarily need to be in the vector. They may be, if the length of the vector allows for it or if there are repeated values, but they are not required to be. This difference explains the different results.

Brendan Hamm
Brendan Hamm on 1 Jul 2015
MATLAB uses the prctile() function to find Q3 and Q1 to calculate the IQR. See Quantiles and Percentiles for descriptions on how this calculation is performed.

Categories

Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!