This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code. When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Cmd+Shift+K to preview the HTML file).

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Cmd+Shift+Enter.

Reading in the data

library(plyr)
-------------------------------------------------------------------------------
You have loaded plyr after dplyr - this is likely to cause problems.
If you need functions from both plyr and dplyr, please load plyr first, then dplyr:
library(plyr); library(dplyr)
-------------------------------------------------------------------------------

Attaching package: ‘plyr’

The following object is masked from ‘package:mosaic’:

    count

The following objects are masked from ‘package:dplyr’:

    arrange, count, desc, failwith, id, mutate, rename, summarise,
    summarize
library(fastR)
library(knitr)
library(ggplot2)
library(ez)
raw <- read.csv("/Users/msb/Dropbox (Stanford HCI)/projects/dreamteam/dreamteam_data_raw.csv")
colnames(raw) <- c("condition", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11")
raw$teamid<-rownames(raw)
raw$condition <- factor(raw$condition, levels= c('self-managing', 'self-choosing', 'manager', 'dreamMAB', 'dreamteam'))
raw$improvement <- raw$r11 - raw$r1
raw$aggregate <- rowMeans(subset(raw, select = c("r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11")), na.rm = TRUE)
rawtall<-make.rm(constant=c("teamid", "condition"),repeated=c("r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"), data=raw)
colnames(rawtall) <- c("teamid","condition","score","round")
rawtall$round <- factor(rawtall$round, levels=c('T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11'))
joined<-join(rawtall, raw, by="teamid")
joined<-subset(joined, round!="T1", select = -c(r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, improvement, aggregate) )
head(joined)

Generating means and stdevs:

summary <- ddply(joined, .(condition), summarise, 
                 mean_score=mean(score),
                 sd_score=sd(score),
                 se_score=sd(score)/sqrt(length(score)))
kable(summary, caption="Summary statistics")

condition mean_score sd_score se_score
self-managing 4.777778 2.124114 0.2239013
self-choosing 4.555556 2.244149 0.2365541
manager 4.522222 2.001279 0.2109534
dreamMAB 4.677778 2.192058 0.2310632
dreamteam 6.611111 1.304223 0.1374772

summary_last <- ddply(subset(joined, round="T11"), .(condition), summarise, 
                 mean_score=mean(score),
                 sd_score=sd(score),
                 se_score=sd(score)/sqrt(length(score)))
kable(summary_last, caption="Summary statistic for final round")
condition mean_score sd_score se_score
self-managing 4.777778 2.124114 0.2239013
self-choosing 4.555556 2.244149 0.2365541
manager 4.522222 2.001279 0.2109534
dreamMAB 4.677778 2.192058 0.2310632
dreamteam 6.611111 1.304223 0.1374772

Visualizations

The overall average score per team for rounds R2-R11:

ggplot(joined) + geom_bar(aes(x=joined$condition, y=joined$score, fill=joined$condition), position="dodge", stat="summary", fun.y="mean") + geom_errorbar(data=summary, aes(x=condition, ymin=mean_score-se_score, ymax=mean_score+se_score), width=.1, color="gray") + guides(fill=FALSE) + scale_fill_brewer()

Average score by round:

ggplot(rawtall) + geom_bar(aes(x=rawtall$round, y=rawtall$score), position="dodge", stat="summary", fun.y="mean")

Overall score histogram:

ggplot(rawtall, aes(score)) + geom_histogram()

RM-ANOVA

This model is a repeated measures analysis, with the DV as the score in each round. The subjects identifier is “teamid”. “condition” is a variable manipulated between subjects, and “r1” (round 1 score) is a covariate observed between subjects.

joinedaov <- ezANOVA(joined, score, teamid, between=condition, between_covariates=r1, return_aov=TRUE, detailed=TRUE)
Implementation of ANCOVA in this version of ez is experimental and not yet fully validated. Also, note that ANCOVA is intended purely as a tool to increase statistical power; ANCOVA can not eliminate confounds in the data. Specifically, covariates should: (1) be uncorrelated with other predictors and (2) should have effects on the DV that are independent of other predictors. Failure to meet these conditions may dramatically increase the rate of false-positives.Covariate"r1" is numeric and will therefore be fit to a linear effect.Collapsing data to cell means. *IF* the requested effects are a subset of the full design, you must use the "within_full" argument, else results may be inaccurate.
joinedaov$ANOVA
summary(joinedaov$aov)
            Df Sum Sq Mean Sq F value  Pr(>F)   
condition    4  34.96   8.741   5.664 0.00104 **
Residuals   40  61.73   1.543                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Posthoc tests:

TukeyHSD(joinedaov$aov, "condition", ordered=TRUE)
  Tukey multiple comparisons of means
    95% family-wise confidence level
    factor levels have been ordered

Fit: aov(formula = formula(aov_formula), data = data)

$condition
                                  diff        lwr      upr     p adj
self-choosing-manager       0.13030303 -1.5422454 1.802851 0.9994315
self-managing-manager       0.35252525 -1.3200232 2.025074 0.9739700
dreamMAB-manager            0.41414141 -1.2584070 2.086690 0.9536565
dreamteam-manager           2.39595960  0.7234112 4.068508 0.0017920
self-managing-self-choosing 0.22222222 -1.4503262 1.894771 0.9954160
dreamMAB-self-choosing      0.28383838 -1.3887101 1.956387 0.9883449
dreamteam-self-choosing     2.26565657  0.5931081 3.938205 0.0034273
dreamMAB-self-managing      0.06161616 -1.6109323 1.734165 0.9999710
dreamteam-self-managing     2.04343434  0.3708859 3.715983 0.0099230
dreamteam-dreamMAB          1.98181818  0.3092697 3.654367 0.0131771
LS0tCnRpdGxlOiAiRHJlYW1UZWFtIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiBXaGVuIHlvdSBzYXZlIHRoZSBub3RlYm9vaywgYW4gSFRNTCBmaWxlIGNvbnRhaW5pbmcgdGhlIGNvZGUgYW5kIG91dHB1dCB3aWxsIGJlIHNhdmVkIGFsb25nc2lkZSBpdCAoY2xpY2sgdGhlICpQcmV2aWV3KiBidXR0b24gb3IgcHJlc3MgKkNtZCtTaGlmdCtLKiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLgoKVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkNtZCtTaGlmdCtFbnRlciouIAoKIyBSZWFkaW5nIGluIHRoZSBkYXRhCmBgYHtyfQpsaWJyYXJ5KHBseXIpCmxpYnJhcnkoZmFzdFIpCmxpYnJhcnkoa25pdHIpCmxpYnJhcnkoZ2dwbG90MikKbGlicmFyeShleikKCnJhdyA8LSByZWFkLmNzdigiL1VzZXJzL21zYi9Ecm9wYm94IChTdGFuZm9yZCBIQ0kpL3Byb2plY3RzL2RyZWFtdGVhbS9kcmVhbXRlYW1fZGF0YV9yYXcuY3N2IikKY29sbmFtZXMocmF3KSA8LSBjKCJjb25kaXRpb24iLCAicjEiLCAicjIiLCAicjMiLCAicjQiLCAicjUiLCAicjYiLCAicjciLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIpCnJhdyR0ZWFtaWQ8LXJvd25hbWVzKHJhdykKCnJhdyRjb25kaXRpb24gPC0gZmFjdG9yKHJhdyRjb25kaXRpb24sIGxldmVscz0gYygnc2VsZi1tYW5hZ2luZycsICdzZWxmLWNob29zaW5nJywgJ21hbmFnZXInLCAnZHJlYW1NQUInLCAnZHJlYW10ZWFtJykpCnJhdyRpbXByb3ZlbWVudCA8LSByYXckcjExIC0gcmF3JHIxCnJhdyRhZ2dyZWdhdGUgPC0gcm93TWVhbnMoc3Vic2V0KHJhdywgc2VsZWN0ID0gYygicjEiLCAicjIiLCAicjMiLCAicjQiLCAicjUiLCAicjYiLCAicjciLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIpKSwgbmEucm0gPSBUUlVFKQoKcmF3dGFsbDwtbWFrZS5ybShjb25zdGFudD1jKCJ0ZWFtaWQiLCAiY29uZGl0aW9uIikscmVwZWF0ZWQ9YygicjEiLCAicjIiLCAicjMiLCAicjQiLCAicjUiLCAicjYiLCAicjciLCAicjgiLCAicjkiLCAicjEwIiwgInIxMSIpLCBkYXRhPXJhdykKY29sbmFtZXMocmF3dGFsbCkgPC0gYygidGVhbWlkIiwiY29uZGl0aW9uIiwic2NvcmUiLCJyb3VuZCIpCnJhd3RhbGwkcm91bmQgPC0gZmFjdG9yKHJhd3RhbGwkcm91bmQsIGxldmVscz1jKCdUMScsICdUMicsICdUMycsICdUNCcsICdUNScsICdUNicsICdUNycsICdUOCcsICdUOScsICdUMTAnLCAnVDExJykpCgpqb2luZWQ8LWpvaW4ocmF3dGFsbCwgcmF3LCBieT0idGVhbWlkIikKam9pbmVkPC1zdWJzZXQoam9pbmVkLCByb3VuZCE9IlQxIiwgc2VsZWN0ID0gLWMocjIsIHIzLCByNCwgcjUsIHI2LCByNywgcjgsIHI5LCByMTAsIHIxMSwgaW1wcm92ZW1lbnQsIGFnZ3JlZ2F0ZSkgKQpoZWFkKGpvaW5lZCkKYGBgCgpHZW5lcmF0aW5nIG1lYW5zIGFuZCBzdGRldnM6CmBgYHtyfQoKc3VtbWFyeSA8LSBkZHBseShqb2luZWQsIC4oY29uZGl0aW9uKSwgc3VtbWFyaXNlLCAKICAgICAgICAgICAgICAgICBtZWFuX3Njb3JlPW1lYW4oc2NvcmUpLAogICAgICAgICAgICAgICAgIHNkX3Njb3JlPXNkKHNjb3JlKSwKICAgICAgICAgICAgICAgICBzZV9zY29yZT1zZChzY29yZSkvc3FydChsZW5ndGgoc2NvcmUpKSkKCmthYmxlKHN1bW1hcnksIGNhcHRpb249IlN1bW1hcnkgc3RhdGlzdGljcyIpCgoKCnN1bW1hcnlfbGFzdCA8LSBkZHBseShzdWJzZXQoam9pbmVkLCByb3VuZD0iVDExIiksIC4oY29uZGl0aW9uKSwgc3VtbWFyaXNlLCAKICAgICAgICAgICAgICAgICBtZWFuX3Njb3JlPW1lYW4oc2NvcmUpLAogICAgICAgICAgICAgICAgIHNkX3Njb3JlPXNkKHNjb3JlKSwKICAgICAgICAgICAgICAgICBzZV9zY29yZT1zZChzY29yZSkvc3FydChsZW5ndGgoc2NvcmUpKSkKCmthYmxlKHN1bW1hcnlfbGFzdCwgY2FwdGlvbj0iU3VtbWFyeSBzdGF0aXN0aWMgZm9yIGZpbmFsIHJvdW5kIikKYGBgCgojIFZpc3VhbGl6YXRpb25zCgpUaGUgb3ZlcmFsbCBhdmVyYWdlIHNjb3JlIHBlciB0ZWFtIGZvciByb3VuZHMgUjItUjExOgpgYGB7cn0KZ2dwbG90KGpvaW5lZCkgKyBnZW9tX2JhcihhZXMoeD1qb2luZWQkY29uZGl0aW9uLCB5PWpvaW5lZCRzY29yZSwgZmlsbD1qb2luZWQkY29uZGl0aW9uKSwgcG9zaXRpb249ImRvZGdlIiwgc3RhdD0ic3VtbWFyeSIsIGZ1bi55PSJtZWFuIikgKyBnZW9tX2Vycm9yYmFyKGRhdGE9c3VtbWFyeSwgYWVzKHg9Y29uZGl0aW9uLCB5bWluPW1lYW5fc2NvcmUtc2Vfc2NvcmUsIHltYXg9bWVhbl9zY29yZStzZV9zY29yZSksIHdpZHRoPS4xLCBjb2xvcj0iZ3JheSIpICsgZ3VpZGVzKGZpbGw9RkFMU0UpICsgc2NhbGVfZmlsbF9icmV3ZXIoKQpgYGAKCkF2ZXJhZ2Ugc2NvcmUgYnkgcm91bmQ6CmBgYHtyfQpnZ3Bsb3QocmF3dGFsbCkgKyBnZW9tX2JhcihhZXMoeD1yYXd0YWxsJHJvdW5kLCB5PXJhd3RhbGwkc2NvcmUpLCBwb3NpdGlvbj0iZG9kZ2UiLCBzdGF0PSJzdW1tYXJ5IiwgZnVuLnk9Im1lYW4iKQpgYGAKCk92ZXJhbGwgc2NvcmUgaGlzdG9ncmFtOgpgYGB7cn0KZ2dwbG90KHJhd3RhbGwsIGFlcyhzY29yZSkpICsgZ2VvbV9oaXN0b2dyYW0oKQpgYGAKCgojIFJNLUFOT1ZBClRoaXMgbW9kZWwgaXMgYSByZXBlYXRlZCBtZWFzdXJlcyBhbmFseXNpcywgd2l0aCB0aGUgRFYgYXMgdGhlIHNjb3JlIGluIGVhY2ggcm91bmQuIFRoZSBzdWJqZWN0cyBpZGVudGlmaWVyIGlzICJ0ZWFtaWQiLiAiY29uZGl0aW9uIiBpcyBhIHZhcmlhYmxlIG1hbmlwdWxhdGVkIGJldHdlZW4gc3ViamVjdHMsIGFuZCAicjEiIChyb3VuZCAxIHNjb3JlKSBpcyBhIGNvdmFyaWF0ZSBvYnNlcnZlZCBiZXR3ZWVuIHN1YmplY3RzLgpgYGB7cn0Kam9pbmVkYW92IDwtIGV6QU5PVkEoam9pbmVkLCBzY29yZSwgdGVhbWlkLCBiZXR3ZWVuPWNvbmRpdGlvbiwgYmV0d2Vlbl9jb3ZhcmlhdGVzPXIxLCByZXR1cm5fYW92PVRSVUUsIGRldGFpbGVkPVRSVUUpCmpvaW5lZGFvdiRBTk9WQQpzdW1tYXJ5KGpvaW5lZGFvdiRhb3YpCmBgYAoKUG9zdGhvYyB0ZXN0czoKYGBge3J9ClR1a2V5SFNEKGpvaW5lZGFvdiRhb3YsICJjb25kaXRpb24iLCBvcmRlcmVkPVRSVUUpCmBgYAoK