#####################Read and Pre-Clean the Data#######################
require(Amelia)
## Loading required package: Amelia
## Loading required package: Rcpp
## ##
## ## Amelia II: Multiple Imputation
## ## (Version 1.7.6, built: 2019-11-24)
## ## Copyright (C) 2005-2020 James Honaker, Gary King and Matthew Blackwell
## ## Refer to http://gking.harvard.edu/amelia/ for more information
## ##
library(car)
## Loading required package: carData
library(corrplot)
## corrplot 0.84 loaded
library(ggcorrplot)
## Loading required package: ggplot2
library(heplots)
library(kableExtra)
library(MANOVA.RM)
## Warning: package 'MANOVA.RM' was built under R version 4.0.3
library(MASS)
library(MVN)
## Warning: package 'MVN' was built under R version 4.0.3
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
## sROC 0.1-2 loaded
library(mvtnorm)
require(psych) #to describe
## Loading required package: psych
##
## Attaching package: 'psych'
## The following objects are masked from 'package:ggplot2':
##
## %+%, alpha
## The following object is masked from 'package:car':
##
## logit
require(ggplot2)
library(ggcorrplot)
library(qcc)
## Warning: package 'qcc' was built under R version 4.0.3
## Package 'qcc' version 2.7
## Type 'citation("qcc")' for citing this R package in publications.
require(reticulate) #to use Python in R as well
## Loading required package: reticulate
require(ResourceSelection)
## Loading required package: ResourceSelection
## ResourceSelection 0.3-5 2019-07-22
library(rstatix)
## Warning: package 'rstatix' was built under R version 4.0.3
##
## Attaching package: 'rstatix'
## The following object is masked from 'package:MASS':
##
## select
## The following object is masked from 'package:ggcorrplot':
##
## cor_pmat
## The following object is masked from 'package:stats':
##
## filter
library(tidyverse)
## -- Attaching packages ---------------------------------------- tidyverse 1.3.0 --
## v tibble 3.0.3 v dplyr 1.0.2
## v tidyr 1.1.2 v stringr 1.4.0
## v readr 1.3.1 v forcats 0.5.0
## v purrr 0.3.4
## -- Conflicts ------------------------------------------- tidyverse_conflicts() --
## x psych::%+%() masks ggplot2::%+%()
## x psych::alpha() masks ggplot2::alpha()
## x dplyr::filter() masks rstatix::filter(), stats::filter()
## x dplyr::group_rows() masks kableExtra::group_rows()
## x dplyr::lag() masks stats::lag()
## x dplyr::recode() masks car::recode()
## x dplyr::select() masks rstatix::select(), MASS::select()
## x purrr::some() masks car::some()
corfunction=function(d){
mycorr=cor(d[, 1:ncol(d)]); p.mat=ggcorrplot::cor_pmat(d[,1:ncol(d)])
myplot=ggcorrplot(mycorr, hc.order=TRUE,type="lower",colors=c("red", "white","green"),tl.cex = 8, tl.col = "black", lab=TRUE, lab_size=2, p.mat=p.mat, insig="pch", pch=4)
print(myplot)}
mydata=read.csv("C:/Users/lfult/Desktop/PaulaEcho/global.csv", stringsAsFactors = TRUE)
colnames(mydata)
## [1] "PrePost" "Duration..in.seconds." "Date"
## [4] "Profession" "Specialization" "Practice"
## [7] "Years" "Knowledge" "Recent"
## [10] "Texas" "Cause" "Saliva"
## [13] "Location" "Prevalence" "Onset"
## [16] "Symptoms" "Diagnosis" "AntiT_Drugs"
## [19] "Prevention" "Score" "Age"
## [22] "Ethnicity" "Gender" "Screened"
## [25] "Tested"
#########################################################################
We have true missing for Quantitative Methods, as that section was recently added.
#########################################################################
missmap(mydata)
#########################################################################
#########################################################################
as.data.frame(100*round(table(mydata$Gender)/length(mydata$Gender),4))%>%
kbl(col.names = c("Gender", "%"))%>%kable_classic(full_width=F)
| Gender | % |
|---|---|
| Female | 73.3 |
| Male | 26.7 |
#########################################################################
#########################################################################
as.data.frame(100*round(table(mydata$Ethnicity)/length(mydata$Ethnicity),4))%>%
kbl(col.names = c("Ethnicity", "%"))%>%kable_classic(full_width=F)
| Ethnicity | % |
|---|---|
| Hispanic | 49.51 |
| Non-Hispanic | 46.60 |
| Prefer not to respond | 3.88 |
#########################################################################
#########################################################################
as.data.frame(100*round(table(mydata$Age)/length(mydata$Age),4))%>%
kbl(col.names = c("Age", "%"))%>%kable_classic(full_width=F)
| Age | % |
|---|---|
| 18 to 24 | 6.80 |
| 25 to 34 | 18.45 |
| 35 to 44 | 27.18 |
| 45 to 64 | 39.32 |
| 65 and over | 6.80 |
| Prefer not to respond | 1.46 |
#########################################################################
#########################################################################
as.data.frame(100*round(table(mydata$Profession)/length(mydata$Profession),4))%>%
kbl(col.names = c("Profession", "%"))%>%kable_classic(full_width=F)
| Profession | % |
|---|---|
| CHW | 25.24 |
| DVM | 4.37 |
| MD/DO | 34.95 |
| NP/PA | 2.91 |
| Other | 32.52 |
#########################################################################
#########################################################################
as.data.frame(100*round(table(mydata$Specialization)/length(mydata$Specialization),4))%>%
kbl(col.names = c("Specialization", "%"))%>%kable_classic(full_width=F)
| Specialization | % |
|---|---|
| 52.91 | |
| Air Force idmt | 0.49 |
| Air Force IDMT | 0.49 |
| Biomedicine | 0.49 |
| Community health | 17.96 |
| DC | 0.49 |
| economist | 0.49 |
| Economist | 0.49 |
| Epidemiologist | 1.46 |
| FSC | 0.49 |
| Infectious disease,Cardiology,General practitioner/Family physician,Community health | 0.49 |
| LVN | 0.49 |
| Microbiologist | 0.49 |
| MLS | 0.49 |
| Other / Does not apply | 5.34 |
| Ph.D. / Post-Grad / Faculty | 5.34 |
| PharmD / MPharm / Pharm Student | 5.83 |
| PT, MHA, PhD | 0.49 |
| Public Health | 1.94 |
| R&D Industry | 0.49 |
| RCS | 0.49 |
| Student | 1.94 |
| Zoonosis Control Program Specialist | 0.49 |
#########################################################################
#########################################################################
myt=table(mydata$PrePost,mydata$Knowledge)
myt=myt/rowSums(myt)
colnames(myt)=c("None", "Very Limited", "Limited", "Good", "Excellent")
row.names(myt)=c("Pre","Post")
myt=round(100*myt, 4)
myt%>%
kbl()%>%kable_classic(full_width=F)
| None | Very Limited | Limited | Good | Excellent | |
|---|---|---|---|---|---|
| Pre | 8.3871 | 16.7742 | 34.1935 | 33.5484 | 7.0968 |
| Post | 0.0000 | 5.8824 | 23.5294 | 56.8627 | 13.7255 |
#########################################################################
#########################################################################
myt=table(mydata$PrePost,mydata$Recent)
myt=myt/rowSums(myt)
colnames(myt)=c("Not at all Confident", "Somewhat Confident", "Confident", "Very Confident")
row.names(myt)=c("Pre","Post")
myt=round(100*myt, 4)
myt%>%
kbl()%>%kable_classic(full_width=F)
| Not at all Confident | Somewhat Confident | Confident | Very Confident | |
|---|---|---|---|---|
| Pre | 36.7742 | 35.4839 | 19.3548 | 8.3871 |
| Post | 1.9608 | 19.6078 | 54.9020 | 23.5294 |
#########################################################################
mydata$PrePost2=mydata$PrePost
mydata$PrePost=as.factor(mydata$PrePost)
levels(mydata$PrePost)=c("Pre", "Post")
boxplot(mydata$Score~mydata$PrePost, main="Knowledge Score, Pre vs. Post",notch=TRUE, col=c("red", "dark green"), horizontal = TRUE)
Test questions are uncorrelated.
#########################################################################
mycorr=cor(mydata[, c(10:19)])
corfunction(mycorr)
#########################################################################
We would expect poor performance on the pre-test scores. Students are likely to have only 3308 as the basis for knowledge.
#########################################################################
pre=round(describe(mydata[mydata$PrePost=="Pre",10:19]), 3)
pre%>%kbl(caption="Pre-Test")%>%kable_classic(full_width = F, html_font = "Cambria")
| vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Texas | 1 | 155 | 0.981 | 0.138 | 1 | 1.000 | 0 | 0 | 1 | 1 | -6.910 | 46.047 | 0.011 |
| Cause | 2 | 155 | 0.794 | 0.406 | 1 | 0.864 | 0 | 0 | 1 | 1 | -1.436 | 0.064 | 0.033 |
| Saliva | 3 | 155 | 0.374 | 0.485 | 0 | 0.344 | 0 | 0 | 1 | 1 | 0.515 | -1.746 | 0.039 |
| Location | 4 | 155 | 0.890 | 0.314 | 1 | 0.984 | 0 | 0 | 1 | 1 | -2.474 | 4.148 | 0.025 |
| Prevalence | 5 | 155 | 0.465 | 0.500 | 0 | 0.456 | 0 | 0 | 1 | 1 | 0.141 | -1.993 | 0.040 |
| Onset | 6 | 155 | 0.710 | 0.455 | 1 | 0.760 | 0 | 0 | 1 | 1 | -0.915 | -1.170 | 0.037 |
| Symptoms | 7 | 155 | 0.271 | 0.446 | 0 | 0.216 | 0 | 0 | 1 | 1 | 1.021 | -0.964 | 0.036 |
| Diagnosis | 8 | 155 | 0.600 | 0.491 | 1 | 0.624 | 0 | 0 | 1 | 1 | -0.404 | -1.848 | 0.039 |
| AntiT_Drugs | 9 | 155 | 0.710 | 0.455 | 1 | 0.760 | 0 | 0 | 1 | 1 | -0.915 | -1.170 | 0.037 |
| Prevention | 10 | 155 | 0.277 | 0.449 | 0 | 0.224 | 0 | 0 | 1 | 1 | 0.985 | -1.037 | 0.036 |
#########################################################################
We would hope that our work teaching the students resulted in better scores. These are the raw descriptives. We will look at pre-post later.
#########################################################################
post=round(describe(mydata[mydata$PrePost=="Post",10:19]), 3)
pre%>%kbl(caption="Post-Test")%>%kable_classic(full_width = F, html_font = "Cambria")
| vars | n | mean | sd | median | trimmed | mad | min | max | range | skew | kurtosis | se | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Texas | 1 | 155 | 0.981 | 0.138 | 1 | 1.000 | 0 | 0 | 1 | 1 | -6.910 | 46.047 | 0.011 |
| Cause | 2 | 155 | 0.794 | 0.406 | 1 | 0.864 | 0 | 0 | 1 | 1 | -1.436 | 0.064 | 0.033 |
| Saliva | 3 | 155 | 0.374 | 0.485 | 0 | 0.344 | 0 | 0 | 1 | 1 | 0.515 | -1.746 | 0.039 |
| Location | 4 | 155 | 0.890 | 0.314 | 1 | 0.984 | 0 | 0 | 1 | 1 | -2.474 | 4.148 | 0.025 |
| Prevalence | 5 | 155 | 0.465 | 0.500 | 0 | 0.456 | 0 | 0 | 1 | 1 | 0.141 | -1.993 | 0.040 |
| Onset | 6 | 155 | 0.710 | 0.455 | 1 | 0.760 | 0 | 0 | 1 | 1 | -0.915 | -1.170 | 0.037 |
| Symptoms | 7 | 155 | 0.271 | 0.446 | 0 | 0.216 | 0 | 0 | 1 | 1 | 1.021 | -0.964 | 0.036 |
| Diagnosis | 8 | 155 | 0.600 | 0.491 | 1 | 0.624 | 0 | 0 | 1 | 1 | -0.404 | -1.848 | 0.039 |
| AntiT_Drugs | 9 | 155 | 0.710 | 0.455 | 1 | 0.760 | 0 | 0 | 1 | 1 | -0.915 | -1.170 | 0.037 |
| Prevention | 10 | 155 | 0.277 | 0.449 | 0 | 0.224 | 0 | 0 | 1 | 1 | 0.985 | -1.037 | 0.036 |
#########################################################################
We compare pre-means versus post-means
mydf=data.frame("Pre-test"=pre$mean, "Post-test"=post$mean)
rownames(mydf)=colnames(mydata[10:19])
mydf%>%kbl(caption="Comparison of Means")%>%kable_classic(full_width = F, html_font = "Cambria")
| Pre.test | Post.test | |
|---|---|---|
| Texas | 0.981 | 1.000 |
| Cause | 0.794 | 0.980 |
| Saliva | 0.374 | 0.608 |
| Location | 0.890 | 0.980 |
| Prevalence | 0.465 | 0.765 |
| Onset | 0.710 | 0.784 |
| Symptoms | 0.271 | 0.235 |
| Diagnosis | 0.600 | 0.569 |
| AntiT_Drugs | 0.710 | 0.882 |
| Prevention | 0.277 | 0.235 |
#########################################################################
myf=function(x,y){
myt=t.test(x, y)
newp=round(p.adjust(myt$p.value),3)
a=c(round(myt$estimate[1],3),round(myt$estimate[2],3),
round(myt$conf.int[1],3),
round(myt$conf.int[2],3),round(myt$statistic,3),
round(myt$parameter,3),round(newp,3))
return(a)
}
p1=mydata[mydata$PrePost=="Pre",]
p2=mydata[mydata$PrePost=="Post",]
a=matrix(rep(NA, 7*11), 11)
for (i in 1:11){a[i,1:7]=myf(p1[,i+9], p2[,i+9])}
a=as.data.frame(a)
for (i in 1:6){a[,i]=as.numeric(a[,i])}
rownames(a)=colnames(mydata[10:20])
colnames(a)=c("Mean Pre","Mean Post","Lower 95% CI", "Upper 95% CI", "t-Value", "df", "Holm-Adjusted p")
a%>%kbl()%>%kable_classic()
| Mean Pre | Mean Post | Lower 95% CI | Upper 95% CI | t-Value | df | Holm-Adjusted p | |
|---|---|---|---|---|---|---|---|
| Texas | 0.981 | 1.000 | -0.041 | 0.003 | -1.743 | 154.000 | 0.083 |
| Cause | 0.794 | 0.980 | -0.262 | -0.112 | -4.910 | 203.544 | 0.000 |
| Saliva | 0.374 | 0.608 | -0.391 | -0.076 | -2.947 | 84.201 | 0.004 |
| Location | 0.890 | 0.980 | -0.153 | -0.027 | -2.822 | 186.353 | 0.005 |
| Prevalence | 0.465 | 0.765 | -0.443 | -0.157 | -4.157 | 98.513 | 0.000 |
| Onset | 0.710 | 0.784 | -0.211 | 0.062 | -1.086 | 92.658 | 0.280 |
| Symptoms | 0.271 | 0.235 | -0.103 | 0.175 | 0.511 | 88.354 | 0.611 |
| Diagnosis | 0.600 | 0.569 | -0.129 | 0.191 | 0.390 | 84.059 | 0.697 |
| AntiT_Drugs | 0.710 | 0.882 | -0.288 | -0.057 | -2.955 | 119.142 | 0.004 |
| Prevention | 0.277 | 0.235 | -0.097 | 0.181 | 0.602 | 88.935 | 0.549 |
| Score | 0.607 | 0.704 | -0.148 | -0.046 | -3.763 | 120.345 | 0.000 |
p1=mydata[mydata$Profession=="CHW",]
p2=mydata[mydata$Profession!="CHW",]
a=matrix(rep(NA, 7*11), 11)
for (i in 1:11){a[i,1:7]=myf(p1[,i+9], p2[,i+9])}
a=as.data.frame(a)
for (i in 1:6){a[,i]=as.numeric(a[,i])}
rownames(a)=colnames(mydata[10:20])
colnames(a)=c("Mean CHW","Mean non-CHW","Lower 95% CI", "Upper 95% CI", "t-Value", "df", "Holm-Adjusted p")
a%>%kbl()%>%kable_classic()
| Mean CHW | Mean non-CHW | Lower 95% CI | Upper 95% CI | t-Value | df | Holm-Adjusted p | |
|---|---|---|---|---|---|---|---|
| Texas | 0.962 | 0.994 | -0.087 | 0.024 | -1.154 | 57.039 | 0.253 |
| Cause | 0.712 | 0.883 | -0.308 | -0.035 | -2.503 | 68.887 | 0.015 |
| Saliva | 0.462 | 0.422 | -0.120 | 0.199 | 0.491 | 86.736 | 0.625 |
| Location | 0.904 | 0.916 | -0.105 | 0.082 | -0.250 | 83.279 | 0.803 |
| Prevalence | 0.481 | 0.558 | -0.238 | 0.083 | -0.963 | 86.971 | 0.338 |
| Onset | 0.404 | 0.838 | -0.583 | -0.284 | -5.792 | 71.171 | 0.000 |
| Symptoms | 0.038 | 0.338 | -0.391 | -0.207 | -6.398 | 197.006 | 0.000 |
| Diagnosis | 0.442 | 0.643 | -0.359 | -0.042 | -2.519 | 84.833 | 0.014 |
| AntiT_Drugs | 0.769 | 0.747 | -0.114 | 0.159 | 0.327 | 89.875 | 0.744 |
| Prevention | 0.173 | 0.299 | -0.254 | 0.003 | -1.944 | 104.604 | 0.055 |
| Score | 0.535 | 0.664 | -0.185 | -0.073 | -4.606 | 97.956 | 0.000 |
#########################################################################
library(lmtest)
## Loading required package: zoo
##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
mydata$CHW=mydata$Profession
mydata$CHW=rep(0, nrow(mydata))
mydata$CHW[mydata$Profession=="CHW"]=1
mydata$CHW=as.numeric(mydata$CHW)
mydata$Female=as.numeric(mydata$Gender)
mydata$Female[mydata$Female==2]=0
mylm=lm(Score~Age+Female+Ethnicity+Knowledge+Recent+CHW+PrePost2, data=mydata)
summary(mylm)$coefficients%>%kbl()%>%kable_classic(html_font = 'Cambria')
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | 0.2081394 | 0.0568646 | 3.6602617 | 0.0003252 |
| Age25 to 34 | 0.2330511 | 0.0482367 | 4.8314091 | 0.0000028 |
| Age35 to 44 | 0.1677854 | 0.0479785 | 3.4970959 | 0.0005837 |
| Age45 to 64 | 0.1702103 | 0.0460639 | 3.6950899 | 0.0002862 |
| Age65 and over | 0.1741708 | 0.0604918 | 2.8792446 | 0.0044363 |
| AgePrefer not to respond | 0.1916403 | 0.1010143 | 1.8971607 | 0.0592999 |
| Female | -0.0169473 | 0.0254994 | -0.6646171 | 0.5070888 |
| EthnicityNon-Hispanic | 0.0957541 | 0.0284595 | 3.3645727 | 0.0009248 |
| EthnicityPrefer not to respond | -0.0192610 | 0.0610587 | -0.3154513 | 0.7527599 |
| Knowledge | 0.0637281 | 0.0157578 | 4.0442290 | 0.0000758 |
| Recent | 0.0039090 | 0.0170409 | 0.2293894 | 0.8188091 |
| CHW | -0.0685608 | 0.0332813 | -2.0600388 | 0.0407367 |
| PrePost2 | 0.0787416 | 0.0286512 | 2.7482844 | 0.0065591 |
summary(mylm)
##
## Call:
## lm(formula = Score ~ Age + Female + Ethnicity + Knowledge + Recent +
## CHW + PrePost2, data = mydata)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.44242 -0.10403 -0.00328 0.10646 0.44117
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.208139 0.056865 3.660 0.000325 ***
## Age25 to 34 0.233051 0.048237 4.831 2.76e-06 ***
## Age35 to 44 0.167785 0.047979 3.497 0.000584 ***
## Age45 to 64 0.170210 0.046064 3.695 0.000286 ***
## Age65 and over 0.174171 0.060492 2.879 0.004436 **
## AgePrefer not to respond 0.191640 0.101014 1.897 0.059300 .
## Female -0.016947 0.025499 -0.665 0.507089
## EthnicityNon-Hispanic 0.095754 0.028460 3.365 0.000925 ***
## EthnicityPrefer not to respond -0.019261 0.061059 -0.315 0.752760
## Knowledge 0.063728 0.015758 4.044 7.58e-05 ***
## Recent 0.003909 0.017041 0.229 0.818809
## CHW -0.068561 0.033281 -2.060 0.040737 *
## PrePost2 0.078742 0.028651 2.748 0.006559 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1509 on 193 degrees of freedom
## Multiple R-squared: 0.4251, Adjusted R-squared: 0.3893
## F-statistic: 11.89 on 12 and 193 DF, p-value: < 2.2e-16
hist(mylm$residuals, col="blue", main="Residuals")
Ethnicity, previous knowledge, and pre-post status are the primary predictors for the subscores.
attach(mydata)
myt=powerTransform(cbind(Texas, Cause, Saliva, Location, Prevalence,
Onset, Symptoms, Diagnosis, AntiT_Drugs, Prevention)+.1)
mydata$nTexas=(mydata$Texas+.1)^myt$lambda[1]
mydata$nCause=(mydata$Cause+.1)^myt$lambda[2]
mydata$nSaliva=(mydata$Saliva+.1)^myt$lambda[3]
mydata$nLocation=(mydata$Location+.1)^myt$lambda[4]
mydata$nPrevalence=(mydata$Prevalence+.1)^myt$lambda[5]
mydata$nOnset=(mydata$Onset+.1)^myt$lambda[6]
mydata$nSymptoms=(mydata$Symptoms+.1)^myt$lambda[7]
mydata$nDiagnosis=(mydata$Diagnosis+.1)^myt$lambda[8]
mydata$nAntiT_Drugs=(mydata$AntiT_Drugs+.1)^myt$lambda[9]
mydata$nPrevention=(mydata$Prevention+.1)^myt$lambda[10]
res.man <- manova(cbind(nTexas, nCause, nSaliva, nLocation, nPrevalence,
nOnset, nSymptoms, nDiagnosis, nAntiT_Drugs, nPrevention) ~
Gender+Ethnicity+PrePost, data = mydata)
summary(res.man, intercept=TRUE)
## Df Pillai approx F num Df den Df Pr(>F)
## (Intercept) 1 0.99261 2580.60 10 192 < 2.2e-16 ***
## Gender 1 0.08047 1.68 10 192 0.0877653 .
## Ethnicity 2 0.24541 2.70 20 386 0.0001262 ***
## PrePost 1 0.15831 3.61 10 192 0.0002023 ***
## Residuals 201
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
summary.aov(res.man, intercept = TRUE)
## Response nTexas :
## Df Sum Sq Mean Sq F value Pr(>F)
## (Intercept) 1 47008 47008 13782.8521 <2e-16 ***
## Gender 1 4 4 1.0964 0.2963
## Ethnicity 2 1 0 0.1258 0.8819
## PrePost 1 5 5 1.3395 0.2485
## Residuals 201 686 3
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response nCause :
## Df Sum Sq Mean Sq F value Pr(>F)
## (Intercept) 1 237.291 237.291 1165.7210 < 2.2e-16 ***
## Gender 1 0.001 0.001 0.0071 0.9329440
## Ethnicity 2 1.438 0.719 3.5317 0.0310832 *
## PrePost 1 2.682 2.682 13.1769 0.0003596 ***
## Residuals 201 40.915 0.204
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response nSaliva :
## Df Sum Sq Mean Sq F value Pr(>F)
## (Intercept) 1 575.80 575.80 1634.1116 < 2.2e-16 ***
## Gender 1 0.02 0.02 0.0628 0.8023148
## Ethnicity 2 2.79 1.40 3.9611 0.0205464 *
## PrePost 1 4.05 4.05 11.4943 0.0008403 ***
## Residuals 201 70.82 0.35
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response nLocation :
## Df Sum Sq Mean Sq F value Pr(>F)
## (Intercept) 1 426.14 426.14 2166.0037 < 2e-16 ***
## Gender 1 0.04 0.04 0.2033 0.65253
## Ethnicity 2 0.27 0.14 0.6895 0.50301
## PrePost 1 0.94 0.94 4.7961 0.02967 *
## Residuals 201 39.54 0.20
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response nPrevalence :
## Df Sum Sq Mean Sq F value Pr(>F)
## (Intercept) 1 146.516 146.516 4658.4490 < 2.2e-16 ***
## Gender 1 0.068 0.068 2.1727 0.142047
## Ethnicity 2 0.384 0.192 6.1060 0.002665 **
## PrePost 1 0.630 0.630 20.0440 1.267e-05 ***
## Residuals 201 6.322 0.031
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response nOnset :
## Df Sum Sq Mean Sq F value Pr(>F)
## (Intercept) 1 144.935 144.935 686.6143 < 2.2e-16 ***
## Gender 1 1.850 1.850 8.7658 0.0034385 **
## Ethnicity 2 3.099 1.550 7.3411 0.0008373 ***
## PrePost 1 0.733 0.733 3.4729 0.0638400 .
## Residuals 201 42.429 0.211
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response nSymptoms :
## Df Sum Sq Mean Sq F value Pr(>F)
## (Intercept) 1 71593 71593 749.1910 < 2.2e-16 ***
## Gender 1 448 448 4.6902 0.03151 *
## Ethnicity 2 3431 1715 17.9514 6.713e-08 ***
## PrePost 1 15 15 0.1596 0.68995
## Residuals 201 19208 96
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response nDiagnosis :
## Df Sum Sq Mean Sq F value Pr(>F)
## (Intercept) 1 118.109 118.109 976.5792 <2e-16 ***
## Gender 1 0.146 0.146 1.2079 0.2731
## Ethnicity 2 0.490 0.245 2.0245 0.1348
## PrePost 1 0.000 0.000 0.0022 0.9625
## Residuals 201 24.309 0.121
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response nAntiT_Drugs :
## Df Sum Sq Mean Sq F value Pr(>F)
## (Intercept) 1 158.505 158.505 694.9111 < 2.2e-16 ***
## Gender 1 0.179 0.179 0.7828 0.377352
## Ethnicity 2 0.921 0.460 2.0178 0.135628
## PrePost 1 1.675 1.675 7.3453 0.007305 **
## Residuals 201 45.847 0.228
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Response nPrevention :
## Df Sum Sq Mean Sq F value Pr(>F)
## (Intercept) 1 59243 59243 623.5895 <2e-16 ***
## Gender 1 6 6 0.0589 0.8086
## Ethnicity 2 284 142 1.4958 0.2266
## PrePost 1 15 15 0.1597 0.6899
## Residuals 201 19096 95
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1