mics4 data processing workshop multiple indicator cluster surveys data processing workshop data...
Post on 27-Mar-2015
229 Views
Preview:
TRANSCRIPT
MICS4 Data Processing Workshop
Multiple Indicator Cluster SurveysData 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
top related