When developing statistical
models, it is common to include interactions between explanatory variables
in your model. For example, if you have the variables A and B, their
interaction is written A*B. An interaction editor provides a way for
a user to manually construct a collection of interactions that can
be used by your extension node.
The XML Property configuration
for a Property with an interactions editor
Dialog Control is as follows:
<Property
type="String"
name="Interaction"
displayName="Interactions Editor"
description="Example of an Interaction Editor.">
<Control>
<Dialog
showValue="N"
allowTyping="N"
class="com.sas.analytics.eminer.visuals.
InteractionsEditorDialog" >
<Option
name="Key"
value="INTERACTION"/>
<Option
name="MainEffect"
value="N"/>
<Option
name="MaxTerms"
value="2"/>
<Option
name="Open"
value="openInteractionTable"/>
<Option
name="Close"
value="closeInteractionTable"/>
<Option
name="IntervalVariable"
value="N"/>
</Dialog>
</Control>
</Property>
The
class attribute of the
Dialog element uniquely
distinguishes this
Dialog Control from the other type of
Dialog Control elements and must be copied verbatim. Each of
the
Option elements has two attributes:
name and
value. These
Option elements and their attributes determine the interactions
editor's capabilities.
The first
Option element has a
name attribute
of "key" and the
value attribute has a value
of "INTERACTION". This is simply a different syntax for declaring
that this
Dialog Control has a
key="INTERACTION". The explanation
for why the syntax for this type of control is different from all
the other controls that have a
key attribute
is beyond the scope of this discussion.
In the second
Option element,
name="MainEffect" and
value="N". This indicates that the
interactions editor is not to create an interaction that consists
of just a main effect. That is, all interactions must include at least
two terms. If
value="Y", then an interaction
can consist of a main effect. That is, an interaction can consist
of a single term.
In the third
Option element,
name="MaxTerms" and
value="2". This indicates that the
maximum number of terms that can be included in an interaction is
2. The
value attribute can have a range between
2 and 6.
The third and fourth
Option elements represent an alternative syntax for
the
Actions elements that appeared in other
Control elements. You must have at least one of these
Option elements. You can write server code that is associated
with the name that you provide in the
value attribute of these
Option elements, but
it is optional. The explanation for why the syntax for this type of
control is different from all the other controls that have
Actions elements is beyond the scope of this discussion.
In the final
Option element,
name="IntervalVariable" and
value="N". This indicates that interval
variables should not be used to populate the list of variables from
which the interactions are generated. When
value="Y", then interval variables can be included in the list.
The server code that
is required for this
Dialog Control consists of the following:
%em_register(key=INTERACTION, type=DATA);
data &em_user_interaction;
length key 8 Term $32;
stop;
run;
The first line of code
registers the key that appears in the first
Option element in the example XML above. The DATA step programming generates
an empty data set that has two variables: a numeric variable named
key and a string variable named Term.
Finally, before the
interactions editor can be populated with variable names, there must
be a data source node preceding your extension node in the process
flow diagram. For example, suppose you have the following process
flow diagram:
When the user clicks
on the

icon next to the interactions editor property the
following window appears:
When the user constructs
interactions, saves them, and clicks OK, Enterprise Miner creates
the Emws.Exmpl_interaction data set. For example, suppose the user
had selected APRTMNT and GENDER for the first interaction, and NTITLE
and TELIND for the second interaction, as depicted above. When the
user clicks
OK, Emws.Exmpl_interaction appears
as follows:
The data set ultimately
has a hierarchical structure. The value for Key begins at zero for
the first interaction and then increments by one for each additional
interaction that is generated by the user.