[R] Weighted box or violin plots in Lattice?

Deepayan Sarkar deepayan.sarkar at gmail.com
Mon May 9 14:59:32 CEST 2011


On Mon, May 9, 2011 at 5:42 PM, David Winsemius <dwinsemius at comcast.net> wrote:
>
> On May 9, 2011, at 12:35 AM, Deepayan Sarkar wrote:
>
>> On Mon, May 9, 2011 at 2:20 AM, Thomas Lumley <tlumley at uw.edu> wrote:
>>>
>>> On Mon, May 9, 2011 at 6:35 AM, Deepayan Sarkar
>>> <deepayan.sarkar at gmail.com> wrote:
>>>>
>>>> On Sat, May 7, 2011 at 1:55 AM, Raphael Mazor <raphaelm at sccwrp.org>
>>>> wrote:
>>>>>
>>>>> Is it possible to create weighted boxplots or violin plots in lattice?
>>>>>
>>>>> It seems that you can specify weights for panel.histogram() and
>>>>> panel.densityplot(), but not for panel.bwplot or panel.violin().
>>>>
>>>> Not for panel.histogram() either.
>>>>
>>>> It's not immediately obvious how you would get weighted boxplots.
>>>
>>> The way the survey world does it is to get weighted quantiles and work
>>> from them, as in survey:::svyboxplot().  The only tricky decision is
>>> what to do with outliers, since I haven't been able to think of any
>>> good way of indicating weights on them.
>>
>> So I guess with bwplot() one would have to write a version of
>> boxplot.stats() that uses weighted quantiles, and then write a
>> modified panel function.
>>
>> A crude approximation (if the weights don't vary too much) may be to
>> scale and round the weights to integers, and then repeat each data
>> point; e.g., newx <- rep(x, w), etc.
>
> You could do a bit better if you just substituted wtd.quantile from Hmisc
> with an x and weights argument for the fivenum call in boxplot.stats.

Thanks for that pointer. Incorporating weights into panel.bwplot()
would still be a bit painful though (more so than panel.violin).

-Deepayan

>
> require(Hmisc)
>> ?wtd.quantile
>> fivenum(x=1:10)
> [1]  1.0  3.0  5.5  8.0 10.0
>> wtd.quantile(x=1:10)
>   0%   25%   50%   75%  100%
>  1.00  3.25  5.50  7.75 10.00
>> wtd.quantile( x = 1:10, weights = 1:10)
>  0%  25%  50%  75% 100%
>   1    5    7    9   10
>
>  (Most people think the hinges are at the 25th and 75th percentiles anyway.)
>
>
>>
>> -Deepayan
>>
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> David Winsemius, MD
> West Hartford, CT
>
>



More information about the R-help mailing list