Data Quality Check 1

1. Ensure that required fields contain data.

Click here to download SPSS code
Download sample data

Does each incident record have at least one offense segment, one victim segment, and one offender segment? The following code creates the variables necessary for performing the data quality check and creates counts of offense, victim, and offender records in each incident. When using this code, be sure to insert the path and file name of the data file to be used, as well as the names of the temporary files to be saved. If you need any assistance working with the syntax provided, please contact us.

According to the FBI Data Collection Guidelines, each incident record must have at least one offense segment record, one victim segment record, and one offender segment record.  This example shows the SPSS code for determining which of the incident records comprising a single agency's data set fail to meet these criteria.  The FBI's data quality controls and testing ensure that data submissions meet these criteria before the FBI accepts a dataset.  So, to illustrate how an agency can self-test, one month's data from one of the NIBRS-certified localities reporting to the FBI in 1999 was modified.


Defining the Segments to Count

To perform this quality control check, you must first retrieve the file and create new variables for offense count, victim count, and offender count, each with an initial setting of 0.  For each incident record flagged as an initial submission (action = I), the new variables are assigned a value of 1 for each occurrence of an offense segment record, victim segment record, or offender segment record.  The segment record must be physically missing from the data set to remain at 0.  An incident record is included only if it is flagged as an initial submission because only initial submissions are required to have at least one offense segment, one victim segment, and one offender segment.

GET FILE='Directory:\Path\Agency Data.sav'.
COMPUTE ofns_cnt = 0.
COMPUTE vic_cnt = 0.
COMPUTE off_cnt = 0.
DO IF (action = 'I').
IF (ibr_rec = '2') ofns_cnt = 1.
IF (ibr_rec = '4') vic_cnt = 1.
IF (ibr_rec = '5') off_cnt = 1.

Sorting the File and Summing the Counts

Prior to executing the AGGREGATE command, which will sum the counts, the incident records are sorted by originating agency identifier, incident number, and IBR record segment number.  The AGGREGATE command requires that the file be presorted on the break variable.  In this example, it is also sorted by IBR record segment number to group the segments by segment number.

SORT CASES BY ori inc_num ibr_rec.
SELECT IF (action = 'I').
   /BREAK=ori inc_num
   /off_cnt 'Count of offender records in incident'=sum(off_cnt)
   /vic_cnt 'Count of victim records in incident'=sum(vic_cnt)
   /ofns_cnt 'Count of offense records in incident'=sum(ofns_cnt).

After the AGGREGATE command is run, frequency tables are produced to show the sums of the counts of the offense segments, victim segments, and offender segments for all incidents.   The TEMPORARY/SELECT IF/LIST, which is run against the file created as a result of the AGGREGATE command, identifies the originating agency, incident number, offense count, victim count, and offender count for any incident that does not have at least one record in all of the required segments. Please keep in mind that if you are running this LIST command on a large file, a long list may be generated, which may take some time.

GET FILE='Directory:\Path\DQExample1.sav'.
FREQUENCY ofns_cnt vic_cnt off_cnt.
SELECT IF (ofns_cnt = 0 or vic_cnt = 0 or off_cnt = 0).
LIST ori inc_num ofns_cnt vic_cnt off_cnt.

Reviewing the Tables and Lists

In practice, the three tables shown below will be returned by SPSS directly following each other. The list will be returned only once.

The table below shows that one incident did not have the required offense record (.00).

The frequency table below confirms that each incident had at least one victim segment.

Finally, one incident did not have the required offender record.

The list below shows which incident records are missing the segments.



XXYS248WU  123400019    .00       1.00      2.00
XXYS248WU  123400061   3.00      2.00       .00

Number of cases read: 2 Number of cases listed: 2