Last updated: 2020-06-30
Checks: 6 1
Knit directory: Fiber_Intervention_Study/
This reproducible R Markdown analysis was created with workflowr (version 1.6.2). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
The R Markdown file has unstaged changes. To know which version of the R Markdown file created these results, you’ll want to first commit it to the Git repo. If you’re still working on the analysis, you can ignore this warning. When you’re finished, you can run wflow_publish
to commit the R Markdown file and build the HTML.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20191210)
was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.
The results in this page were generated with repository version d377778. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.
Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish
or wflow_git_commit
). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:
Ignored files:
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: code/.Rhistory
Ignored: reference-papers/Dietary_Variables.xlsx
Ignored: reference-papers/Johnson_2019.pdf
Ignored: renv/library/
Ignored: renv/staging/
Untracked files:
Untracked: analysis/hei_data_doublecheck.Rmd
Untracked: fig/figures-2020-06-21.zip
Untracked: fig/figures-2020-06-21/
Untracked: fig/figures-2020-06-23.zip
Untracked: fig/figures-2020-06-23/
Untracked: manuscript/Figures_2020_06_26.pdf
Untracked: manuscript/Manuscript Draft 2020-06-26[2].docx
Untracked: manuscript/Manuscript Draft 2020-06-28-NP.docx
Unstaged changes:
Modified: analysis/analysis_anthropometric.Rmd
Deleted: fig/figure1_alpha_diversity.pdf
Deleted: fig/figure1_legend.pdf
Deleted: fig/figure2_individual_beta_diversity_over_study.pdf
Deleted: fig/figure3_PCoA_analysis_results_beta_diversity_between_groups.pdf
Deleted: fig/figure3_legend.pdf
Deleted: fig/figure4_final_microbiome_diet_variables_over_time.pdf
Deleted: fig/figure4_legend.pdf
Deleted: fig/figure5_glmm_genus.pdf
Deleted: fig/figure5_glmm_phylum.pdf
Deleted: fig/figure6_change_in_BMI.pdf
Modified: fig/figures-2020-06-17.zip
Modified: tab/results_glmm_microbiome_genus.csv
Modified: tab/results_glmm_microbiome_phylum.csv
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
These are the previous versions of the repository in which changes were made to the R Markdown (analysis/analysis_anthropometric.Rmd
) and HTML (docs/analysis_anthropometric.html
) files. If you’ve configured a remote Git repository (see ?wflow_git_remote
), click on the hyperlinks in the table below to view the files as they were in that past version.
File | Version | Author | Date | Message |
---|---|---|---|---|
html | 9da43aa | noah-padgett | 2020-06-08 | Build site. |
Rmd | 94015da | noah-padgett | 2020-06-08 | revised figures |
html | 94015da | noah-padgett | 2020-06-08 | revised figures |
html | 0733fe5 | noah-padgett | 2020-05-21 | Build site. |
Rmd | d576bdd | noah-padgett | 2020-05-21 | tables outputted |
html | d576bdd | noah-padgett | 2020-05-21 | tables outputted |
Rmd | ef7cab9 | noah-padgett | 2020-05-14 | blood measure analyses |
Rmd | 774a55f | noah-padgett | 2020-04-16 | updated beta diversity and permanova |
html | 774a55f | noah-padgett | 2020-04-16 | updated beta diversity and permanova |
What is the effect of Prebiotin vs placebo on anthropometrics (controlling for diet, age, ethnicity, stress?) Did the intervention mitigate excess weight gain?
Therefore, data are analyzed at the last timepoint observed for each participant (week 12). If a participant is missing an outcome at week 12, the last observed score will be carried forward.
What is the effect of Prebiotin vs. placebo on …
mydata <- microbiome_data$meta.dat
mydata <- arrange(mydata, desc(Week))
mydata <- distinct(mydata, SubjectID, .keep_all = T)
varNames <- c("SubjectID", "Week", "Age", "Ethnicity",
"Gender", "Intervention",
"Height_cm", "Weight_pre", "Weight_post",
"LBM_pre", "LBM_post", "Visceral_Fat_Level_pre",
"Visceral_Fat_Level_post", "Stress.Scale")
mydata <- mydata[, varNames]
mydata<- mydata %>%
mutate(Weight_diff = Weight_pre - Weight_post,
BMI_pre = Weight_pre/((Height_cm/100)**2),
BMI_post = Weight_post/((Height_cm/100)**2),
BMI_diff = BMI_pre - BMI_post,
VFL_pre = Visceral_Fat_Level_pre,
VFL_post = Visceral_Fat_Level_post,
VFL_diff = VFL_pre - VFL_post,
LBM_diff = LBM_pre - LBM_post,
intB = ifelse(Intervention=="B", 1,0),
c.age = Age - mean(Age),
c.stress = Stress.Scale - mean(Stress.Scale),
female = ifelse(Gender == "F", 1, 0),
hispanic = ifelse(Ethnicity %in% c("White", "Asian", "Native America"), 1, 0))
plot.data <- mydata[,c(varNames[c(1:6,14,7:11)], "Weight_diff", "BMI_pre", "BMI_post", "BMI_diff", "VFL_pre", "VFL_post", "VFL_diff", "LBM_diff")]
plot.data <- plot.data %>%
pivot_longer(cols=c("Weight_pre", "Weight_post", "Weight_diff", "LBM_pre","LBM_post", "LBM_diff","BMI_pre", "BMI_post", "BMI_diff", "VFL_pre", "VFL_post", "VFL_diff"),
names_to = "Variable",
values_to = "value")
Summary of these data is below
varNames <- c("intB", "female", "hispanic", "Age", "Stress.Scale",
"Weight_pre", "Weight_post", "Weight_diff",
"BMI_pre", "BMI_post", "BMI_diff",
"LBM_pre", "LBM_post", "LBM_diff",
"VFL_pre", "VFL_post", "VFL_diff")
sum.dat <- mydata[,varNames] %>%
summarise_all(list(Mean=mean, SD=sd,
min=min, Median=median, Max=max))
sum.dat <- data.frame(matrix(unlist(sum.dat), ncol=5))
colnames(sum.dat) <- c("Mean", "SD", "Min", "Median", "Max")
rownames(sum.dat) <- varNames
kable(sum.dat, format="html", digits=3)%>%
kable_styling(full_width = T)
Mean | SD | Min | Median | Max | |
---|---|---|---|---|---|
intB | 0.455 | 0.522 | 0.000 | 0.000 | 1.000 |
female | 0.636 | 0.505 | 0.000 | 1.000 | 1.000 |
hispanic | 0.636 | 0.505 | 0.000 | 1.000 | 1.000 |
Age | 27.818 | 2.040 | 26.000 | 27.000 | 32.000 |
Stress.Scale | 12.818 | 4.535 | 7.000 | 13.000 | 21.000 |
Weight_pre | 71.200 | 10.730 | 53.100 | 67.900 | 86.700 |
Weight_post | 71.218 | 11.276 | 51.900 | 67.900 | 89.200 |
Weight_diff | -0.018 | 1.827 | -4.300 | 0.200 | 1.800 |
BMI_pre | 26.394 | 2.689 | 21.406 | 26.322 | 29.976 |
BMI_post | 26.401 | 2.982 | 20.922 | 25.697 | 30.154 |
BMI_diff | -0.007 | 0.643 | -1.442 | 0.075 | 0.625 |
LBM_pre | 27.318 | 5.524 | 21.500 | 26.600 | 39.400 |
LBM_post | 27.445 | 5.261 | 21.500 | 26.000 | 39.000 |
LBM_diff | -0.127 | 0.771 | -1.900 | 0.000 | 0.600 |
VFL_pre | 9.455 | 3.643 | 5.000 | 9.000 | 17.000 |
VFL_post | 9.273 | 3.875 | 4.000 | 8.000 | 17.000 |
VFL_diff | 0.182 | 0.982 | -1.000 | 0.000 | 2.000 |
Summary of these data by Intervention Group
varNames <- c("Intervention",
"female", "hispanic", "Age", "Stress.Scale",
"Weight_pre", "Weight_post", "Weight_diff",
"BMI_pre", "BMI_post", "BMI_diff",
"LBM_pre", "LBM_post", "LBM_diff",
"VFL_pre", "VFL_post", "VFL_diff")
sum.dat <- mydata[,varNames] %>%
group_by(Intervention) %>%
summarise_all(list(Mean=mean, SD=sd,
min=min, Median=median, Max=max))
a <- data.frame(matrix(unlist(sum.dat[1,-1]), ncol=5))
b <- data.frame(matrix(unlist(sum.dat[2,-1]), ncol=5))
a <- cbind(rep("A", 16), a); colnames(a) <- c("Intervention", "Mean", "SD", "Min", "Median", "Max")
b <- cbind(rep("B", 16), b); colnames(b) <- c("Intervention", "Mean", "SD", "Min", "Median", "Max")
sum.dat <- rbind(a,b)
sum.dat <- data.frame(Variable=rep(varNames[-1],2), sum.dat)
sum.dat <- arrange(sum.dat, Variable)
kable(sum.dat, format="html", digits=3)%>%
kable_styling(full_width = T)
Variable | Intervention | Mean | SD | Min | Median | Max |
---|---|---|---|---|---|---|
Age | A | 27.333 | 1.506 | 26.000 | 27.000 | 30.000 |
Age | B | 28.400 | 2.608 | 26.000 | 28.000 | 32.000 |
BMI_diff | A | 0.113 | 0.503 | -0.524 | 0.279 | 0.577 |
BMI_diff | B | -0.150 | 0.818 | -1.442 | 0.000 | 0.625 |
BMI_post | A | 25.347 | 3.401 | 20.922 | 24.541 | 30.154 |
BMI_post | B | 27.666 | 2.024 | 25.682 | 27.502 | 29.908 |
BMI_pre | A | 25.460 | 3.127 | 21.406 | 24.787 | 29.630 |
BMI_pre | B | 27.516 | 1.724 | 25.682 | 27.133 | 29.976 |
female | A | 0.667 | 0.516 | 0.000 | 1.000 | 1.000 |
female | B | 0.600 | 0.548 | 0.000 | 1.000 | 1.000 |
hispanic | A | 0.500 | 0.548 | 0.000 | 0.500 | 1.000 |
hispanic | B | 0.800 | 0.447 | 0.000 | 1.000 | 1.000 |
LBM_diff | A | -0.300 | 0.938 | -1.900 | 0.000 | 0.600 |
LBM_diff | B | 0.080 | 0.536 | -0.600 | 0.100 | 0.600 |
LBM_post | A | 27.167 | 6.447 | 21.500 | 24.800 | 39.000 |
LBM_post | B | 27.780 | 4.121 | 22.100 | 27.400 | 32.600 |
LBM_pre | A | 26.867 | 6.908 | 21.500 | 24.150 | 39.400 |
LBM_pre | B | 27.860 | 3.996 | 22.200 | 27.100 | 32.000 |
Stress.Scale | A | 10.667 | 3.204 | 7.000 | 11.000 | 15.000 |
Stress.Scale | B | 15.400 | 4.827 | 8.000 | 15.000 | 21.000 |
VFL_diff | A | 0.500 | 1.049 | -1.000 | 0.500 | 2.000 |
VFL_diff | B | -0.200 | 0.837 | -1.000 | 0.000 | 1.000 |
VFL_post | A | 8.333 | 4.676 | 4.000 | 6.500 | 17.000 |
VFL_post | B | 10.400 | 2.702 | 7.000 | 12.000 | 13.000 |
VFL_pre | A | 8.833 | 4.309 | 5.000 | 8.000 | 17.000 |
VFL_pre | B | 10.200 | 2.950 | 7.000 | 12.000 | 13.000 |
Weight_diff | A | 0.367 | 1.363 | -1.300 | 0.700 | 1.800 |
Weight_diff | B | -0.480 | 2.353 | -4.300 | 0.000 | 1.600 |
Weight_post | A | 68.600 | 12.146 | 51.900 | 68.700 | 84.900 |
Weight_post | B | 74.360 | 10.527 | 65.800 | 67.900 | 89.200 |
Weight_pre | A | 68.967 | 12.199 | 53.100 | 68.000 | 86.700 |
Weight_pre | B | 73.880 | 9.238 | 66.200 | 67.900 | 84.900 |
Next, the aim is to more formally test for differences between intervention groups.
results.diff <- list()
# plot
p1 <- ggplot(filter(plot.data, Variable %like% "BMI"),
aes(x=Variable, y=value))+
geom_boxplot(outlier.shape = NA)+
geom_jitter(width = 0.25)+
scale_x_discrete(labels=c("BMI_pre"="Pre", "BMI_post"="Post"),
limits=c("BMI_pre", "BMI_post"))+
labs(x=NULL, y="BMI", title="Pre and Post BMI")+
theme(panel.grid = element_blank(),
axis.text = element_text(size=10))
#p1
p2 <- ggplot(filter(plot.data, Variable %like% "BMI"),
aes(x=Variable, y=value))+
geom_boxplot(outlier.shape = NA)+
geom_jitter(width = 0.25, size=2)+
scale_x_discrete(labels=c("BMI_pre"="Pre", "BMI_post"="Post"),
limits=c("BMI_pre", "BMI_post"))+
labs(x=NULL, y="BMI", title="Pre and Post BMI by Intervention Group")+
facet_grid(.~Intervention, labeller = labeller(Intervention = c(A = "Group A", B = "Group B")))+
theme(panel.grid = element_blank(),
axis.text = element_text(size=10),
strip.text = element_text(size=10))
#p2
p <- p1 + p2
p
Warning: Removed 11 rows containing missing values (stat_boxplot).
Warning: Removed 11 rows containing missing values (geom_point).
Warning: Removed 11 rows containing missing values (stat_boxplot).
Warning: Removed 11 rows containing missing values (geom_point).
This is simply to double check that no differences occured at baseline.
# Pre INtervention BMI - should beno difference
fit <- lm(BMI_pre ~ Intervention + c.age + hispanic + c.stress, mydata)
anova(fit)
Analysis of Variance Table
Response: BMI_pre
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 11.525 11.525 2.7527 0.1482
c.age 1 0.369 0.369 0.0881 0.7766
hispanic 1 35.033 35.033 8.3673 0.0276 *
c.stress 1 0.273 0.273 0.0652 0.8069
Residuals 6 25.121 4.187
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.9521, p-value = 0.6709
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 -0.3227466 2.393209 0.46
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = BMI_pre ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-2.6671 -0.9978 0.2079 0.6727 2.6994
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 27.57014 1.14100 24.163 3.3e-07 ***
InterventionB 3.46721 2.12017 1.635 0.1531
c.age -0.35684 0.48903 -0.730 0.4931
hispanic -4.32429 1.65253 -2.617 0.0398 *
c.stress 0.05628 0.22036 0.255 0.8069
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.046 on 6 degrees of freedom
Multiple R-squared: 0.6526, Adjusted R-squared: 0.4211
F-statistic: 2.818 on 4 and 6 DF, p-value: 0.124
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 5.75961 0.21783 Assumptions acceptable.
Skewness 0.03115 0.85992 Assumptions acceptable.
Kurtosis 0.19354 0.65999 Assumptions acceptable.
Link Function 4.14455 0.04177 Assumptions NOT satisfied!
Heteroscedasticity 1.39037 0.23834 Assumptions acceptable.
No significant differences.
Test for significant differences after intervention
# Post INtervention BMI - should beno difference
# not controls
fit <- lm(BMI_post ~ Intervention, mydata)
anova(fit)
Analysis of Variance Table
Response: BMI_post
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 14.673 14.6730 1.779 0.215
Residuals 9 74.231 8.2479
summary(fit)
Call:
lm(formula = BMI_post ~ Intervention, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-4.4244 -1.9352 -0.3242 2.0589 4.8071
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 25.347 1.172 21.618 4.57e-09 ***
InterventionB 2.320 1.739 1.334 0.215
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.872 on 9 degrees of freedom
Multiple R-squared: 0.165, Adjusted R-squared: 0.07227
F-statistic: 1.779 on 1 and 9 DF, p-value: 0.215
fit <- lm(BMI_post ~ Intervention + c.age + hispanic + c.stress,
mydata)
anova(fit)
Analysis of Variance Table
Response: BMI_post
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 14.673 14.673 2.7695 0.14713
c.age 1 0.602 0.602 0.1137 0.74747
hispanic 1 41.131 41.131 7.7634 0.03173 *
c.stress 1 0.709 0.709 0.1339 0.72696
Residuals 6 31.788 5.298
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(fit)
Call:
lm(formula = BMI_post ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-2.6992 -1.1714 0.2195 1.1039 2.6958
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 27.56605 1.28351 21.477 6.65e-07 ***
InterventionB 3.88642 2.38498 1.630 0.1543
c.age -0.57580 0.55011 -1.047 0.3356
hispanic -4.60697 1.85893 -2.478 0.0479 *
c.stress 0.09071 0.24789 0.366 0.7270
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.302 on 6 degrees of freedom
Multiple R-squared: 0.6424, Adjusted R-squared: 0.4041
F-statistic: 2.695 on 4 and 6 DF, p-value: 0.1338
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.95151, p-value = 0.6633
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 -0.3275118 2.33383 0.504
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = BMI_post ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-2.6992 -1.1714 0.2195 1.1039 2.6958
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 27.56605 1.28351 21.477 6.65e-07 ***
InterventionB 3.88642 2.38498 1.630 0.1543
c.age -0.57580 0.55011 -1.047 0.3356
hispanic -4.60697 1.85893 -2.478 0.0479 *
c.stress 0.09071 0.24789 0.366 0.7270
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 2.302 on 6 degrees of freedom
Multiple R-squared: 0.6424, Adjusted R-squared: 0.4041
F-statistic: 2.695 on 4 and 6 DF, p-value: 0.1338
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 4.82808 0.30540 Assumptions acceptable.
Skewness 0.05744 0.81058 Assumptions acceptable.
Kurtosis 0.51849 0.47148 Assumptions acceptable.
Link Function 3.11367 0.07764 Assumptions acceptable.
Heteroscedasticity 1.13847 0.28598 Assumptions acceptable.
No significant difference found.
Test for significant differences after intervention
# Post INtervention BMI - should beno difference
# not controls
fit <- lm(BMI_diff ~ Intervention, mydata)
anova(fit)
Analysis of Variance Table
Response: BMI_diff
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 0.1898 0.18982 0.4332 0.5269
Residuals 9 3.9434 0.43815
summary(fit)
Call:
lm(formula = BMI_diff ~ Intervention, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-1.2913 -0.3965 0.1505 0.4402 0.7753
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.1133 0.2702 0.419 0.685
InterventionB -0.2638 0.4008 -0.658 0.527
Residual standard error: 0.6619 on 9 degrees of freedom
Multiple R-squared: 0.04592, Adjusted R-squared: -0.06008
F-statistic: 0.4332 on 1 and 9 DF, p-value: 0.5269
fit <- lm(BMI_diff ~ Intervention + c.age + hispanic + c.stress,
mydata)
anova(fit)
Analysis of Variance Table
Response: BMI_diff
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 0.18982 0.18982 0.6768 0.44215
c.age 1 1.91391 1.91391 6.8243 0.03999 *
hispanic 1 0.24454 0.24454 0.8719 0.38646
c.stress 1 0.10221 0.10221 0.3644 0.56815
Residuals 6 1.68273 0.28045
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(fit)
Call:
lm(formula = BMI_diff ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-0.62947 -0.28789 0.00361 0.31689 0.60568
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.00409 0.29531 0.014 0.989
InterventionB -0.41921 0.54873 -0.764 0.474
c.age 0.21896 0.12657 1.730 0.134
hispanic 0.28268 0.42770 0.661 0.533
c.stress -0.03443 0.05703 -0.604 0.568
Residual standard error: 0.5296 on 6 degrees of freedom
Multiple R-squared: 0.5929, Adjusted R-squared: 0.3215
F-statistic: 2.184 on 4 and 6 DF, p-value: 0.1875
results.diff[["BMI"]] <- summary(fit)[["coefficients"]]
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.95023, p-value = 0.6469
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 0.01418472 1.683813 0.658
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = BMI_diff ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-0.62947 -0.28789 0.00361 0.31689 0.60568
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.00409 0.29531 0.014 0.989
InterventionB -0.41921 0.54873 -0.764 0.474
c.age 0.21896 0.12657 1.730 0.134
hispanic 0.28268 0.42770 0.661 0.533
c.stress -0.03443 0.05703 -0.604 0.568
Residual standard error: 0.5296 on 6 degrees of freedom
Multiple R-squared: 0.5929, Adjusted R-squared: 0.3215
F-statistic: 2.184 on 4 and 6 DF, p-value: 0.1875
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 1.62530 0.8042 Assumptions acceptable.
Skewness 0.04558 0.8309 Assumptions acceptable.
Kurtosis 0.62676 0.4285 Assumptions acceptable.
Link Function 0.46154 0.4969 Assumptions acceptable.
Heteroscedasticity 0.49142 0.4833 Assumptions acceptable.
Therefore, we have evidence that BMI is not effected by Prebiotic vs. placebo.
cols <- c("#00a2f2", "#c91acb", "#7f5940", "#cc5200", "#00d957", "#40202d", "#e60099", "#006fa6", "#a6538a", "#83008c", "#f29d3d","#a3d936", "#300059", "#566573", "#336655", "#d9a3aa", "#400009", "#0020f2", "#8091ff", "#fbffbf", "#00ffcc", "#8c4f46", "#354020", "#39c3e6", "#333a66", "#ff0000", "#6a8040", "#730f00", "#0a4d00", "#ffe1bf", "#a3d9b1", "#003033", "#f29979", "#00b3a7", "#cbace6", "#bfd9ff", "#bf0000", "#293aa6", "#594943", "#e5c339", "#402910")
weight.dat <- filter(plot.data, Variable %in% c("BMI_pre", "BMI_post"))
weight.dat$time <- ifelse(weight.dat$Variable == "BMI_pre", "Pre", "Post")
weight.dat$time <- factor(weight.dat$time, levels=c("Pre", "Post"), ordered=T)
weight.dat$Group <- ifelse(weight.dat$Intervention == "A", "Placebo", "Intervention")
weight.dat$Group <- factor(weight.dat$Group, levels=c("Placebo", "Intervention"), ordered=T)
weight.dat$ID <- factor(weight.dat$SubjectID, levels=unique(weight.dat$SubjectID), labels=1:length(unique(weight.dat$SubjectID)))
p <- ggplot(weight.dat, aes(time, value, group=ID, color=ID, shape=Group)) +
geom_line()+
geom_point(size=3)+
geom_hline(yintercept = 25, color="grey", linetype="dashed")+
geom_hline(yintercept = 30, color="grey", linetype="dashed")+
labs(y="BMI", x=NULL,
title="Change in BMI from pre to post")+
lims(y=c(20,32))+
scale_color_manual(values=cols)+
annotate("text", x=0.75, y=23, label="Normal")+
annotate("text", x=0.75, y=27.5, label="Overweight")+
annotate("text", x=0.75, y=31, label="Obese")+
theme(panel.grid = element_blank(),
axis.text.y = element_text(size=11),
axis.text.x = element_text(size=11),
axis.title.y = element_text(size=13),
axis.title.x = element_blank())
p
Warning: Using shapes for an ordinal variable is not advised
ggsave("fig/figure6.pdf", p, width=5,height=6, units="in")
Warning: Using shapes for an ordinal variable is not advised
#write.csv(weight.dat, paste0(w.d, "/tab/change_BMI.csv"))
# plot
p1 <- ggplot(filter(plot.data, Variable %like% "LBM"),
aes(x=Variable, y=value))+
geom_boxplot(outlier.shape = NA)+
geom_jitter(width = 0.25, size=2)+
scale_x_discrete(labels=c("LBM_pre"="Pre", "LBM_post"="Post"),
limits=c("LBM_pre", "LBM_post"))+
labs(x=NULL, y="LBM", title="Pre and Post LBM")+
theme(panel.grid = element_blank(),
axis.text = element_text(size=10))
#p1
p2 <- ggplot(filter(plot.data, Variable %like% "LBM"),
aes(x=Variable, y=value))+
geom_boxplot(outlier.shape = NA)+
geom_jitter(width = 0.25, size=2)+
scale_x_discrete(labels=c("LBM_pre"="Pre", "LBM_post"="Post"),
limits=c("LBM_pre", "LBM_post"))+
labs(x=NULL, y="LBM", title="Pre and Post LBM by Intervention Group")+
facet_grid(.~Intervention, labeller = labeller(Intervention = c(A = "Group A", B = "Group B")))+
theme(panel.grid = element_blank(),
axis.text = element_text(size=10),
strip.text = element_text(size=10))
#p2
p <- p1 + p2
p
Warning: Removed 11 rows containing missing values (stat_boxplot).
Warning: Removed 11 rows containing missing values (geom_point).
Warning: Removed 11 rows containing missing values (stat_boxplot).
Warning: Removed 11 rows containing missing values (geom_point).
This is simply to double check that no differences occured at baseline.
# Pre INtervention LBM - should beno difference
fit <- lm(LBM_pre ~ Intervention + c.age + hispanic + c.stress, mydata)
anova(fit)
Analysis of Variance Table
Response: LBM_pre
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 2.691 2.691 0.0561 0.8206
c.age 1 2.124 2.124 0.0443 0.8402
hispanic 1 0.001 0.001 0.0000 0.9967
c.stress 1 12.775 12.775 0.2665 0.6241
Residuals 6 287.605 47.934
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.9156, p-value = 0.2837
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 0.1254505 1.669594 0.562
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = LBM_pre ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-6.3822 -4.1700 -0.8369 2.3452 11.8227
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 26.3882 3.8607 6.835 0.000482 ***
InterventionB 3.4391 7.1738 0.479 0.648631
c.age -0.3049 1.6547 -0.184 0.859875
hispanic -0.9950 5.5915 -0.178 0.864615
c.stress -0.3849 0.7456 -0.516 0.624142
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 6.923 on 6 degrees of freedom
Multiple R-squared: 0.05764, Adjusted R-squared: -0.5706
F-statistic: 0.09175 on 4 and 6 DF, p-value: 0.9816
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 3.055492 0.5486 Assumptions acceptable.
Skewness 1.646157 0.1995 Assumptions acceptable.
Kurtosis 0.007273 0.9320 Assumptions acceptable.
Link Function 0.154379 0.6944 Assumptions acceptable.
Heteroscedasticity 1.247683 0.2640 Assumptions acceptable.
No significant differences.
Test for significant differences after intervention
# Post INtervention LBM - should beno difference
# not controls
fit <- lm(LBM_post ~ Intervention, mydata)
anova(fit)
Analysis of Variance Table
Response: LBM_post
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 1.026 1.0259 0.0335 0.8589
Residuals 9 275.721 30.6357
summary(fit)
Call:
lm(formula = LBM_post ~ Intervention, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-5.680 -3.567 -1.667 2.827 11.833
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 27.1667 2.2596 12.023 7.58e-07 ***
InterventionB 0.6133 3.3516 0.183 0.859
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 5.535 on 9 degrees of freedom
Multiple R-squared: 0.003707, Adjusted R-squared: -0.107
F-statistic: 0.03349 on 1 and 9 DF, p-value: 0.8589
fit <- lm(LBM_post ~ Intervention + c.age + hispanic + c.stress,
mydata)
anova(fit)
Analysis of Variance Table
Response: LBM_post
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 1.026 1.026 0.0231 0.8841
c.age 1 0.094 0.094 0.0021 0.9647
hispanic 1 0.054 0.054 0.0012 0.9733
c.stress 1 9.506 9.506 0.2144 0.6597
Residuals 6 266.067 44.345
summary(fit)
Call:
lm(formula = LBM_post ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-6.6654 -3.4551 -0.8474 2.3115 11.2320
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 26.6108 3.7133 7.166 0.000373 ***
InterventionB 2.8196 6.8999 0.409 0.696992
c.age -0.3974 1.5915 -0.250 0.811144
hispanic -0.7023 5.3780 -0.131 0.900371
c.stress -0.3320 0.7172 -0.463 0.659689
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 6.659 on 6 degrees of freedom
Multiple R-squared: 0.03859, Adjusted R-squared: -0.6023
F-statistic: 0.06021 on 4 and 6 DF, p-value: 0.9915
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.92512, p-value = 0.3636
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 0.01493663 1.888619 0.888
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = LBM_post ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-6.6654 -3.4551 -0.8474 2.3115 11.2320
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 26.6108 3.7133 7.166 0.000373 ***
InterventionB 2.8196 6.8999 0.409 0.696992
c.age -0.3974 1.5915 -0.250 0.811144
hispanic -0.7023 5.3780 -0.131 0.900371
c.stress -0.3320 0.7172 -0.463 0.659689
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 6.659 on 6 degrees of freedom
Multiple R-squared: 0.03859, Adjusted R-squared: -0.6023
F-statistic: 0.06021 on 4 and 6 DF, p-value: 0.9915
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 3.68147 0.4508 Assumptions acceptable.
Skewness 1.50739 0.2195 Assumptions acceptable.
Kurtosis 0.00273 0.9583 Assumptions acceptable.
Link Function 0.61043 0.4346 Assumptions acceptable.
Heteroscedasticity 1.56092 0.2115 Assumptions acceptable.
Test for significant differences after intervention
# Post INtervention LBM - should beno difference
# not controls
fit <- lm(LBM_diff ~ Intervention, mydata)
anova(fit)
Analysis of Variance Table
Response: LBM_diff
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 0.3938 0.39382 0.6389 0.4447
Residuals 9 5.5480 0.61644
summary(fit)
Call:
lm(formula = LBM_diff ~ Intervention, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-1.60 -0.49 0.30 0.52 0.90
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.3000 0.3205 -0.936 0.374
InterventionB 0.3800 0.4754 0.799 0.445
Residual standard error: 0.7851 on 9 degrees of freedom
Multiple R-squared: 0.06628, Adjusted R-squared: -0.03747
F-statistic: 0.6389 on 1 and 9 DF, p-value: 0.4447
fit <- lm(LBM_diff ~ Intervention + c.age + hispanic + c.stress,
mydata)
anova(fit)
Analysis of Variance Table
Response: LBM_diff
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 0.3938 0.39382 0.5993 0.4682
c.age 1 1.3230 1.32300 2.0133 0.2057
hispanic 1 0.0409 0.04091 0.0623 0.8113
c.stress 1 0.2412 0.24124 0.3671 0.5668
Residuals 6 3.9428 0.65714
summary(fit)
Call:
lm(formula = LBM_diff ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-1.31265 -0.37213 0.06805 0.51538 0.77942
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.22258 0.45203 -0.492 0.640
InterventionB 0.61951 0.83995 0.738 0.489
c.age 0.09251 0.19374 0.478 0.650
hispanic -0.29273 0.65469 -0.447 0.670
c.stress -0.05289 0.08730 -0.606 0.567
Residual standard error: 0.8106 on 6 degrees of freedom
Multiple R-squared: 0.3364, Adjusted R-squared: -0.106
F-statistic: 0.7605 on 4 and 6 DF, p-value: 0.5871
results.diff[["LBM"]] <- summary(fit)[["coefficients"]]
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.93955, p-value = 0.5152
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 0.5506934 0.6556207 0.032
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = LBM_diff ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-1.31265 -0.37213 0.06805 0.51538 0.77942
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.22258 0.45203 -0.492 0.640
InterventionB 0.61951 0.83995 0.738 0.489
c.age 0.09251 0.19374 0.478 0.650
hispanic -0.29273 0.65469 -0.447 0.670
c.stress -0.05289 0.08730 -0.606 0.567
Residual standard error: 0.8106 on 6 degrees of freedom
Multiple R-squared: 0.3364, Adjusted R-squared: -0.106
F-statistic: 0.7605 on 4 and 6 DF, p-value: 0.5871
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 5.24671 0.26291 Assumptions acceptable.
Skewness 0.84929 0.35675 Assumptions acceptable.
Kurtosis 0.04929 0.82430 Assumptions acceptable.
Link Function 3.88262 0.04879 Assumptions NOT satisfied!
Heteroscedasticity 0.46551 0.49506 Assumptions acceptable.
Therefore, we have evidence that LBM is not effected by Prebiotic vs. placebo.
# plot
p1 <- ggplot(filter(plot.data, Variable %like% "VFL"),
aes(x=Variable, y=value))+
geom_boxplot(outlier.shape = NA)+
geom_jitter(width = 0.25, size=2)+
scale_x_discrete(labels=c("VFL_pre"="Pre", "VFL_post"="Post"),
limits=c("VFL_pre", "VFL_post"))+
labs(x=NULL, y="VFL", title="Pre and Post VFL")+
theme(panel.grid = element_blank(),
axis.text = element_text(size=10))
#p1
p2 <- ggplot(filter(plot.data, Variable %like% "VFL"),
aes(x=Variable, y=value))+
geom_boxplot(outlier.shape = NA)+
geom_jitter(width = 0.25, size=2)+
scale_x_discrete(labels=c("VFL_pre"="Pre", "VFL_post"="Post"),
limits=c("VFL_pre", "VFL_post"))+
labs(x=NULL, y="VFL", title="Pre and Post VFL by Intervention Group")+
facet_grid(.~Intervention, labeller = labeller(Intervention = c(A = "Group A", B = "Group B")))+
theme(panel.grid = element_blank(),
axis.text = element_text(size=10),
strip.text = element_text(size=10))
#p2
p <- p1 + p2
p
Warning: Removed 11 rows containing missing values (stat_boxplot).
Warning: Removed 11 rows containing missing values (geom_point).
Warning: Removed 11 rows containing missing values (stat_boxplot).
Warning: Removed 11 rows containing missing values (geom_point).
This is simply to double check that no differences occured at baseline.
# Pre INtervention VFL - should beno difference
fit <- lm(VFL_pre ~ Intervention + c.age + hispanic + c.stress, mydata)
anova(fit)
Analysis of Variance Table
Response: VFL_pre
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 5.094 5.0939 0.3476 0.5770
c.age 1 0.632 0.6316 0.0431 0.8424
hispanic 1 25.724 25.7236 1.7551 0.2335
c.stress 1 13.340 13.3404 0.9102 0.3769
Residuals 6 87.938 14.6563
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.96244, p-value = 0.8017
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 0.06653053 1.424408 0.31
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = VFL_pre ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-4.9601 -2.1695 0.6951 1.6996 5.9273
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.1850 2.1348 5.239 0.00194 **
InterventionB 0.1030 3.9668 0.026 0.98013
c.age 0.2247 0.9150 0.246 0.81417
hispanic -2.7929 3.0918 -0.903 0.40117
c.stress 0.3933 0.4123 0.954 0.37690
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.828 on 6 degrees of freedom
Multiple R-squared: 0.3375, Adjusted R-squared: -0.1042
F-statistic: 0.764 on 4 and 6 DF, p-value: 0.5853
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 1.23558 0.8722 Assumptions acceptable.
Skewness 0.12366 0.7251 Assumptions acceptable.
Kurtosis 0.01832 0.8923 Assumptions acceptable.
Link Function 0.08793 0.7668 Assumptions acceptable.
Heteroscedasticity 1.00567 0.3159 Assumptions acceptable.
No significant differences.
Test for significant differences after intervention
# Post INtervention VFL - should beno difference
# not controls
fit <- lm(VFL_post ~ Intervention, mydata)
anova(fit)
Analysis of Variance Table
Response: VFL_post
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 11.648 11.649 0.7568 0.4069
Residuals 9 138.533 15.393
summary(fit)
Call:
lm(formula = VFL_post ~ Intervention, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-4.333 -2.367 -1.333 1.633 8.667
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.333 1.602 5.203 0.000562 ***
InterventionB 2.067 2.376 0.870 0.406947
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.923 on 9 degrees of freedom
Multiple R-squared: 0.07756, Adjusted R-squared: -0.02493
F-statistic: 0.7568 on 1 and 9 DF, p-value: 0.4069
fit <- lm(VFL_post ~ Intervention + c.age + hispanic + c.stress,
mydata)
anova(fit)
Analysis of Variance Table
Response: VFL_post
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 11.648 11.648 0.9706 0.36258
c.age 1 0.006 0.006 0.0005 0.98339
hispanic 1 53.250 53.250 4.4369 0.07977 .
c.stress 1 13.269 13.269 1.1056 0.33353
Residuals 6 72.009 12.002
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(fit)
Call:
lm(formula = VFL_post ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-4.3890 -2.0123 0.6177 1.3834 5.4733
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.3591 1.9318 5.880 0.00107 **
InterventionB 1.6786 3.5896 0.468 0.65655
c.age -0.1177 0.8280 -0.142 0.89163
hispanic -4.4775 2.7978 -1.600 0.16064
c.stress 0.3923 0.3731 1.051 0.33353
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.464 on 6 degrees of freedom
Multiple R-squared: 0.5205, Adjusted R-squared: 0.2009
F-statistic: 1.628 on 4 and 6 DF, p-value: 0.2824
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.95397, p-value = 0.695
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 -0.01794009 1.58296 0.452
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = VFL_post ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-4.3890 -2.0123 0.6177 1.3834 5.4733
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 11.3591 1.9318 5.880 0.00107 **
InterventionB 1.6786 3.5896 0.468 0.65655
c.age -0.1177 0.8280 -0.142 0.89163
hispanic -4.4775 2.7978 -1.600 0.16064
c.stress 0.3923 0.3731 1.051 0.33353
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.464 on 6 degrees of freedom
Multiple R-squared: 0.5205, Adjusted R-squared: 0.2009
F-statistic: 1.628 on 4 and 6 DF, p-value: 0.2824
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 1.833660 0.7663 Assumptions acceptable.
Skewness 0.180994 0.6705 Assumptions acceptable.
Kurtosis 0.006109 0.9377 Assumptions acceptable.
Link Function 0.709705 0.3995 Assumptions acceptable.
Heteroscedasticity 0.936852 0.3331 Assumptions acceptable.
Test for significant differences after intervention
# Post INtervention VFL - should beno difference
# not controls
fit <- lm(VFL_diff ~ Intervention, mydata)
anova(fit)
Analysis of Variance Table
Response: VFL_diff
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 1.3364 1.33636 1.4491 0.2594
Residuals 9 8.3000 0.92222
summary(fit)
Call:
lm(formula = VFL_diff ~ Intervention, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-1.50 -0.65 0.20 0.50 1.50
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.5000 0.3921 1.275 0.234
InterventionB -0.7000 0.5815 -1.204 0.259
Residual standard error: 0.9603 on 9 degrees of freedom
Multiple R-squared: 0.1387, Adjusted R-squared: 0.04298
F-statistic: 1.449 on 1 and 9 DF, p-value: 0.2594
fit <- lm(VFL_diff ~ Intervention + c.age + hispanic + c.stress,
mydata)
anova(fit)
Analysis of Variance Table
Response: VFL_diff
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 1.3364 1.3364 3.0949 0.12903
c.age 1 0.7567 0.7567 1.7525 0.23376
hispanic 1 4.9523 4.9523 11.4690 0.01474 *
c.stress 1 0.0001 0.0001 0.0002 0.98860
Residuals 6 2.5908 0.4318
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(fit)
Call:
lm(formula = VFL_diff ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-0.5711 -0.3179 -0.2057 0.3177 1.1139
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.174025 0.366424 -0.475 0.6516
InterventionB -1.575594 0.680876 -2.314 0.0599 .
c.age 0.342395 0.157049 2.180 0.0720 .
hispanic 1.684606 0.530697 3.174 0.0192 *
c.stress 0.001054 0.070768 0.015 0.9886
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.6571 on 6 degrees of freedom
Multiple R-squared: 0.7311, Adjusted R-squared: 0.5519
F-statistic: 4.079 on 4 and 6 DF, p-value: 0.06206
results.diff[["VFL"]] <- summary(fit)[["coefficients"]]
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.90718, p-value = 0.2257
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 0.3316722 1.21887 0.204
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = VFL_diff ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-0.5711 -0.3179 -0.2057 0.3177 1.1139
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.174025 0.366424 -0.475 0.6516
InterventionB -1.575594 0.680876 -2.314 0.0599 .
c.age 0.342395 0.157049 2.180 0.0720 .
hispanic 1.684606 0.530697 3.174 0.0192 *
c.stress 0.001054 0.070768 0.015 0.9886
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.6571 on 6 degrees of freedom
Multiple R-squared: 0.7311, Adjusted R-squared: 0.5519
F-statistic: 4.079 on 4 and 6 DF, p-value: 0.06206
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 6.1228904 0.19016 Assumptions acceptable.
Skewness 1.3706785 0.24170 Assumptions acceptable.
Kurtosis 0.0000427 0.99479 Assumptions acceptable.
Link Function 3.6962650 0.05453 Assumptions acceptable.
Heteroscedasticity 1.0559042 0.30415 Assumptions acceptable.
Therefore, we have evidence that LBM is not effected by Prebiotic vs. placebo.
# plot
p1 <- ggplot(filter(plot.data, Variable %like% "Weight"),
aes(x=Variable, y=value))+
geom_boxplot(outlier.shape = NA)+
geom_jitter(width = 0.25, size=2)+
scale_x_discrete(labels=c("Weight_pre"="Pre", "Weight_post"="Post"),
limits=c("Weight_pre", "Weight_post"))+
labs(x=NULL, y="Weight (kg)", title="Pre and Post Weight (kg)")+
theme(panel.grid = element_blank(),
axis.text = element_text(size=10))
#p1
p2 <- ggplot(filter(plot.data, Variable %like% "Weight"),
aes(x=Variable, y=value))+
geom_boxplot(outlier.shape = NA)+
geom_jitter(width = 0.25, size=2)+
scale_x_discrete(labels=c("Weight_pre"="Pre", "Weight_post"="Post"),
limits=c("Weight_pre", "Weight_post"))+
labs(x=NULL, y="Weight (kg)", title="Pre and Post Weight (kg) by Intervention Group")+
facet_grid(.~Intervention, labeller = labeller(Intervention = c(A = "Group A", B = "Group B")))+
theme(panel.grid = element_blank(),
axis.text = element_text(size=10),
strip.text = element_text(size=10))
#p2
p <- p1 + p2
p
Warning: Removed 11 rows containing missing values (stat_boxplot).
Warning: Removed 11 rows containing missing values (geom_point).
Warning: Removed 11 rows containing missing values (stat_boxplot).
Warning: Removed 11 rows containing missing values (geom_point).
This is simply to double check that no differences occured at baseline.
# Pre INtervention Weight - should beno difference
fit <- lm(Weight_pre ~ Intervention + c.age + hispanic + c.stress, mydata)
anova(fit)
Analysis of Variance Table
Response: Weight_pre
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 65.84 65.839 0.4038 0.5486
c.age 1 3.56 3.557 0.0218 0.8874
hispanic 1 102.90 102.900 0.6311 0.4572
c.stress 1 0.69 0.691 0.0042 0.9502
Residuals 6 978.31 163.052
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.92009, p-value = 0.3194
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 -0.254796 2.46993 0.4
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = Weight_pre ~ Intervention + c.age + hispanic + c.stress,
data = mydata)
Residuals:
Min 1Q Median 3Q Max
-12.489 -6.318 -3.487 3.938 21.848
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 72.36794 7.12041 10.163 5.28e-05 ***
InterventionB 8.49465 13.23090 0.642 0.545
c.age -0.73751 3.05179 -0.242 0.817
hispanic -7.90293 10.31259 -0.766 0.473
c.stress -0.08953 1.37517 -0.065 0.950
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 12.77 on 6 degrees of freedom
Multiple R-squared: 0.1503, Adjusted R-squared: -0.4162
F-statistic: 0.2652 on 4 and 6 DF, p-value: 0.8902
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 8.79896 0.06633 Assumptions acceptable.
Skewness 1.68148 0.19473 Assumptions acceptable.
Kurtosis 0.01765 0.89431 Assumptions acceptable.
Link Function 4.82450 0.02806 Assumptions NOT satisfied!
Heteroscedasticity 2.27533 0.13145 Assumptions acceptable.
No significant differences.
Test for significant differences after intervention
# Post INtervention Weight - should beno difference
# not controls
fit <- lm(Weight_post ~ Intervention, mydata)
anova(fit)
Analysis of Variance Table
Response: Weight_post
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 90.48 90.484 0.6896 0.4278
Residuals 9 1180.91 131.212
summary(fit)
Call:
lm(formula = Weight_post ~ Intervention, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-16.70 -7.43 -6.00 7.62 16.30
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 68.600 4.676 14.67 1.37e-07 ***
InterventionB 5.760 6.936 0.83 0.428
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 11.45 on 9 degrees of freedom
Multiple R-squared: 0.07117, Adjusted R-squared: -0.03203
F-statistic: 0.6896 on 1 and 9 DF, p-value: 0.4278
fit <- lm(Weight_post ~ Intervention + c.age + hispanic + c.stress,
mydata)
anova(fit)
Analysis of Variance Table
Response: Weight_post
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 90.48 90.484 0.5206 0.4977
c.age 1 4.00 4.003 0.0230 0.8843
hispanic 1 134.10 134.096 0.7716 0.4135
c.stress 1 0.07 0.066 0.0004 0.9851
Residuals 6 1042.75 173.791
summary(fit)
Call:
lm(formula = Weight_post ~ Intervention + c.age + hispanic +
c.stress, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-12.702 -6.973 -3.441 3.527 21.626
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 72.35473 7.35115 9.843 6.34e-05 ***
InterventionB 9.64939 13.65965 0.706 0.506
c.age -1.32811 3.15069 -0.422 0.688
hispanic -8.67842 10.64678 -0.815 0.446
c.stress 0.02763 1.41973 0.019 0.985
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 13.18 on 6 degrees of freedom
Multiple R-squared: 0.1798, Adjusted R-squared: -0.3669
F-statistic: 0.3289 on 4 and 6 DF, p-value: 0.8493
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.91814, p-value = 0.3034
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 -0.3361658 2.610712 0.278
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = Weight_post ~ Intervention + c.age + hispanic +
c.stress, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-12.702 -6.973 -3.441 3.527 21.626
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 72.35473 7.35115 9.843 6.34e-05 ***
InterventionB 9.64939 13.65965 0.706 0.506
c.age -1.32811 3.15069 -0.422 0.688
hispanic -8.67842 10.64678 -0.815 0.446
c.stress 0.02763 1.41973 0.019 0.985
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 13.18 on 6 degrees of freedom
Multiple R-squared: 0.1798, Adjusted R-squared: -0.3669
F-statistic: 0.3289 on 4 and 6 DF, p-value: 0.8493
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 11.687482 0.019833 Assumptions NOT satisfied!
Skewness 1.471559 0.225100 Assumptions acceptable.
Kurtosis 0.004073 0.949115 Assumptions acceptable.
Link Function 7.940367 0.004834 Assumptions NOT satisfied!
Heteroscedasticity 2.271483 0.131774 Assumptions acceptable.
Test for significant differences after intervention
# Post INtervention Weight - should beno difference
# not controls
fit <- lm(Weight_diff ~ Intervention, mydata)
anova(fit)
Analysis of Variance Table
Response: Weight_diff
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 1.955 1.9550 0.5596 0.4735
Residuals 9 31.441 3.4935
summary(fit)
Call:
lm(formula = Weight_diff ~ Intervention, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-3.8200 -0.9933 0.4800 1.2833 2.0800
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.3667 0.7631 0.481 0.642
InterventionB -0.8467 1.1318 -0.748 0.474
Residual standard error: 1.869 on 9 degrees of freedom
Multiple R-squared: 0.05854, Adjusted R-squared: -0.04607
F-statistic: 0.5596 on 1 and 9 DF, p-value: 0.4735
fit <- lm(Weight_diff ~ Intervention + c.age + hispanic + c.stress,
mydata)
anova(fit)
Analysis of Variance Table
Response: Weight_diff
Df Sum Sq Mean Sq F value Pr(>F)
Intervention 1 1.9550 1.9550 0.8962 0.38036
c.age 1 15.1063 15.1063 6.9245 0.03898 *
hispanic 1 2.0622 2.0622 0.9453 0.36847
c.stress 1 1.1834 1.1834 0.5425 0.48919
Residuals 6 13.0894 2.1816
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary(fit)
Call:
lm(formula = Weight_diff ~ Intervention + c.age + hispanic +
c.stress, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-1.9016 -0.7507 -0.0148 0.7534 1.6955
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.01321 0.82362 0.016 0.988
InterventionB -1.15474 1.53042 -0.755 0.479
c.age 0.59060 0.35300 1.673 0.145
hispanic 0.77548 1.19286 0.650 0.540
c.stress -0.11716 0.15907 -0.737 0.489
Residual standard error: 1.477 on 6 degrees of freedom
Multiple R-squared: 0.6081, Adjusted R-squared: 0.3468
F-statistic: 2.327 on 4 and 6 DF, p-value: 0.17
results.diff[["Weight"]] <- summary(fit)[["coefficients"]]
# diagnostic plots
layout(matrix(c(1,2,3,4),2,2)) # optional layout
plot(fit) # diagnostic plots
# normality again
shapiro.test(residuals(fit))
Shapiro-Wilk normality test
data: residuals(fit)
W = 0.95573, p-value = 0.7175
# independence
durbinWatsonTest(fit)
lag Autocorrelation D-W Statistic p-value
1 0.00132079 1.727779 0.722
Alternative hypothesis: rho != 0
layout(matrix(c(1),1,1))
acf(residuals(fit))
# nice wrapper function to generally test a lot of stuff
gvmodel <- gvlma(fit)
summary(gvmodel)
Call:
lm(formula = Weight_diff ~ Intervention + c.age + hispanic +
c.stress, data = mydata)
Residuals:
Min 1Q Median 3Q Max
-1.9016 -0.7507 -0.0148 0.7534 1.6955
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.01321 0.82362 0.016 0.988
InterventionB -1.15474 1.53042 -0.755 0.479
c.age 0.59060 0.35300 1.673 0.145
hispanic 0.77548 1.19286 0.650 0.540
c.stress -0.11716 0.15907 -0.737 0.489
Residual standard error: 1.477 on 6 degrees of freedom
Multiple R-squared: 0.6081, Adjusted R-squared: 0.3468
F-statistic: 2.327 on 4 and 6 DF, p-value: 0.17
ASSESSMENT OF THE LINEAR MODEL ASSUMPTIONS
USING THE GLOBAL TEST ON 4 DEGREES-OF-FREEDOM:
Level of Significance = 0.05
Call:
gvlma(x = fit)
Value p-value Decision
Global Stat 2.13957 0.7101 Assumptions acceptable.
Skewness 0.01451 0.9041 Assumptions acceptable.
Kurtosis 0.42946 0.5123 Assumptions acceptable.
Link Function 0.94668 0.3306 Assumptions acceptable.
Heteroscedasticity 0.74893 0.3868 Assumptions acceptable.
Therefore, we have evidence that weight (kg) is not effected by Prebiotic vs. placebo.
all_results <- unlist.res(results.diff)
Joining, by = c("Estimate", "Std. Error", "t value", "Pr(>|t|)", "Outcome", "Parameter")
Joining, by = c("Estimate", "Std. Error", "t value", "Pr(>|t|)", "Outcome", "Parameter")
Joining, by = c("Estimate", "Std. Error", "t value", "Pr(>|t|)", "Outcome", "Parameter")
all_results$p.adj <- p.adjust(all_results$`Pr(>|t|)`, "fdr")
all_results$sigflag <- ifelse(all_results$p.adj < 0.05, "*", " ")
all_results$`Pr(>|t|)` <- round(all_results$`Pr(>|t|)`, 3)
all_results$p.adj.fdr <- round(all_results$p.adj, 3)
all_results <- all_results[,c(5:6, 1:4,7:8)]
kable(all_results, format="html", digits=3) %>%
kable_styling(full_width = T)
Outcome | Parameter | Estimate | Std. Error | t value | Pr(>|t|) | p.adj | sigflag |
---|---|---|---|---|---|---|---|
BMI | (Intercept) | 0.004 | 0.295 | 0.014 | 0.989 | 0.989 | |
BMI | InterventionB | -0.419 | 0.549 | -0.764 | 0.474 | 0.789 | |
BMI | c.age | 0.219 | 0.127 | 1.730 | 0.134 | 0.581 | |
BMI | hispanic | 0.283 | 0.428 | 0.661 | 0.533 | 0.789 | |
BMI | c.stress | -0.034 | 0.057 | -0.604 | 0.568 | 0.789 | |
LBM | (Intercept) | -0.223 | 0.452 | -0.492 | 0.640 | 0.789 | |
LBM | InterventionB | 0.620 | 0.840 | 0.738 | 0.489 | 0.789 | |
LBM | c.age | 0.093 | 0.194 | 0.478 | 0.650 | 0.789 | |
LBM | hispanic | -0.293 | 0.655 | -0.447 | 0.670 | 0.789 | |
LBM | c.stress | -0.053 | 0.087 | -0.606 | 0.567 | 0.789 | |
VFL | (Intercept) | -0.174 | 0.366 | -0.475 | 0.652 | 0.789 | |
VFL | InterventionB | -1.576 | 0.681 | -2.314 | 0.060 | 0.480 | |
VFL | c.age | 0.342 | 0.157 | 2.180 | 0.072 | 0.480 | |
VFL | hispanic | 1.685 | 0.531 | 3.174 | 0.019 | 0.384 | |
VFL | c.stress | 0.001 | 0.071 | 0.015 | 0.989 | 0.989 | |
Weight | (Intercept) | 0.013 | 0.824 | 0.016 | 0.988 | 0.989 | |
Weight | InterventionB | -1.155 | 1.530 | -0.755 | 0.479 | 0.789 | |
Weight | c.age | 0.591 | 0.353 | 1.673 | 0.145 | 0.581 | |
Weight | hispanic | 0.775 | 1.193 | 0.650 | 0.540 | 0.789 | |
Weight | c.stress | -0.117 | 0.159 | -0.737 | 0.489 | 0.789 |
readr::write_csv(all_results, "tab/results_anthropometric.csv")
sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 18362)
Matrix products: default
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] cowplot_1.0.0 microbiome_1.8.0 car_3.0-8 carData_3.0-4
[5] gvlma_1.0.0.3 patchwork_1.0.0 viridis_0.5.1 viridisLite_0.3.0
[9] gridExtra_2.3 xtable_1.8-4 kableExtra_1.1.0 plyr_1.8.6
[13] data.table_1.12.8 readxl_1.3.1 forcats_0.5.0 stringr_1.4.0
[17] dplyr_0.8.5 purrr_0.3.4 readr_1.3.1 tidyr_1.1.0
[21] tibble_3.0.1 ggplot2_3.3.0 tidyverse_1.3.0 lmerTest_3.1-2
[25] lme4_1.1-23 Matrix_1.2-18 vegan_2.5-6 lattice_0.20-38
[29] permute_0.9-5 phyloseq_1.30.0
loaded via a namespace (and not attached):
[1] Rtsne_0.15 minqa_1.2.4 colorspace_1.4-1
[4] rio_0.5.16 ellipsis_0.3.1 rprojroot_1.3-2
[7] XVector_0.26.0 fs_1.4.1 rstudioapi_0.11
[10] farver_2.0.3 fansi_0.4.1 lubridate_1.7.8
[13] xml2_1.3.2 codetools_0.2-16 splines_3.6.3
[16] knitr_1.28 ade4_1.7-15 jsonlite_1.6.1
[19] workflowr_1.6.2 nloptr_1.2.2.1 broom_0.5.6
[22] cluster_2.1.0 dbplyr_1.4.4 BiocManager_1.30.10
[25] compiler_3.6.3 httr_1.4.1 backports_1.1.7
[28] assertthat_0.2.1 cli_2.0.2 later_1.0.0
[31] htmltools_0.4.0 tools_3.6.3 igraph_1.2.5
[34] gtable_0.3.0 glue_1.4.1 reshape2_1.4.4
[37] Rcpp_1.0.4.6 Biobase_2.46.0 cellranger_1.1.0
[40] vctrs_0.3.0 Biostrings_2.54.0 multtest_2.42.0
[43] ape_5.3 nlme_3.1-144 iterators_1.0.12
[46] xfun_0.14 openxlsx_4.1.5 rvest_0.3.5
[49] lifecycle_0.2.0 statmod_1.4.34 zlibbioc_1.32.0
[52] MASS_7.3-51.5 scales_1.1.1 hms_0.5.3
[55] promises_1.1.0 parallel_3.6.3 biomformat_1.14.0
[58] rhdf5_2.30.1 curl_4.3 yaml_2.2.1
[61] stringi_1.4.6 highr_0.8 S4Vectors_0.24.4
[64] foreach_1.5.0 BiocGenerics_0.32.0 zip_2.0.4
[67] boot_1.3-24 rlang_0.4.6 pkgconfig_2.0.3
[70] evaluate_0.14 Rhdf5lib_1.8.0 labeling_0.3
[73] tidyselect_1.1.0 magrittr_1.5 R6_2.4.1
[76] IRanges_2.20.2 generics_0.0.2 DBI_1.1.0
[79] foreign_0.8-75 pillar_1.4.4 haven_2.3.0
[82] whisker_0.4 withr_2.2.0 mgcv_1.8-31
[85] abind_1.4-5 survival_3.1-8 modelr_0.1.8
[88] crayon_1.3.4 rmarkdown_2.1 grid_3.6.3
[91] blob_1.2.1 git2r_0.27.1 reprex_0.3.0
[94] digest_0.6.25 webshot_0.5.2 httpuv_1.5.2
[97] numDeriv_2016.8-1.1 stats4_3.6.3 munsell_0.5.0