Learn R Programming

DHARMa (version 0.1.3)

createData: Simulate test data

Description

This function creates synthetic dataset with various problems such as overdispersion, zero-inflation, etc.

Usage

createData(replicates = 1, sampleSize = 10, intercept = 0, fixedEffects = 1, quadraticFixedEffects = NULL, numGroups = 10, randomEffectVariance = 1, overdispersion = 0, family = poisson(), scale = 1, cor = 0, roundPoissonVariance = NULL, pZeroInflation = 0, binomialTrials = 1, temporalAutocorrelation = 0, spatialAutocorrelation = 0)

Arguments

replicates
number of datasets to create
sampleSize
sample size of the dataset
intercept
intercept
fixedEffects
vector of fixed effects (linear)
quadraticFixedEffects
vector of quadratic fixed effects
numGroups
number of groups for the random effect
randomEffectVariance
variance of the random effect (intercept)
overdispersion
if this is a numeric value, it will be used as the sd of a random normal variate that is added to the linear predictor. Alternatively, a random function can be provided that takes as input the linear predictor.
family
family
scale
scale if the distribution has a scale (e.g. sd for the Gaussian)
cor
correlation between predictors
roundPoissonVariance
if set, this creates a uniform noise on the possion response. The aim of this is to create heteroscedasticity
pZeroInflation
probability to set any data point to zero
binomialTrials
Number of trials for the binomial. Only active if family == binomial
temporalAutocorrelation
strength of temporalAutocorrelation
spatialAutocorrelation
strength of spatial Autocorrelation

Examples

Run this code
testData = createData(sampleSize = 500, intercept = 2, fixedEffects = c(1), 
  overdispersion = 0, family = poisson(), quadraticFixedEffects = c(-3), 
  randomEffectVariance = 0)

par(mfrow = c(1,2))
plot(testData$Environment1, testData$observedResponse)
hist(testData$observedResponse)

# with zero-inflation

testData = createData(sampleSize = 500, intercept = 2, fixedEffects = c(1), 
  overdispersion = 0, family = poisson(), quadraticFixedEffects = c(-3), 
  randomEffectVariance = 0, pZeroInflation = 0.6)

par(mfrow = c(1,2))
plot(testData$Environment1, testData$observedResponse)
hist(testData$observedResponse)

# binomial with multiple trials

testData = createData(sampleSize = 40, intercept = 2, fixedEffects = c(1), 
                      overdispersion = 0, family = binomial(), quadraticFixedEffects = c(-3), 
                      randomEffectVariance = 0, binomialTrials = 20)

plot(observedResponse1 / observedResponse0 ~ Environment1, data = testData, ylab = "Proportion 1")


# spatial / temporal correlation

testData = createData(sampleSize = 100, family = poisson(), spatialAutocorrelation = 3, 
                      temporalAutocorrelation = 3)

plot(log(observedResponse) ~ time, data = testData)
plot(log(observedResponse) ~ x, data = testData)

Run the code above in your browser using DataLab