#26 closed defect (fixed)
psArrayStats(): sample androbust quartiles.
| Reported by: | Owned by: | eugene | |
|---|---|---|---|
| Priority: | high | Milestone: | |
| Component: | PSLib SDRS | Version: | unspecified |
| Severity: | normal | Keywords: | |
| Cc: |
Description
The SDR allows one to request either SAMPLE LQ/UQ or ROBUST LQ/UQ.
What should be done if the resuest is:
SAMPLE LQ/UQ when the psVector has more than 10,000 elements.
ROBUST LQ/UQ when the psVector has less than 10,000 elements.
It might make sense to always do the robust LQ/UQ when the data is larger
then 10,000 elements, but then, presumably, the routine making the
request expects the result to be stored in the appropriate member of the
psArrayStats data structure.
Change History (3)
comment:1 by , 22 years ago
comment:2 by , 22 years ago
| Status: | new → assigned |
|---|
These points both make sense. We should definitely merge UQ and LQ. As for
robust vs sample, the function should calculate the robust stats for the sample
stats when it is faster. But we need to address how the fallover point is
identified.
comment:3 by , 22 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
The selection of stats input options has been somewhat reduced to address this
question. There is no need or validity to specifically request values which are
automatically calculated. See the SDRS for an updated discussion.
typedef enum {
PS_STAT_SAMPLE_MEAN = 0x000001,
PS_STAT_SAMPLE_MEDIAN = 0x000002,
PS_STAT_SAMPLE_STDEV = 0x000004,
PS_STAT_SAMPLE_QUARTILE = 0x000008,
PS_STAT_ROBUST_MEAN = 0x000010,
PS_STAT_ROBUST_MEDIAN = 0x000020,
PS_STAT_ROBUST_MODE = 0x000040,
PS_STAT_ROBUST_STDEV = 0x000080,
PS_STAT_ROBUST_QUARTILE = 0x000100,
PS_STAT_CLIPPED_MEAN = 0x000200,
PS_STAT_CLIPPED_STDEV = 0x000400,
PS_STAT_MAX = 0x000800,
PS_STAT_MIN = 0x001000,
PS_STAT_USE_RANGE = 0x002000,
PS_STAT_USE_BINSIZE = 0x004000
PS_STAT_ROBUST_FOR_SAMPLE = 0x008000
} psStatsOptions;

On another note, since it requires very little addition work to calculate the UQ
once you have calculated the LQ (and vice versa) and also, since if you need one
of those points you probably need the other a swell, maybe we should only have
two requests:
and psArrayStats() will calculate both the upper and lower quartiles when either
of the above is requested.