Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # suggested by http://slatestarcodex.com/2014/02/16/nootropics-survey-results-and-analysis/#comment-40637
- library(reshape)
- library(lme4)
- nootropics <- read.csv("http://dl.dropboxusercontent.com/u/182368464/2014-ssc-nootropicssurvey.csv")
- # not going to mess with doses or schedules: just want the ratings
- nootropicsResponses <- with(nootropics, data.frame (AdrafinilExperience=AdrafinilExperience, AniracetamExperience=AniracetamExperience, ArmodafinilExperience=ArmodafinilExperience, AshwagandhaExperience=AshwagandhaExperience, BacopaExperience=BacopaExperience, CILTEPExperience=CILTEPExperience, CaffeineExperience=CaffeineExperience, CentrophenoxineExperience=CentrophenoxineExperience, CholineExperience=CholineExperience, ColuracetamExperience=ColuracetamExperience, CreatineExperience=CreatineExperience, DMAEExperience=DMAEExperience, GingkoExperience=GingkoExperience, GinsengExperience=GinsengExperience, HordenineExperience=HordenineExperience, HuperzineExperience=HuperzineExperience, LionapossManeExperience=LionapossManeExperience, MCTOilExperience=MCTOilExperience, ModafinilExperience=ModafinilExperience, NoopeptExperience=NoopeptExperience, OxiracetamExperience=OxiracetamExperience, PhenylpiracetamExperience=PhenylpiracetamExperience, PiracetamExperience=PiracetamExperience, PramiracetamExperience=PramiracetamExperience, RhodiolaExperience=RhodiolaExperience, SulbutiamineExperience=SulbutiamineExperience, TULIPExperience=TULIPExperience, TheanineExperience=TheanineExperience, VinpocetineExperience=VinpocetineExperience, VitaminDExperience=VitaminDExperience ))
- # convert each of the '*Experience' columns into a single level of a generic 'Nootropic' factor
- long <- reshape(nootropicsResponses, idvar = "Subject", v.names="Response", timevar="Nootropic", times=names(nootropicsResponses), varying=list(names(nootropicsResponses)), direction = "long")
- summary(long)
- Nootropic Response Subject
- Length:4620 Min. : 0 Min. : 1.0
- Class :character 1st Qu.: 3 1st Qu.: 39.0
- Mode :character Median : 6 Median : 77.5
- Mean : 5 Mean : 77.5
- 3rd Qu.: 8 3rd Qu.:116.0
- Max. :10 Max. :154.0
- NA's :3561
- # non-nested design: we're examining a crossover design of Subject x Nootropics, not a nested design like Subject(Nootropics).
- # Nootropics is a random effect: each level/nootropics gets its own estimate; and likewise, each Subject gets their own estimate
- # see http://www.jstatsoft.org/v20/i02/paper "Estimating the Multilevel Rasch Model: With the lme4 Package" for another example
- lmr1 <- lmer(Response ~ (1|Subject) + (1|Nootropic), data=long); summary(lmr1)
- ...REML criterion at convergence: 4875
- Random effects:
- Groups Name Variance Std.Dev.
- Subject (Intercept) 2.98 1.73
- Nootropic (Intercept) 1.24 1.11
- Residual 4.42 2.10
- Number of obs: 1059, groups: Subject, 150; Nootropic, 30
- Fixed effects:
- Estimate Std. Error t value
- (Intercept) 4.995 0.271 18.4
- # do Subjects really vary enough to justify 154 random effects rather than 1 fixed effects?
- lmr2 <- lmer(Response ~ Subject + (1|Nootropic), data=long)
- # yes:
- anova(lmr1, lmr2)
- ...lmr1: Response ~ (1 | Subject) + (1 | Nootropic)
- lmr2: Response ~ Subject + (1 | Nootropic)
- Df AIC BIC logLik deviance Chisq Chi Df Pr(>Chisq)
- lmr1 4 4882 4902 -2437 4874
- lmr2 4 5162 5182 -2577 5154 0 0 1
- # extract the random effects for both Subjects & Nootropics
- rr <- ranef(lmr1, postVar=TRUE)
- # visualize the two sets of random-effects
- qq <- qqmath(rr)
- qq$Nootropic
- # http://i.imgur.com/PmrHwqA.png
- qq$Subject
- # http://i.imgur.com/a0nJiOk.png
- # view nootropics sorted by coefficient size
- noots <- rr$Nootropic
- noots[order(noots$'(Intercept)'), , drop = FALSE]
- (Intercept)
- GingkoExperience -1.85454
- DMAEExperience -1.84701
- GinsengExperience -1.13313
- CholineExperience -1.08120
- HordenineExperience -0.90128
- VinpocetineExperience -0.87606
- HuperzineExperience -0.72931
- LionapossManeExperience -0.72782
- VitaminDExperience -0.51186
- MCTOilExperience -0.46230
- BacopaExperience -0.41610
- CentrophenoxineExperience -0.33918
- CILTEPExperience -0.26260
- PiracetamExperience -0.10523
- SulbutiamineExperience -0.02941
- OxiracetamExperience 0.08505
- AshwagandhaExperience 0.09323
- AniracetamExperience 0.10354
- NoopeptExperience 0.16937
- CreatineExperience 0.29738
- PramiracetamExperience 0.36177
- RhodiolaExperience 0.44556
- PhenylpiracetamExperience 0.50122
- AdrafinilExperience 0.59758
- TheanineExperience 0.63526
- ColuracetamExperience 0.69391
- TULIPExperience 0.80629
- CaffeineExperience 1.58431
- ModafinilExperience 2.39321
- ArmodafinilExperience 2.50935
- # what does the alternate version look like?
- rr2 <- ranef(lmr2, postVar=TRUE)
- noots2 <- rr2$Nootropic
- noots2[order(noots2$'(Intercept)'), , drop = FALSE]
- (Intercept)
- GingkoExperience -1.399810
- GinsengExperience -1.188626
- CholineExperience -0.978048
- DMAEExperience -0.954214
- VitaminDExperience -0.901817
- LionapossManeExperience -0.662886
- VinpocetineExperience -0.611086
- MCTOilExperience -0.457433
- HuperzineExperience -0.437104
- BacopaExperience -0.320166
- HordenineExperience -0.241617
- CentrophenoxineExperience -0.233822
- PiracetamExperience -0.148546
- AshwagandhaExperience -0.135738
- SulbutiamineExperience -0.015350
- CILTEPExperience 0.003327
- CreatineExperience 0.012964
- TULIPExperience 0.144545
- RhodiolaExperience 0.207083
- AniracetamExperience 0.326791
- PramiracetamExperience 0.354544
- OxiracetamExperience 0.374706
- NoopeptExperience 0.407759
- TheanineExperience 0.515546
- PhenylpiracetamExperience 0.568206
- AdrafinilExperience 0.594847
- ColuracetamExperience 0.778954
- CaffeineExperience 1.234636
- ArmodafinilExperience 1.456277
- ModafinilExperience 1.706078
- # What did correcting for subject-specific ratings buy us?
- # How much did nootropic rankings or estimates change from
- # the alternative?
- subjectDelta <- rr$Nootropic - rr2$Nootropic
- sum(subjectDelta$'(Intercept)')
- [1] 1.767e-12
- subjectDelta[order(subjectDelta$'(Intercept)'), , drop = FALSE]
- (Intercept)
- DMAEExperience -0.892796
- HordenineExperience -0.659664
- GingkoExperience -0.454732
- HuperzineExperience -0.292204
- OxiracetamExperience -0.289652
- CILTEPExperience -0.265925
- VinpocetineExperience -0.264976
- NoopeptExperience -0.238387
- AniracetamExperience -0.223253
- CentrophenoxineExperience -0.105358
- CholineExperience -0.103155
- BacopaExperience -0.095930
- ColuracetamExperience -0.085046
- PhenylpiracetamExperience -0.066984
- LionapossManeExperience -0.064930
- SulbutiamineExperience -0.014057
- MCTOilExperience -0.004862
- AdrafinilExperience 0.002729
- PramiracetamExperience 0.007223
- PiracetamExperience 0.043313
- GinsengExperience 0.055499
- TheanineExperience 0.119715
- AshwagandhaExperience 0.228967
- RhodiolaExperience 0.238472
- CreatineExperience 0.284411
- CaffeineExperience 0.349678
- VitaminDExperience 0.389960
- TULIPExperience 0.661741
- ModafinilExperience 0.687129
- ArmodafinilExperience 1.053072
- # so the biggest difference was DMAE falls by +1 rating
- # and Armodafinil looks better by +1 (and Modafinil improves too)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement