MEMSEL: Group Membership Selection

Last updated 19 Nov 97

MEMSEL builds a group membership mask for each sample requested. Each mask is added to the Task Factor file specified by the user. The user selects a sample by defining a set of logic variables which are set TRUE if the case data information specified falls in the given range, or FALSE if not within range. These logic variables are then interacted according to an equation containing the logical operations OR, AND, and NOT.

Automatic Process Generation

MEMSEL will generate a GRPJOB runstream if a GRPJOB card is found, which will in turn start a PRTJOB runstream if a PRT card is encountered. A GRPREL runstream will be created if a GRPREL card is found. The generated runstream will be executed unless the X option is specified on the invocation line.

Program Invocation

The specific syntax for program invocation varies between operating systems. This document diplays the code for the AIX version.


@codap memsel <opt> <ssss> <CDf> <TFf> [TT] [VTf] [CSf]

opt:   N  NOGO option, perform control card check
       E  Send 'E' option to generated GRPREL runstream
       X  Suppress the execution of the generated runstream
       R  Generate a GRPREL
       J  Generate a GRPJOB
       P  Generate a GRPJOB followed by a PRTJOB
ssss:     The study number
CDf:      Input Case Data file
TFf:      Input/output Task Factor file
TT:       Input Task Title file (required if tasks are requested, or
	  if the PRT or GRPREL card is used).
VTf:      Input Variables Title file (required if computed or background
	  variables are requested).
CSf:      Input Cluster Solution file (required if a presentation sequence
	  is used).  The KPATH/TPATH sequence number will be copied into
	  C0009 from the specified presentation sequence. 

MEMSEL Control Card


MEMSEL <study> <ipseq> <title>

MEMSEL:  cc 01-06  The literal 'MEMSEL'
study:   cc 08-11  The study number for this run
ipseq:   cc 13-18  The presentation sequence used to replace C0009
		   with KPATH or TPATH number.
title:   cc 20-79  The report title for this run.

Condition Definition Cards

The condition definition cards are used to assign TRUE/FALSE values to logic variables. Typically, this is done by defining a range of values for a specified variable. Each condition is evaluated for each case on the input file. If the case's data for the target variable falls within the specified range, the logic variable associated with that condition (e.g., L01, L02, etc.) is set to "TRUE," otherwise its value is set to "FALSE." In the simplest case, if a selection logic card (explained below), contains only "(L01)" then the output membership mask will identify every case for which the first condition is "TRUE." If a selection logic card contains "(-L01)", which means "not L01", then the output membership mask will identify every case for which the first condition is "FALSE." In addition to ranges on variables, logic variables can be set based upon membership in a previously defined group. Up to 99 logic variables can be defined in a single MEMSEL run.

Six forms of the condition definition cards are described in the following sections. The form to be used is dictated by the generic type of variable whose range is being checked (computed, task, background or previously defined group), the internal content/coding of the variable (ASCII with numeric only vs mixed alphanumerics), and the requirements of the application (percent time vs original raw rating). Each section is identified by the generic type of variable it describes. The six types of condition definition cards can be used in any combination or order desired provided the logical variable names are consecutive and in sequence from L01 to Lxx, where xx is the sequence number of the last definition. In the selection logic section all logical variables are treated equally, regardless of the generic variable type used to create it. Valid IDs for computed or background variables can be found by running DICTXX. Valid IDs for tasks can be found by running TASKXX. Valid IDs for groups can be found by running FACSXX with the "M" option.

Computed Variables


L <xx> =C <index> <low> <high>

L:      cc 01     The literal 'L'
xx:     cc 02-03  The condition definition sequence number
=C:     cc 04-05  The literal '=C'
index:  cc 06-09  The index of the computed variable
low:    cc 13-24  The lowest acceptable value for this computed variable
high:   cc 26-37  The highest acceptable value for this computed variable

Task Responses (Percent Time Spent)


L <xx> =T <index> <low> <high>

L:      cc 01     The literal 'L'
xx:     cc 02-03  The condition definition sequence number
=T:     cc 04-05  The literal '=T'
index:  cc 06-09  The index of the task
low:    cc 13-24  The lowest acceptable value for this task
high:   cc 26-37  The highest acceptable value for this task 

Task Responses (Raw Rating)


L <xx> =R <index> <low> <high>

L:      cc 01     The literal 'L'
xx:     cc 02-03  The condition definition sequence number
=R:     cc 04-05  The literal '=R'
index:  cc 06-09  The index of the task response
low:    cc 13-24  The lowest acceptable value for this task
high:   cc 26-37  The highest acceptable value for this task

Background Variables (Numeric)


L <xx> =V <index> <low> <high>

L:      cc 01     The literal 'L'
xx:     cc 02-03  The condition definition sequence number
=V:     cc 04-05  The literal '=V'
index:  cc 06-09  The index of the background variable
low:    cc 13-24  The  lowest acceptable numeric value for this
		  background variable (right justified)
high:   cc 26-37  The highest acceptable numeric value for this
		  background variable (right justified)

Background Variables (Alphanumerics)


L <xx> =V <index> A <low> <high>

L:      cc 01     The literal 'L'
xx:     cc 02-03  The condition definition sequence number
=V:     cc 04-05  The literal '=V'
index:  cc 06-09  The index of the background variable
A:      cc 11     The literal 'A'
low:    cc 13-24  The lowest acceptable alphanumeric value for this
		  background variable (left justified)
high:   cc 26-37  The highest acceptable alphanumeric value for this
		  background variable (left justified)

Note: Use an AUDITD output report to determine low versus high alphanumeric values. Leading and trailing blanks and zeros are significant in this context and are NOT interchangeable.

Previous Group Membership


L <xx> = <membrs>

L:      cc 01     The literal 'L'
xx:     cc 02-03  The condition definition sequence number
=:      cc 04     The literal '='
membrs: cc 05-10  The membership mask (e.g., GP0027, ST0295).  The
		  logical condition will be set TRUE for group members
		  and FALSE for non-members.

This feature allows very complex groups to created by successively iteratively identifying partial subgroups which may be logically interacted in a final run. Also, this method is computationally MUCH more efficient than specifying previously used conditions.

These cards are terminated by an '@eof' image.

Selection and Follow-on Analysis Control Card Sets

MEMSEL may be used to a) only define groups, b) define and produce job descriptions for groups, c) define and determine interrater agreement for groups, or d) all of the preceding. Although the cards from two of the following three sections (job descriptions and interrater reliability), cannot be intermixed, basic group definition can be used alone or as a required part of the other sections. The three control card sets may be used as often as desired, and in any order.

Sample Selection Cards

This section can be used by itself if sample selection is all that is desired. If a job description is to be computed for the samples selected or the interrater reliability is to be calculated, see the following sections. The pair of cards described here will add a new membership mask to the Task Factor file. This pair of cards may be repeated as often as desired then followed by an "@EOF" card after the last pair.

Sample/Group Title Card

The Title card assigns a title to the group being defined. If the title is blank, the title of the Case Data file is used.


TITLE <title>

TITLE:  cc 01-05  The literal 'TITLE'
title:  cc 07-66  The title for this group

Selection Logic Card

The Selection Logic Card immediately follows the Title card. This is a free format card which describes the logical interaction to be performed on the logic variables for each case in order to decide whether or not the case is to be included in the group.


( <logic> )

(:      The literal '('
logic:  The logical equation for the selection
):      The literal ')'

The first character encountered must be an open parenthesis, '('. MEMSEL will continue scanning from this point until a matching close parenthesis, ')', is found. This scan may continue on to additional cards (text lines), if necessary.

Between this pair of parentheses a selection equation is formulated using the logical variables defined above along with the standard logical operators, i.e., AND (denoted "&"), OR (denoted ":"), and NOT (denoted "-"). These operators are used to interact the logical variables created by the condition definitions. "-" (NOT), the unary operator, has the highest precedence, followed by "&" (AND), and finally ":" (OR). Higher precedence subexpressions are resolved before lower precedence subexpressions. Balanced pairs of parentheses may be used in the equation to define and raise the precedences of subexpressions in order to control the order of the operations performed. If several subexpressions of the same precedence level are encountered, they are evaluated from left to right.

The simplest equation allowed consists of a pair of matched parentheses (e.g. '()'). This logical equation will cause ALL CASES on the input file to be selected for the new group. If an equation using a single logical variable (e.g. L01) is used, the group which is selected will be all the members of the input file which have a value for the variable specified by L01 which falls into the range specified on the condition definition card for L01. By creating more complex logical equations, any group desired can be selected from the input file.

These cards are terminated by an '@eof' image.

GRPJOB: Job Description Computations

This set of control cards will cause a GRPJOB runstream to be generated and performed (unless the 'X' option is used) immediately following this run of MEMSEL. Group job descriptions will be created and optionally printed for all the samples selected by this set of control cards.

Compute Group Job Description Card

This card indicates the beginning of a GRPJOB control card set.


GRPJOB

GRPJOB: cc 01-06  The literal 'GRPJOB'

Print Group Job Description Card (Optional)

This card indicates that the samples which follow are to have their job descriptions printed after they are computed. This card is not required.


PRT <report> <sort> <percent> <tasks>

This card is passed on to the follow-on PRTJOB runstream.

Click here to see specific details about this card.

Report Note Cards (optional)

The cards in this section are notes that are to be printed on a group job description report. These cards cannot be included in this section unless the PRT card has been included. If these cards are used there may be as many as desired. It is not necessary to include any note cards.


<note>

note:   cc 01-80  Any text desired

These cards are terminated by an '@eof' image.

The '@eof' card is required if the PRT card has been included. It signifies the end of the report note cards (even if none appear) for this section. This '@eof' should not be used if the PRT card has not been used.

Sample Selection Card Set

Each group described after the PRT card will have a job description printed. If the PRT card was not used, job descriptions will be computed but not printed. The format for these cards is described above.

GRPREL: Interrater Reliability Analysis

The GRPREL card indicates that all the following groups that are selected will generate a GRPREL run, using that group as the mask for membership selection. Once this card is read, all following cards will be added to the GRPREL runstream(s) until an @EOF is encountered. For this reason, GRPREL note cards cannot be used.


GRPREL <stdy> ...etc...

GRPREL: cc 01-06  The literal 'GRPREL'
stdy:   cc 08-11  The study number for this run

Click here to see detailed information about this and other GRPREL control cards. The GRPREL cards are terminated by an '@eof' image.

Sample Selection Card Set

Each sample described after the GRPREL card will have a GRPREL executed. The format for these cards is described above.

The control cards are terminated by an end-of-file or an '@eof' image.

Examples

The following example for study "ssss" assumes V0003 is "Grade" coded as "E1" through "E9" and that variable V0015 is an Army MOS. Computed variable C0007 is always the number of tasks performed. Task 303 (R0303 and T0303) is simply the three hundred and third task in the inventory. V0020 is months in the service. As the input Case Data File is "cd100" this is job incumbent data, and hence, the creation of job descriptions is appropriate.

@codap memsel p ssss cd100 tf100 tt001 vt100
MEMSEL ssss
L01=V0003 A E1           E4
L02=C0007             70   150
L03=V0015 A 19D          19D 
L04=T0303           5.00         99.99
L05=R0303              4             7
L06=V0020             18            24
@EOF
GRPJOB
PRT
These are the note cards for the generated PRTJOB. This test uses
the more typical variable types for selection.  Job descriptions
will be computed and printed (GRPJOB,PRTJOB).
@EOF
TITLE Job Incumbents in Grades E-1 through E-4
(L01)
TITLE Job Incumbents with 18 to 24 months of service
(L06)
TITLE Job Incumbents who performed from 70 to 150 tasks
(L02)
TITLE Incumbents who perform Task #303 at a high level
(L04:L05)
TITLE E-1 to E-4 19D Incumbents who Rated Task #303 as 4-7
(L01&L03&L05)
@EOF
@EOF

The next run will select groups based on grade and duty AFSC (V0007 and V0013) by using the specified logic conditions. A GRPJOB runstream will follow, creating the percent time spent (PTS) and percent members performing (PMP) data for each group. A PRTJOB will then execute and print job descriptions for the groups.

The first group uses extra parentheses to combine multiple "OR" conditions prior to the "AND" with a single grade-based variable.

@codap memsel p ssss cd100 tf100 - vt100
MEMSEL ssss
L01=V0007              2            3
L02=V0007              5            5
L03=V0007              6            7
L04=V0013          27131        27131
L05=V0013          27151        27151
L06=V0013          27171        27171
L07=V0013 A 271X1        271X1
L08=ST0183
@EOF
GRPJOB
PRT
@eof
TITLE 271X1 Personnel in Paygrades E-2 and E-3 only
(L01&(L04:L05:L06:L07))
TITLE Grade Level E-6 & E-7 Personnel in Cluster Stage 183
(L03&L08)
@eof
@eof

The next example will generate a GRPREL runstream using all the defaults typical for analysis of training emphasis data. The Case Data input file of cd500 denotes training emphasis data, which means that interrater reliability (GRPREL) is the appropriate follow-on analysis, not job descriptions (GRPJOB).

@codap memsel r ssss cd500 tf500 TT001
MEMSEL ssss
@EOF
GRPREL ssss
TITLE Training Emphasis Ratings (Raw Analysis)
@EOF
TITLE Full Group Analysis of Training Emphasis
()
@EOF

For Task Difficulty data (cd200), one would modify the above example to include RATER and VALUE cards in the GRPREL section. These would be used to invoke the rater adjustment to the sample mean and the output factor standardization to a mean of 5.0 and standard deviation of 1.0.

Back to document index