On Nov 19, 2014, at 6:08 AM, i.petzev wrote:

> Hi David,
> 
> thanks a lot for the response. I see that this works. I am not sure, however, 
> what the appropriate way to do this is. It also works if you do not define 
> weights in the boot() function (weighted bootstrap) but rather in the 
> vw_m_diff function (ordinary bootstrap), i.e., 
> 
> 
> vw_m_diff <- function(dataset,d) {
>   differences <- dataset[d,1]-dataset[d,2]
>   weights <- dataset[d, "weights"]
>   return(weighted.mean(x=differences, w=weights))
> }
> 
> with 
> 
> boot(dataset, statistic=vw_m_diff, R = 1000)

I don't undertand how that is in the slightest way different than what I 
suggested. You've only substituted 'd' for 'w' as a formal parameter in the 
function. That should not change the processed results at all.

-- 
David.

> 
> I guess this is rather a statistical question and hence I will have to look 
> further into it. 
> 
> In any case, thanks a lot for your help.
> 
> Best
> 
> 
> 
> On 15 Nov 2014, at 17:27, David Winsemius <dwinsem...@comcast.net> wrote:
> 
>> 
>> On Nov 14, 2014, at 3:18 PM, David Winsemius wrote:
>> 
>>> 
>>> On Nov 14, 2014, at 12:15 PM, ivan wrote:
>>> 
>>>> Hi,
>>>> 
>>>> I am trying to compute bootstrap confidence intervals for weighted means of
>>>> paired differences with the boot package. Unfortunately, the weighted mean
>>>> estimate lies out of the confidence bounds and hence I am obviously doing
>>>> something wrong.
>>>> 
>>>> Appreciate any help. Thanks. Here is a reproducible example:
>>>> 
>>>> 
>>>> library(boot)
>>>> set.seed(1111)
>>>> x <- rnorm(50)
>>>> y <- rnorm(50)
>>>> weights <- runif(50)
>>>> weights <- weights / sum(weights)
>>>> dataset <- cbind(x,y,weights)
>>>> vw_m_diff <- function(dataset,w, d) {
>>> 
>>> My understanding of the principle underlying the design of the bootstrapped 
>>> function was that the data was the first argument and the index vector was 
>>> the second. (I admit to not knowing what it would do with a third argument. 
>>> So I would have guessed that you wanted:
>>> 
>>> vw_m_diff <- function(dataset,w) {
>>>    differences <- dataset[d,1]-dataset[d,2]
>>>   weights <- dataset[w, "weights"]
>>>   return(weighted.mean(x=differences, w=weights))
>>> } 
>> 
>> I'm sorry. That was the code I first editted. This is the code that produced 
>> that output:
>> 
>> vw_m_diff <- function(dataset,w) {
>>      differences <- dataset[w,1]-dataset[w,2]
>>     weights <- dataset[w, "weights"]
>>     return(weighted.mean(x=differences, w=weights))
>>   }
>> 
>>> 
>>> I get what appears to me as a sensible set of estimates (since they seem 
>>> centered on zero) although I further admit I do not know what the theoretic 
>>> CI _should_ be for this problem:
>>> 
>>>> res_boot <- boot(dataset, statistic=vw_m_diff, R = 1000, w=dataset[,3])
>>>> boot.ci(res_boot)
>>> BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
>>> Based on 1000 bootstrap replicates
>>> 
>>> CALL : 
>>> boot.ci(boot.out = res_boot)
>>> 
>>> Intervals : 
>>> Level      Normal              Basic         
>>> 95%   (-0.5657,  0.4962 )   (-0.5713,  0.5062 )  
>>> 
>>> Level     Percentile            BCa          
>>> 95%   (-0.6527,  0.4249 )   (-0.5579,  0.5023 )  
>>> Calculations and Intervals on Original Scale
>>> 
>>> 
>>>>  differences <- dataset[d,1]-dataset[d,2]
>>>>  weights <- w[d]
>>>>  return(weighted.mean(x=differences, w=weights))
>>>> }
>>>> res_boot <- boot(dataset, statistic=vw_m_diff, R = 1000, w=dataset[,3])
>>>> boot.ci(res_boot)
>>>> 
>>>> *BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS*
>>>> *Based on 1000 bootstrap replicates*
>>>> 
>>>> *CALL : *
>>>> *boot.ci <http://boot.ci>(boot.out = res_boot)*
>>>> 
>>>> *Intervals : *
>>>> *Level      Normal              Basic         *
>>>> *95%   (-0.8365, -0.3463 )   (-0.8311, -0.3441 )  *
>>>> 
>>>> *Level     Percentile            BCa          *
>>>> *95%   (-0.3276,  0.1594 )   (-0.4781, -0.3477 )  *
>>>> 
>>>> weighted.mean(x=dataset[,1]-dataset[,2], w=dataset[,3])
>>>> 
>>>> *[1] -0.07321734*
>>>> 
>>>>    [[alternative HTML version deleted]]
>>>> 
>>>> ______________________________________________
>>>> R-help@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
>>> Alameda, CA, USA
>>> 
>>> ______________________________________________
>>> R-help@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
>> Alameda, CA, USA
> 

David Winsemius
Alameda, CA, USA

______________________________________________
R-help@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.

Reply via email to