bdots
This vignette is created to illustrate the use of the bcorr
function, which finds the correlation between a fixed value in our dataset and the collection of fitted curves at each time points for each of the groups fit in bfit
.
First, let’s take an existing dataset and add a fixed value for each of the subjects
library(bdots)
library(data.table)
## Let's work with cohort_unrelated dataset, as it has multiple groups
as.data.table(cohort_unrelated)
dat <-
## And add a fixed value for which we want to find a correlation
:= rnorm(1), by = Subject]
dat[, val
head(dat)
## Subject Time DB_cond Fixations LookType Group val
## <num> <int> <char> <num> <char> <int> <num>
## 1: 1 0 50 0.01136364 Cohort 50 0.9340929
## 2: 1 4 50 0.01136364 Cohort 50 0.9340929
## 3: 1 8 50 0.01136364 Cohort 50 0.9340929
## 4: 1 12 50 0.01136364 Cohort 50 0.9340929
## 5: 1 16 50 0.02272727 Cohort 50 0.9340929
## 6: 1 20 50 0.02272727 Cohort 50 0.9340929
Now, we go about creating our fitted object as usual
## Create regular fit in bdots
bfit(data = dat,
fit <-subject = "Subject",
time = "Time",
group = c("LookType", "Group"),
y = "Fixations", curveFun = doubleGauss2(),
cores = 2)
Using this fit object, we now introduce the bcor
function, taking four arguments:
bdObj
, any object returned from a bfit
callval
, a length one character vector of the value with which we want to correlate. val
should be a column in our original dataset, and it should be numericciBands
, a boolean indicating whether or not we want to return 95% confidence intervals. Default is FALSE
method
, paralleling the method
argument in cor
and cor.test
. The default is pearson
.## Returns a data.table of class bdotsCorrObj
bcorr(fit, val = "val", ciBands = TRUE)
corr_ci <-head(corr_ci)
## time Correlation lower upper Group Group1 Group2
## <int> <num> <num> <num> <char> <char> <char>
## 1: 0 0.02116952 -0.6521204 0.6757902 Cohort 50 Cohort 50
## 2: 4 0.03189389 -0.6459091 0.6815788 Cohort 50 Cohort 50
## 3: 8 0.04272698 -0.6395423 0.6873447 Cohort 50 Cohort 50
## 4: 12 0.05345538 -0.6331435 0.6929758 Cohort 50 Cohort 50
## 5: 16 0.06388096 -0.6268340 0.6983743 Cohort 50 Cohort 50
## 6: 20 0.07383869 -0.6207219 0.7034640 Cohort 50 Cohort 50
## Same, without confidence intervals
bcorr(fit, val = "val")
corr_noci <-head(corr_noci)
## time Correlation Group Group1 Group2
## <int> <num> <char> <char> <char>
## 1: 0 0.02116952 Cohort 50 Cohort 50
## 2: 4 0.03189389 Cohort 50 Cohort 50
## 3: 8 0.04272698 Cohort 50 Cohort 50
## 4: 12 0.05345538 Cohort 50 Cohort 50
## 5: 16 0.06388096 Cohort 50 Cohort 50
## 6: 20 0.07383869 Cohort 50 Cohort 50
From here, we are able to use the data.tables
themselves for whatever we may be interested in. We also have a plotting method associated with this object
## Default is no bands
plot(corr_ci)
## Try again with bands
plot(corr_ci, ciBands = TRUE)
## Narrow in on a particular window
plot(corr_ci, window = c(750, 1500))
Because this object is a data.table
, we have full use of subsetting capabilities for our plots
plot(corr_ci[Group2 == "50", ])