dwarton/mvabund

univariate P's for anova.manylm

Opened this issue · 0 comments

Originally in an email from David to Julian, will close if fixed

This is a weird one in the C code.

For the below design, there are 3 reps in 2 treatments, so when using resampling the smallest P-value you should be able to get is 1/10 (10 possible permutations of 6 obs in 2 treatments). But the univariate P-value for the second response is 0.002.

My guess is that there is some floating point error in the code – we should be using statements like

t*>t-eps

rather than t*>=t

but perhaps in the code for univariate P-values this isn’t happening?

library(mvabund)
load("kos_bug.RData")
kos2

kosFac
# fitting a linear model to log-transformed proportions:
prop.mva = kos2.mva/kosFac$sampleTotals
kos2.lm = manylm(log(prop.mva) ~ condition, data = kosFac)
anova(kos2.lm,p.uni="unadjusted",nBoot=999)
Analysis of Variance Table

Model: manylm(formula = log(prop.mva) ~ condition, data = kosFac)

Overall test for all response variables
Test statistics:
            Res.Df Df.diff val(F) Pr(>F) 
(Intercept)      5                       
condition        4       1    282  0.094 .
---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 

Univariate Tests

Test statistics:

             K02014         K00059         K02033         K02034         K07316      

            F value Pr(>F) F value Pr(>F) F value Pr(>F) F value Pr(>F) F value Pr(>F)

(Intercept)                                                                          

condition    51.331  0.094 148.638  0.002  44.148  0.094  37.196  0.094   0.643  0.591

Arguments: with 999 resampling iterations using residual (without replacement) resampling and response assumed to be uncorrelated

kos_bug.rdata