# SPSS Statistics

View Only

## Using SPSS's SIMPLAN to generate fake data

#### By Archive User posted Tue April 15, 2014 09:02 AM

A while ago I had a post about generating fake data in SPSS. This is useful for conducting your own simulations, or as I mentioned in the prior post it is often useful when posting questions to discussion lists to have example data that demonstrates your problem.

As of SPSS version 21, it includes a new simulation procedure in which you can take a predictive model and simulate new outcomes (it is in base, so everyone has it if you have a version of SPSS 21 or later). You can also use it to create data from scratch, with unique distributions for each variable and have it conform to either an approximate correlation matrix or a contingency table. Below is an example set of syntax that creates a simulation plan using the `SIMPLAN` function.

``FILE HANDLE save /NAME = "!your handle here!".SIMPLAN CREATE   /SIMINPUT     INPUT = input1(FORMAT=F)    TYPE = MANUAL     DISTRIBUTION = POISSON(MEAN=1.2)  /SIMINPUT    INPUT = input2 input3    TYPE = MANUAL    DISTRIBUTION = NORMAL(MEAN = 0 STDDEV = 1)  /CORRELATIONS    VARORDER = input1 input2 input3     CORRMATRIX = 1; 0.5, 1; 0.2 0.1 1  /STOPCRITERIA MAXCASES=50000  /PLAN FILE='savetest.splan'.``

First I create a file handle named `save` that ends up being where I save the `splan` file. The `SIMPLAN` function is quite complex, but here is a quick rundown of what is going on in this particular statement:

• On the `SIMINPUT` subcommand, you can specify a variable to create, its format and its marginal distribution. Note numeric formats on this command are a little different than typical, they are not of the form `F3.0`, but just take an input format type and then if you want decimals would be `F,2` for two decimals.

• I then have two separate `SIMINPUT` subcommands, the first specifies `input1` as being distributed as Poisson with a mean of 1.2. The second specifies variables `input2` and `input3` as being normally distributed with a mean of zero and a standard deviation of 1.

• The `CORRELATIONS` subcommand then lets you specify a set of approximate bivariate correlations for each of the variables.

• The `STOPCRITERIA` subcommand then specifies that only 50,000 cases are generated.

• The `PLAN` subcommand then specifies a file to save the simulation plan to.

Once you have the simulation plan created, you can then run the `SIMRUN` command to generate the data.

``SIMRUN /PLAN FILE='savetest.splan' /CRITERIA  REPRESULTS=TRUE  SEED=10 /PRINT ASSOCIATIONS=YES DESCRIPTIVES=YES /OUTFILE FILE=*.``

Note in this code snippet I save the simulated data to the active dataset, which was a feature added as of V22. Otherwise you need to use `DATASET DECLARE` and the specify that file name on the `OUTFILE` command (or I presume save to a file).

Using the simulation builder is probably overkill for generating data for troubleshooting problems to the list-serve, although if you use its capabilities to mimic the current dataset it can be a quick way to generate fake data that you can upload to a public site without divulging confidential info. This is certainly just scratching the surface of what the simulation builder can do though. I'm hoping its functionality will be continually extended in the future, in particular more complicated transformations being allowed on the `SIMPREP` command I would like to see.

#SPSSStatistics
#spss
#simulation