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.