createData {DHARMa}R Documentation

Simulate test data

Description

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

Usage

createData(sampleSize = 100, 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,
  factorResponse = F, replicates = 1, hasNA = F)

Arguments

sampleSize

sample size of the dataset

intercept

intercept (linear scale)

fixedEffects

vector of fixed effects (linear scale)

quadraticFixedEffects

vector of quadratic fixed effects (linear scale)

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

factorResponse

should the response be transformed to a factor (inteded to be used for 0/1 data)

replicates

number of datasets to create

hasNA

should an NA be added to the environmental predictor (for test purposes)

Examples

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)

[Package DHARMa version 0.4.3 Index]