Last chance! 50% off unlimited learning
Sale ends in
This function tests if a user-defined summary differs when applied to simulated / observed data.
testGeneric(simulationOutput, summary, alternative = c("two.sided",
"greater", "less"), plot = T,
methodName = "DHARMa generic simulation test")
an object of class DHARMa with simulated quantile residuals, either created via simulateResiduals
or by createDHARMa
for simulations created outside DHARMa
a function that can be applied to simulated / observed data. See examples below
a character string specifying whether the test should test if observations are "greater", "less" or "two.sided" compared to the simulated null hypothesis
whether to plot the simulated summary
name of the test (will be used in plot)
This function tests if a user-defined summary differs when applied to simulated / observed data. the function can easily be remodeled to apply summaries on the residuals, by simply defining f = function(x) summary (x - predictions), as done in testDispersion
testResiduals
, testUniformity
, testOutliers
, testDispersion
, testZeroInflation
, testTemporalAutocorrelation
, testSpatialAutocorrelation
# NOT RUN {
# creating test data
testData = createData(sampleSize = 200, overdispersion = 0.5, randomEffectVariance = 0)
fittedModel <- glm(observedResponse ~ Environment1 , family = "poisson", data = testData)
simulationOutput <- simulateResiduals(fittedModel = fittedModel)
plot(simulationOutput, quantreg = FALSE)
###### Distribution tests #####
testUniformity(simulationOutput)
###### Dispersion tests #######
testDispersion(simulationOutput, alternative = "less") # underdispersion
###### Both together###########
testResiduals(simulationOutput)
###### Special tests ##########
# testing zero inflation
testZeroInflation(simulationOutput)
# testing generic summaries
countOnes <- function(x) sum(x == 1) # testing for number of 1s
testGeneric(simulationOutput, summary = countOnes) # 1-inflation
testGeneric(simulationOutput, summary = countOnes, alternative = "less") # 1-deficit
means <- function(x) mean(x) # testing if mean prediction fits
testGeneric(simulationOutput, summary = means)
spread <- function(x) sd(x) # testing if mean sd fits
testGeneric(simulationOutput, summary = spread)
###### Refited ##############
# if model is refitted, a different test will be called
simulationOutput <- simulateResiduals(fittedModel = fittedModel, refit = TRUE, seed = 12)
testDispersion(simulationOutput)
###### Test per group ##############
simulationOutput = recalculateResiduals(simulationOutput, group = testData$group)
testDispersion(simulationOutput)
# }
Run the code above in your browser using DataLab