Monte Carlo simulation for ratio and its CI Classic List Threaded 5 messages Open this post in threaded view
|

Monte Carlo simulation for ratio and its CI

 Hi R User, I was trying to calculate ratios with confidence interval using Monte Carlo simulation but I could not figure it out. Here is the example of my data (see below), I want to calculate ratios (dat\$v1/dat\$v3 & dat\$v2/dat\$v3) and its confidence intervals using a 100 randomly selected data sets. Could you please give me your suggestions how I can estimate ratios with CI? I will be very grateful to you. Sincerely, MW --- dat<-structure(list(v1 = c(NA, TRUE, TRUE, TRUE, TRUE, TRUE, NA, TRUE, NA, NA, TRUE, TRUE, TRUE, TRUE, NA, NA, TRUE, TRUE), v2 = c(TRUE, NA, NA, NA, NA, TRUE, NA, NA, TRUE, TRUE, NA, TRUE, TRUE, NA, NA, TRUE, TRUE, NA), v3 = c(TRUE, TRUE, NA, TRUE, TRUE, NA, NA, TRUE, TRUE, NA, NA, TRUE, TRUE, TRUE, NA, NA, TRUE, NA)), .Names = c("v1", "v2", "v3"), class = "data.frame", row.names = c(NA, -18L)) ratio1<-length(which(dat\$v1 == "TRUE"))/length(which(dat\$v3 == "TRUE")) ratio2<-length(which(dat\$v2 == "TRUE"))/length(which(dat\$v3 == "TRUE")) Thanks         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

Re: Monte Carlo simulation for ratio and its CI

 > ratio1 <- with(dat, sum(v1,na.rm = TRUE)/sum(v3,na.rm=TRUE)) > ratio1  1.2 It looks like you should spend some more time with an R tutorial or two. This is basic stuff (if I understand what you wanted correctly). Also, this is not how a "confidence interval" should be calculated, but that is another off topic discussion for which stats.stackexchange.com is a more appropriate venue. Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Mon, Mar 25, 2019 at 4:31 PM Marna Wagley <[hidden email]> wrote: > Hi R User, > I was trying to calculate ratios with confidence interval using Monte Carlo > simulation but I could not figure it out. > Here is the example of my data (see below), I want to calculate ratios > (dat\$v1/dat\$v3 & dat\$v2/dat\$v3) and its confidence intervals using a 100 > randomly selected data sets. > Could you please give me your suggestions how I can estimate ratios with > CI? > I will be very grateful to you. > Sincerely, > > MW > --- > dat<-structure(list(v1 = c(NA, TRUE, TRUE, TRUE, TRUE, TRUE, NA, TRUE, > > NA, NA, TRUE, TRUE, TRUE, TRUE, NA, NA, TRUE, TRUE), v2 = c(TRUE, > > NA, NA, NA, NA, TRUE, NA, NA, TRUE, TRUE, NA, TRUE, TRUE, NA, > > NA, TRUE, TRUE, NA), v3 = c(TRUE, TRUE, NA, TRUE, TRUE, NA, NA, > > TRUE, TRUE, NA, NA, TRUE, TRUE, TRUE, NA, NA, TRUE, NA)), .Names = c("v1", > > "v2", "v3"), class = "data.frame", row.names = c(NA, -18L)) > > > ratio1<-length(which(dat\$v1 == "TRUE"))/length(which(dat\$v3 == "TRUE")) > > ratio2<-length(which(dat\$v2 == "TRUE"))/length(which(dat\$v3 == "TRUE")) > > > Thanks > >         [[alternative HTML version deleted]] > > ______________________________________________ > [hidden email] mailing list -- To UNSUBSCRIBE and more, see > 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. >         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.
Open this post in threaded view
|

Re: Monte Carlo simulation for ratio and its CI

 Dear Bert, Thank you very much for the response. I did it manually but I could not put them in a loop so that I created the table manually with selecting the rows randomly several times. Here what I have done so far, please find it. I want to create the table 100 times and calculate its mean and CI from those 100 values. If anyone can give me some hint to make a loop, that would be great. I am very grateful with your help. Thanks, library(dplyr) library(plyr) dat<-structure(list(v1 = c(NA, TRUE, TRUE, TRUE, TRUE, TRUE, NA, TRUE, NA, NA, TRUE, TRUE, TRUE, TRUE, NA, NA, TRUE, TRUE), v2 = c(TRUE, NA, NA, NA, NA, TRUE, NA, NA, TRUE, TRUE, NA, TRUE, TRUE, NA, NA, TRUE, TRUE, NA), v3 = c(TRUE, TRUE, NA, TRUE, TRUE, NA, NA, TRUE, TRUE, NA, NA, TRUE, TRUE, TRUE, NA, NA, TRUE, NA)), .Names = c("v1", "v2", "v3"), class = "data.frame", row.names = c(NA, -18L)) ratio1 <- with(dat, sum(v1,na.rm = TRUE)/sum(v3,na.rm=TRUE)) ratio2 <- with(dat, sum(v2,na.rm = TRUE)/sum(v3,na.rm=TRUE)) # A1<-sample_n(dat1, 16)# created a table with selecting a 16 sample size (rows) A1.ratio1<-with(A1, sum(v1,na.rm = TRUE)/sum(v3,na.rm=TRUE)) A1.ratio2 <- with(A1, sum(v2,na.rm = TRUE)/sum(v3,na.rm=TRUE)) A1.Table<-data.frame(Ratio1=A1.ratio1, Ratio2=A1.ratio2) # A2<-sample_n(dat1, 16) A2.ratio1<-with(A2, sum(v1,na.rm = TRUE)/sum(v3,na.rm=TRUE)) A2.ratio2 <- with(A2, sum(v2,na.rm = TRUE)/sum(v3,na.rm=TRUE)) A2.Table<-data.frame(Ratio1=A2.ratio1, Ratio2=A2.ratio2) # A3<-sample_n(dat1, 16) A3.ratio1<-with(A3, sum(v1,na.rm = TRUE)/sum(v3,na.rm=TRUE)) A3.ratio2 <- with(A3, sum(v2,na.rm = TRUE)/sum(v3,na.rm=TRUE)) A3.Table<-data.frame(Ratio1=A3.ratio1, Ratio2=A3.ratio2) # ##.............. # I was thinking to repeat this procedure 100 times and calculate the ratio A100<-sample_n(dat1, 16) A100.ratio1<-with(A100, sum(v1,na.rm = TRUE)/sum(v3,na.rm=TRUE)) A100.ratio2 <- with(A100, sum(v2,na.rm = TRUE)/sum(v3,na.rm=TRUE)) A100.Table<-data.frame(Ratio1=A100.ratio1, Ratio2=A100.ratio2) # Tab<-rbind(A1.Table, A2.Table, A3.Table, A100.Table) #Compute the mean for each ratio Ratio1<-mean(Table1[,1]) Ratio2<-mean(Table1[,2]) summary <- ddply(subset(Tab), c(""),summarise,                N    = length(Tab),                mean.R1 = mean(Ratio1, na.rm=T),                median.R1=median(Ratio1, na.rm=T),                sd.R1   = sd(Ratio1, na.rm=T),                se.R1   = sd / sqrt(N),                LCI.95.R1=mean.R1-1.95*se.R1,                UCI.95.R1=mean.R1+1.95*se.R1,                mean.R2 = mean(Ratio2, na.rm=T),                median.R2=median(Ratio2, na.rm=T),                sd.R2   = sd(Ratio2, na.rm=T),                se.R2   = sd / sqrt(N),                LCI.95.R2=mean.R2-1.95*se.R2,                UCI.95.R2=mean.R2+1.95*se.R2                )  summary On Mon, Mar 25, 2019 at 4:50 PM Bert Gunter <[hidden email]> wrote: > > > ratio1 <- with(dat, sum(v1,na.rm = TRUE)/sum(v3,na.rm=TRUE)) > > ratio1 >  1.2 > > It looks like you should spend some more time with an R tutorial or two. > This is basic stuff (if I understand what you wanted correctly). > > Also, this is not how a "confidence interval" should be calculated, but > that is another off topic discussion for which stats.stackexchange.com is > a more appropriate venue. > > Cheers, > Bert > > Bert Gunter > > "The trouble with having an open mind is that people keep coming along and > sticking things into it." > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) > > > On Mon, Mar 25, 2019 at 4:31 PM Marna Wagley <[hidden email]> > wrote: > >> Hi R User, >> I was trying to calculate ratios with confidence interval using Monte >> Carlo >> simulation but I could not figure it out. >> Here is the example of my data (see below), I want to calculate ratios >> (dat\$v1/dat\$v3 & dat\$v2/dat\$v3) and its confidence intervals using a 100 >> randomly selected data sets. >> Could you please give me your suggestions how I can estimate ratios with >> CI? >> I will be very grateful to you. >> Sincerely, >> >> MW >> --- >> dat<-structure(list(v1 = c(NA, TRUE, TRUE, TRUE, TRUE, TRUE, NA, TRUE, >> >> NA, NA, TRUE, TRUE, TRUE, TRUE, NA, NA, TRUE, TRUE), v2 = c(TRUE, >> >> NA, NA, NA, NA, TRUE, NA, NA, TRUE, TRUE, NA, TRUE, TRUE, NA, >> >> NA, TRUE, TRUE, NA), v3 = c(TRUE, TRUE, NA, TRUE, TRUE, NA, NA, >> >> TRUE, TRUE, NA, NA, TRUE, TRUE, TRUE, NA, NA, TRUE, NA)), .Names = c("v1", >> >> "v2", "v3"), class = "data.frame", row.names = c(NA, -18L)) >> >> >> ratio1<-length(which(dat\$v1 == "TRUE"))/length(which(dat\$v3 == "TRUE")) >> >> ratio2<-length(which(dat\$v2 == "TRUE"))/length(which(dat\$v3 == "TRUE")) >> >> >> Thanks >> >>         [[alternative HTML version deleted]] >> >> ______________________________________________ >> [hidden email] mailing list -- To UNSUBSCRIBE and more, see >> 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. >> >         [[alternative HTML version deleted]] ______________________________________________ [hidden email] mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting guide http://www.R-project.org/posting-guide.htmland provide commented, minimal, self-contained, reproducible code.