mics4 data processing workshop multiple indicator cluster surveys data processing workshop data...

22
MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Upload: jennifer-mcginnis

Post on 27-Mar-2015

227 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

MICS4 Data Processing Workshop

Multiple Indicator Cluster SurveysData Processing Workshop

Data Entry Applications with Logic

Page 2: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Topics to be Discussed

• what is the “path” of data entry?• skip and reenter• manipulating the path via procedures

• processing order in CSPro

• more commonly-used CSPro commands

• creating user-defined variables

• adding messages to your program

MICS4 Data Processing Workshop

Page 3: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

The Data Entry Path

• The data entry path contains all of the questions that a respondent should be asked

• It is determined by– the type of the questionnaire– the responses to questions in conjunction with

• questionnaire skips• questionnaire filters

• It is controlled by logic you develop

MICS4 Data Processing Workshop

Page 4: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Changing the path via skipCSPro has two ways of implementing skips:skip to

Use if moving to a singly-occurring variable or to a roster:

skip to <variable_name>;

skip to <group_name>;

skip to nextUse if the var. being skipped to is in a repeating form/roster:

skip to next <repeating_variable_name>;

skip to next <group_name>;

MICS4 Data Processing Workshop

Page 5: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Changing the path via reenter

• To force the data entry operator to reenter the current field (e.g., if the data entered are inconsistent) use:

reenter;• By default, reenter forces reentry of the

current field. If you wish to force reentry of a previously-entered field, use:

reenter <field_name>;

MICS4 Data Processing Workshop

Page 6: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

CSPro Procedure Types

Global procedure (PROC GLOBAL)• logic executed when the Data Entry App begins

Form File procedure (PROC <form_file_name>)• logic executed when the Data Entry App begins/ends

Level procedure (PROC <level_name>)• logic executed when a level begins/ends

Group procedure (PROC <group_name>)• logic executed when a form/roster begins/ends

Variable procedure (PROC <variable_name>)• logic executed before/after a variable is keyed

MICS4 Data Processing Workshop

Page 7: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

preproc and postproc

There are two types of procedures:

preproc• logic executed before the item

• for example, skip to another variable

postproc• logic executed after item

• for example, check if data entered is consistent

• for example, skip to a variable

• default action for logic if nothing explicitly written

MICS4 Data Processing Workshop

Page 8: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Order of OperationsPROC GLOBAL (executes at start of program, cannot stipulate preproc or postproc)

Form File preproc

Level 1 preproc

Form 1.1 preproc

Field 1.1.1 preproc

Field 1.1.1 postproc

repeat for other <Form 1.1 fields>

Form 1.1 postproc

repeat for other <Level 1 forms>

Level 2 preproc

Form 2.1 preproc

Field 2.1.1 preproc

Field 2.1.1 postproc

Form 2.1 postproc

repeat for other <Level 2 forms>

Level 2 postproc

Level 1 postproc

Form File postproc

MICS4 Data Processing Workshop

Page 9: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Ending a Level

• You must prematurely finish a level if– the last variable in the data path is not the last

variable on the questionnaire– there are no more woman or children’s

under-five questionnaires left for the HH

• This is accomplished using the endlevel command

MICS4 Data Processing Workshop

Page 10: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

The endlevel Command

• The effect of the endlevel command depends upon its context/location:– In a field/roster/form proc, control passes to

the current level’s postproc– In a level 2 or higher postproc, control passes

to the next highest level’s postproc– In a level 1 proc, control passes to the

application, i.e., the form file’s postproc

MICS4 Data Processing Workshop

Page 11: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Operator vs. System Controlled

• Operator-controlled: the keyer has some/ all control on the data entry path

• System-controlled: the keyer has no control over the data entry path– go to options data entry – choose “system controlled”– (while you are there, make all alphanumeric

variables upper case)

MICS4 Data Processing Workshop

Page 12: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Ending a Group• A group is a roster or multiply-occurring

form

• Is terminated by using the endgroup command

• Passes control to the group’s postproc—all intervening logic (in other form/roster items) is skipped

MICS4 Data Processing Workshop

Page 13: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

User-defined Variables

• User-defined variables must be declared in the PROC GLOBAL section and as implied, are global in scope

• Numeric working variables can be declared together– numeric var1, var2;

• Alphanumeric variables must be declared separately:– alpha(length) avar1;– alpha(length) avar2;

MICS4 Data Processing Workshop

Page 14: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

User-defined Variables (cont)

• All variables must be declared in the preproc of the form_files procedure

• User-defined variables should be assigned a value within the preproc of the form_files, e.g., minab = 144;

• You should give a description of your variable at either the place of declaration or initialization, e.g.,

numeric minab; {min. age at first birth in months}

MICS4 Data Processing Workshop

Page 15: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Recoding Variables

• To more easily assign values to a variable based on another variable, use recode

• The following logic recodes women’s age into groups:

recode WB2 => agegrps;

15-19 => 1;

20-24 => 2;

=> 3;

endrecode;

MICS4 Data Processing Workshop

Page 16: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

if command

Use the if command to check for a condition:if HH9 <> 1 then

skip to HH16;

endif;

if (HH9=1 and HH11=0) or

(HH9 in 2:4,6 and HH11<>0) then

reenter;

endif;MICS4 Data Processing Workshop

Page 17: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Generating Error Messages

• Example: If the cluster number is invalid, we can show the operator a message to explain what the problem is; for example,

errmsg(“Cluster number invalid”);

• However, to be more useful, we should tell them what the valid range is; to do this, we can pass in parameters to the command as follows:

errmsg(“Cluster number invalid, expected range %d to %d”, MinClust, MaxClust);

MICS4 Data Processing Workshop

Page 18: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Error Message Parameters

• The values of any variables listed after the error message number will be passed to the error message

• Parameters are displayed in the error message using– %d for numeric values– %s for alphanumeric values (i.e., text)

MICS4 Data Processing Workshop

Page 19: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Streamlining Error Messages

• Suppose we need to repeat the same message several times in the file—what should we do?

• We can assign unique numbers to each error message

• We can keep all error messages in the message file (.mgf)

MICS4 Data Processing Workshop

Page 20: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Sample Error Messages

• Our earlier message (and maybe one we could use for that HH result code earlier) would now be simplified to:errmsg(1, MinClust, MaxClust);

errmsg(2, HH9, HH11);

• And the message file would look something like:

0001 Cluster number invalid, expected range %d to %d

0002 HH result code (%d) doesn’t agree with number of HH members (%d)

MICS4 Data Processing Workshop

Page 21: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Modifying Your Test Application

• Add logic to– check if the household number is consistent

• display message and add reenter command if not

– implement the HH result code skip – check the date of interview is internally

consistent• display message and force reentry if not

• Compile your application, resolve any errors

• Save your application (<ctrl+S>)

MICS4 Data Processing Workshop

Page 22: MICS4 Data Processing Workshop Multiple Indicator Cluster Surveys Data Processing Workshop Data Entry Applications with Logic

Testing your Application

• Click once on the execute button on toolbar ( ), or press <ctrl+R> to run

• Use NoData.dat as your datafile

• Enter a case (i.e., a questionnaire)

MICS4 Data Processing Workshop