Introduction
Questionnaires often include lists of brands, statements, response options (scale points), etc. Sometimes, lists of brands or response options need to be used over and over again within the same questionnaire. It is useful if the list is established and simply reused when writing subsequent questions. Lighthouse Studio saves all lists of response options for your questionnaire and lets you select from this list when creating new questions.
Some questionnaires require more sophisticated use of lists. For example, one might display a list of brands and ask respondents which brands they have used recently. Then, only those brands selected are used in a subsequent question, such as for indicating which of those brands being used is the "favorite." (Some researchers refer to this as piping.) Such lists need to be customized ("constructed") for each respondent.
There are two general classifications of lists in Lighthouse Studio:
1) | Predefined List - a list that always remains the same for all respondents |
2) | Constructed List - a list built individually for each respondent (according to instructions you specify), depending on answers to previous questions or randomization. |
Whenever you create a list of response options for a select-type, ranking, constant sum, or grid-style question, you are creating a list that you can reuse in a later question. For example, if you create a select-type question Q1:
Q1: What is your gender?
¡ Male
¡ Female
¡ Refused
the responses are automatically stored as a predefined list named Q1List that includes the following list members:
Male
Female
Refused
This list, once established, can be used in other questions. Note that if you change the list, all questions using that list are affected.
For straightforward questionnaires, thinking about lists may be unnecessary. But, for complex questions, the ability to build constructed lists is indispensable.
We've described how predefined lists are automatically stored whenever you create a select-type question. There is also a general Lists dialog where you can add or edit predefined and constructed lists. You access this list manager by clicking Compose | Lists from the main menu. You must use the Lists dialog to create constructed lists.
Time-Saving Hint: You can cut-and-paste lists of response options from Microsoft Word or Excel by highlighting the array of items in Word or Excel, pasting to the clipboard using Ctrl+C or the Copy button in Word or Excel, and then by clicking the Paste list member(s) from the clipboard icon .
In our documentation, we'll use the following terminology to refer to aspects of lists:
How Constructed Lists Work
Constructed lists are customized lists of brands, statements, response options, etc. that are built "on-the-fly" based on the answers that a respondent gives (and that were submitted on a previous page) or that are built based on randomization or other user-defined instructions. They often include a subset of the original members in a list. For example, consider a question that asks respondents which colors they like. The researcher might first create a predefined (parent) list that contains the colors:
Red
Green
Blue
Purple
Yellow
Next, the researcher might create a question called Q1 using that predefined list of colors. A respondent might answer that question in this manner:
Q1. Which colors do you like? ¨ Red þ Green ¨ Blue þ Purple ¨ Yellow
|
This is a multiple response select question and the data are stored internally within Lighthouse Studio as follows:
Q1_1, 0
Q1_2, 1
Q1_3, 0
Q1_4, 1
Q1_5, 0
It is useful to review this so you can understand how the system stores data and how to refer to answers from previous questions when using skip patterns or displaying the responses to previous questions on the screen. With multiple-select questions, any checked options are indicated with a "1" and non-checked options with a "0". "Underscore" notation is used to refer to the list members. For example, Q1_4 refers to the fourth member in the list (Purple). Even if you decided to randomize the list, "_4" always refers to the fourth member on the original predefined list. Lighthouse Studio always uses indices that refer to the original list order so that no matter what randomization or sub-selection is employed, you can easily keep track of which members have been seen or answered.
With Lighthouse Studio's list-building capabilities, you can create a new constructed list containing the colors chosen in Q1. (Examples and instructions for this are given later in this section.) The constructed list for this respondent, would contain the members this respondent chose in Q1:
Green
Purple
In Q2 (placed on a page following Q1), we might use this list when asking this respondent which of the colors previously selected is her favorite:
Q2. Which of the colors you previously said you liked is your favorite?
¡ Green ¤ Purple
|
If this respondent answers that Purple is her favorite color, the data are stored internally within Lighthouse Studio as follows:
Q2, 4
Note that the response to Q2 is coded as a "4," because Purple is member #4 on the original parent list of colors.
Displaying the Text for List Members in Questions
Most of the time, you will just show an entire predefined or constructed list in a question. To display the list as response options to a question, you'll simply select it from the drop-down control of available lists while editing the question.
Occasionally, you may want to display the label for a particular list member on the screen.
The following Sawtooth Script returns the label for the list member:
[%ListLabel (ListName, member#)%]
When the survey runs, Lighthouse Studio replaces the entire expressions above with the requested label.
Skip Patterns for Questions That Use Constructed Lists
Constructed lists must be built using list members from only a single predefined ("parent") list. When referring to responses to a question involving a constructed list, we just refer to the list values on the original parent list.
For example, consider the following question called Vehicles:
<Question: Vehicles>
Which of the following vehicles would you consider buying?
…that uses a predefined list called VehiclesList:
Honda Accord
Mazda 626
Saturn SL2
Toyota Corolla
Ford Focus
We might build a new constructed list called ConsideredList that contained only those models that the respondent chose in question Vehicles. Then, we might ask a new question called MostLikely:
<Question: MostLikely>
Of those vehicles you are considering buying, which do you think you are most likely to purchase?
<Display ConsideredList, containing only those vehicles chosen in question Vehicles.>
Let's assume we needed to execute a skip if the respondent chose Saturn SL2 as the most likely vehicle in question MostLikely. You do not know how many vehicles are in ConsideredList for each respondent or what position Saturn SL2 might occupy on that list. But this is no matter, as you simply need to refer to the original value from the parent predefined list Vehicles. Saturn SL2 is associated with a value of 3 on the parent list. Therefore, we would skip if MostLikely = 3.
With multi-response select questions that use constructed lists, you may want to skip based on whether a particular list member was chosen. Again, you refer to values on the original predefined parent list. If we wanted to skip if a member with a value of 12 from the original parent list was chosen in multi-select question Q23, we would skip if Q23_12 = 1. Since constructed lists draw members from a single predefined parent list, there is no ambiguity.
Summary of List-Building Instructions
Below, we first provide a summary of commonly-used list-building instructions, followed by a more detailed description of these commands. Following that, we provide some questionnaire-programming examples.
Constructed lists must be built using list members from only a single predefined ("parent") list.
•ADD
Adds members from a specified list to the end of the constructed list.
•AIC ("Add If Chosen"), ANC ("Add if Not Chosen")
Adds members chosen (AIC) or not chosen (ANC) in a select-type question onto a new constructed list.
•AIE ("Add If Equal"), ANE ("Add if Not Equal"), AIL ("Add If Less"), AIG ("Add if Greater")
Adds members in a grid numeric, grid constant sum, grid ranking, grid with all radio buttons, constant sum, or ranking question that were given answers equal to (AIE), not equal to (ANE), less than (AIL) or greater than (AIG) a specific value.
•INSERT
Inserts members from a specified list to an exact position within a constructed list.
•LISTMAX , LISTMIN, SETLISTLENGTH
Controls the maximum or minimum length of a list.
•RANDOMIZE
Randomizes the members of a constructed list.
•REMOVE
Removes the members in the specified list from the constructed list.
•REVERSE
Reverses the order of the members in the specified list.
•SORTBYVALUE
Sorts members of a constructed list into their natural order (as in the pre-defined list)
Rules Governing List Operations
1. | All constructed lists are initially empty. |
2. | All members added to a constructed list must come from a common parent list. |
3. | You may add members from another constructed list to a constructed list, as long as both constructed lists share the same parent predefined list. |
4. | A member can only appear once in the constructed list (if you try to add a member after it already exists on a constructed list, it will not be added again). |
5. | List building commands are executed sequentially. |
6. | A question using an empty constructed list (as response options) is skipped. |
When you view questions involving constructed lists in Preview mode, all members from the parent list are displayed (since we don't know how the respondent has answered previous questions).
List Instructions
In this section, we describe each list building instruction in more detail. These instructions build or modify constructed lists. Remember, a key rule for building lists is that the members must originate from the same predefined list.
ADD is used to add a specific member or members from a list (either predefined or constructed) to the constructed list.
The formats are:
ADD (ListName)
ADD (ListName, Member#)
ADD (ListName, StartMember#, EndMember#)
The referenced list can be either a predefined or constructed list. The member numbers refer to the current member positions on the referenced list. (If you are adding members from a constructed list, the member numbers refer to the current member positions on that constructed list, not the members' original positions in the predefined list.)
StartMember# and EndMember# are optional and are used to designate a range of list members to add to the constructed list. If these two arguments are omitted, all list members are added to the constructed list. If only one argument is supplied, then only that one list member is added to the constructed list.
If the current constructed list already contains the list member to be added, then the duplicate list member is not added to the list. The original member remains in its position.
See Examples B and E at the end of this section for illustration.
Adds members chosen (AIC) or not chosen (ANC) in a select-type or grid question onto the constructed list. AIC stands for "Add If Chosen" and ANC stands for "Add if Not Chosen."
The formats are:
AIC (QuestionName)
AIC (QuestionName, Member#)
AIC (QuestionName, StartMember#, EndMember#)
ANC (QuestionName)
ANC (QuestionName, Member#)
ANC (QuestionName, StartMember#, EndMember#)
The question named must be a select-type question. If from a grid-style question, appropriate column numbers or row numbers must be included in the question label, such as Q1_c1 (for column-based grid question Q1) or Q1_r1 (for row-based grid question Q1). If from a MaxDiff question, the question label follows these conventions: ExerciseName_TaskNumber_b (for "best" response) or ExerciseName_TaskNumber_w (for "worst" response).
The last two arguments are optional and are used to designate a range of list members to add to the constructed list. If these two arguments are omitted, all qualifying list members are added to the constructed list. If only one argument is supplied, then only that one list member (if chosen or not chosen in questionname) is added to the constructed list.
The member numbers in the arguments always refer to the original predefined parent list (the parent list indices), not the particular position number that member happens to occupy in the list used in the referenced questionname.
Members are added to the constructed list in the order they were displayed to the respondent (unless using question-level randomization with pre-defined lists).
If the current constructed list already contains the list member to be added, then the duplicate list member is not added to the list. The original member remains in its position.
If the member to be added to a constructed list is an Other Specify response, the text supplied by the respondent is added. This is an automatic and helpful feature. Technical Note: if there is just one Other Specify response in a predefined list, but two or more questions (using the same predefined list) collect multiple answers for this same Other Specify member, there is a potential conflict if you try to add the Other Specify members across multiple questions onto a constructed list. As functions are executed sequentially, the other response referred to by the last function is used. Using ADD or INSERT always forces the open-end box to appear with Other Specify responses.
See Examples A, D, and E at the end of this section for illustration.
Adds members from a question that were given answers equal to (AIE), not equal to (ANE), less than (AIL) or greater than (AIG) a specific value.
The formats are:
AIE (QuestionName, Value)
ANE (QuestionName, Value)
AIL (QuestionName, Value)
AIG (QuestionName, Value)
Where QuestionName can be:
constant-sum (including within grids)
ranking (including within grids)
grid-style radio (where all rows or columns are radio)
grid-style numeric
If using a grid-style question that only uses radio buttons, the questionname is referred to as the original grid name, without any "underscore" notation to indicate row or column numbers. If it is a row-based question, all rows members meeting the qualification are added to the constructed list. If column-based, members in columns are added to the constructed list.
Sometimes, a grid question might use numeric entry fields. When numeric entries are part of a grid-style question (including ranking and constant-sum questions within grid questions), the row or column must be referenced in the AIE, ANE, AIL, or AIG instruction using underscore notation. For example:
Q1. How many of these types of fruits do you typically eat at work and at home during an entire week?
Home |
Work |
|
Apples |
_____ |
_____ |
Bananas |
_____ |
_____ |
Peaches |
_____ |
_____ |
Let's assume we needed to create a new list containing the fruits that an individual eats at least 3 times or more at work. We'd use the instruction:
AIG (Q1_c2, 2)
Since this is a column-based grid question, row members are added to the constructed list.
Members are added to the constructed list in the order they were displayed to the respondent (unless using question-level randomization with pre-defined lists).
If the current constructed list already contains the list member to be added, then the duplicate list member is not added to the list. The original member remains in its position.
See Example C at the end of this section for illustration.
Inserts members from a specified list (either predefined or constructed) to an exact position within a constructed list.
If a member to be inserted already exists on the constructed list, it is first deleted from the constructed list. Then, it is added at the indicated position.
The formats are:
INSERT (TargetPosition#, ListName)
Adds a list (either predefined or constructed) to the constructed list starting in the target position number indicated.
INSERT (TargetPosition#, ListName, Member#)
The member from the referenced list (either predefined or constructed) is inserted into a specific position on the constructed list. For example, consider inserting the color "Red" into the constructed list [Purple, Green] at the second position. The result is [Purple, Red, Green].
INSERT (TargetPosition#, ListName, StartMember#, EndMember#)
Here, a range of elements are moved from the referenced list (either predefined or constructed) to a target position in the constructed list.
LISTMAX , LISTMIN, SETLISTLENGTH
Controls the maximum or minimum length of a list.
The format is:
LISTMAX (Value)
LISTMIN (Value)
SETLISTLENGTH (Value)
The LISTMAX instruction is useful if you want a list to contain no more than a certain number of members. If a list has more members than is specified in the LISTMAX instruction, the extra members are removed from the bottom of the list.
For example, assume a predefined list with 50 European cities, of which we want respondents to rate exactly 10 of the cities chosen randomly. We first would ADD all fifty cities onto the new constructed list. Next, we would RANDOMIZE( ) the list of cities. Finally, we would use the LISTMAX instruction:
LISTMAX (10)
to remove the bottom 40 members from the constructed list, leaving the first 10 for respondents to rate.
The LISTMIN instruction ensures that a minimum number of elements exist on a constructed list by adding members (if needed) chosen randomly from the parent list.
For example, assume that we'll ask respondents to rate 10 cities from a total list of 50 cities. Further assume that we'll want to ask respondents to rate cities with which they are familiar. We might first ask respondents to check such familiar cities. If they check fewer than 10, we want to randomly add additional cities to the list to be rated.
To accomplish this, we use the AIC instruction to add any cities to the list that were chosen in a select-type familiarity question. Finally, we would use the LISTMIN instruction:
LISTMIN (10)
to add new members (if needed) onto the list so that there were at least 10 members on the constructed list. If any members are added, they are chosen randomly from the parent list among members not already existing on the constructed list that are not "None of the above" or "Other specify" items (Lighthouse Studio never permits duplicate members on a constructed list).
You can set a list length to a certain value by using the LISTMAX and LISTMIN commands together (with the same fixed integer as the argument). However, a simpler way to accomplish this is to use the SETLISTLENGTH instruction. Elements that need to be deleted from or added to the list are treated in the same way as with LISTMAX and LISTMIN instructions (if list members need to be randomly added they will not be chosen if they are "None of the above" or "Other Specify").
See Example D at the end of this section for illustration.
Adds list members from the parent list that correspond to the list values in ListName.
The format is:
MIRROR (ListName)
MIRROR (ListName, Offset)
Mirror is useful to map or mirror one list onto another when those lists have different parents. For example suppose that you have a list of colors:
ColorNamesList
1 - Red
2 - Blue
3 - Green
4 - Purple
5 - White
and you also have a list of images
ColorImagesList
1 - <img src="[%GraphicsPath()%]red.jpg">
2 - <img src="[%GraphicsPath()%]blue.jpg">
3 - <img src="[%GraphicsPath()%]green.jpg">
4 - <img src="[%GraphicsPath()%]purple.jpg">
5 - <img src="[%GraphicsPath()%]white.jpg">
In addition there is a constructed list named ColorsChosenList. When the survey is run imagine that it had items 1,3, and 4. If you wanted to create a constructed list from ColorImagesList that corresponded to the same items in ColorsChosenList you could do this:
MIRROR (ColorsChosenList)
This command would add these items:
1 - <img src="[%GraphicsPath()%]red.jpg">
3 - <img src="[%GraphicsPath()%]green.jpg">
4 - <img src="[%GraphicsPath()%]purple.jpg">
The optional Offset parameter allows you to alter the mapping adding the value specified in Offset to each value in ListName. For example:
MIRROR (ColorsChosenList, 1)
would return:
2 - <img src="[%GraphicsPath()%]blue.jpg">
4 - <img src="[%GraphicsPath()%]purple.jpg">
5 - <img src="[%GraphicsPath()%]white.jpg">
Randomizes the members of a constructed list.
The formats are:
RANDOMIZE ( )
RANDOMIZE (SeedValue#)
RANDOMIZE (StartMember#, EndMember#)
RANDOMIZE (SeedValue#, StartMember#, EndMember#)
Many times, you'll want list members to be presented randomly to avoid order bias.
Specifying RANDOMIZE ( ) randomizes all elements on the constructed list. Specifying a starting and ending member randomizes a subset of the list. (Remember, a constructed list initially is empty. Prior to randomizing a list of members, they must first be added to the constructed list.)
If you do not provide a seed value, then the list name is used as a seed. The seed value and the internal respondent number are used to ensure that the randomization will be different across lists and respondents. The seed value can range from (1 to 99999). Using a particular seed value ensures that you can obtain the same randomization across different lists (containing the same number of members) for the same respondent. (Warning: if you use multiple RANDOMIZE instructions when building a constructed list and if you are explicitly specifying seed values, take care to use different seed values. Using the same seed value in this case will likely result in poor randomization of the constructed list.)
There is a more simple way to randomize members of a list: by clicking the Randomize Response Options box on the Response Options tab when editing a select-type question. This method does not involve constructed lists, but it also doesn't let you store and later analyze the randomized order of the members (as is done when you randomize constructed lists). Also, when you re-use a predefined list of members and click the Randomize Response Options box, you obtain a different random sequence. Sometimes, you may want to re-use a list in a survey with the same randomized order for each respondent. Using constructed lists and the RANDOMIZE instruction can accomplish that.
Once RANDOMIZE has been used to randomize elements of a constructed list, other list-building instructions can be used to add or delete members from this new list.
See Examples B, C, D, and E at the end of this section for illustration.
Removes the members in the specified list from the constructed list.
The formats are:
REMOVE (ListName)
REMOVE (ListName, Member#)
REMOVE (ListName, StartMember#, EndMember#)
The REMOVE instruction removes or deletes a member or members in the specified list (either predefined or constructed) from the current constructed list. If the members to be removed are not in the list, then nothing happens.
A common use for REMOVE involves removing a single member (such as a "None of the above" response from a constructed list. Consider a predefined list named hotels, whose 20th member is "None of the above." Assume you wanted to remove the "None of the above" response from the new constructed list we are building (whose parent list is hotels). You would use the following instruction:
REMOVE (hotels, 20)
You can also use the REMOVE command to "subtract" a series of members of one list from another. The list to be subtracted can be a predefined list or a constructed list. For example, if you are constructing a list and want to subtract elements 5 through 10 of another constructed list named Q17Sel from your constructed list, you would specify:
REMOVE (Q17Sel, 5, 10)
If the REMOVE instruction refers to a constructed list, the parent list for both that referenced list and the constructed list you are building must be the same.
See Examples A and E at the end of this section for illustration.
Asking a follow-up question using brands selected previously
Learning Objectives:
a) Illustrates the following functions:
- AIC "Add If Chosen"
- REMOVE
b) Demonstrates how to take brands previously selected forward to a follow-up select-type question.
c) Show how respondent-supplied text for Other Specifies can be used in follow-up questions
d) Illustrates how follow-up questions using an "empty" constructed list are automatically skipped.
The Questionnaire:
<Question: LastSix>
Which of the following fast-food restaurants have you visited in the last 6 months? <Randomize order for options 1 through 9. "None of the above" is exclusive.>
1. | A & W |
2. | Arby's |
3. | Burger King |
4. | Dairy Queen |
5. | Hardee's |
6. | McDonald's |
7. | Subway |
8. | Taco Bell |
9. | Wendy's |
10. | Other Specify (1) ______________________ |
11. | Other Specify (2) ______________________ |
12. | None of the above |
<Question: MostOften>
Of those you have visited in the last 6 months, which one do you visit most often?
<Show restaurants chosen in previous question. Include Other Specify responses.>
Solution:
For this illustration, we assume you already know the basics of building questions in Lighthouse Studio. Therefore, we only provide details regarding the more advanced functions of list building.
1. LastSix uses a list of twelve response members (fast-food restaurants) that you must specify as a predefined list. Specify this predefined list by adding LastSix to your questionnaire as a select-type question (check-box select format) and while editing LastSix using the Response Options tab, or you can directly add the predefined list under Compose | Lists (the List Manager dialog). In either case, you are establishing a predefined list of members that we can use for LastSix and elsewhere in the questionnaire. We'll use this predefined list as a source "parent list" for building the constructed (customized) list of fast-food restaurants we'll use for question MostOften. Call the predefined list LastSixList (which is the default name for the list if adding it from the Response Options tab for LastSix). Lighthouse Studio is not case sensitive with respect to list names.
2. After specifying the 12 list members in LastSixList, highlight member 10 ("Other Specify (1)") and check the available box to indicate that it is an "other specify" response. Repeat for the additional Other Specify list member 11. For list member 12, highlight it and check the box to indicate that it is "Exclusive" (meaning that if respondents check this category, it is the only check allowed). We also need to randomize members 1 through 9, and we can do this by clicking Randomize Response Options from the Response Options tab. (Note: the "None of the above" and "Other specify" members automatically will not be randomized if they are the last members on the list.)
Add a page break after LastSix. Remember, MostOften must be displayed on a page after LastSix, since the respondent needs to submit the answers from LastSix before we can know how to customize the list of members for MostOften.
3. The list of members to be displayed in MostOften must be customized (constructed) for each respondent, depending on the answers given in question LastSix. To accomplish this, we create a new constructed list. From the main menu, click Compose | Lists to access the Lists dialog. Click Add and then you should select Constructed List. Name the new list ChosenRestaurantsList. The key rule to remember when constructing new lists is that all the response options (list members) moved into this new list must originate from the same predefined (parent) list. For this questionnaire, all the response options you'll use to build ChosenRestaurantsList come from LastSixList. Using the drop-down Parent List control, select the parent list LastSixList.
To begin with, the constructed list is empty even though you have specified that you'll be using members from LastSixList. Type the list building instructions that create the new ChosenRestaurantsList:
AIC (LastSix)
REMOVE (LastSixList, 12)
Any instructions you use are processed one-at-a-time, in a linear fashion, started from the first instruction and working through the last instruction. You can check your syntax by clicking the "Check" icon.
The first instruction tells Lighthouse Studio to "Add If Chosen" any members chosen in the question LastSix onto the new constructed list.
The second instruction tells Lighthouse Studio to remove the 12th member (None of the above) of the predefined list LastSixList from the new constructed list. This remove step is necessary because we don't want to display the MostOften question with the member "None of the above" to respondents who didn't visit any restaurants in the last six months. Lighthouse Studio automatically skips a question that uses an empty constructed list, so respondents who did not visit any restaurant are not asked the follow-up question MostOften. No additional skip logic is required.
(Alternatively, we could have used the single instruction AIC (LastSix, 1, 11) to indicate that only members 1 through 11 should be moved onto the new constructed list.)
4. Add the question MostOften as a select-type (radio) question. From the Response Options tab, select that this question should use as response options the existing list ChosenRestaurantsList.
Asking a question for each member of a randomized list, using a grid-style question
Learning Objectives:
a) Illustrates the following functions:
- ADD
- RANDOMIZE
b) Demonstrates how to randomize a list of members to be shown in a question.
c) Demonstrates how to use a constructed list in a grid-style question.
The Questionnaire:
<Show grid, where rating scale is in the columns and statements are in the rows. Randomize order of statements.>
Solution:
For this illustration, we assume you already know the basics of building questions in Lighthouse Studio. Therefore, we only provide details regarding the more advanced functions of list building.
This example does not need to employ constructed lists at all, since you can simply request that the members be randomized within grid questions. However, to illustrate constructed lists, we provide this as a simple example. Using constructed lists in this case does provide an advantage over simply requesting that the rows be randomized in a grid-type question. If you create a constructed list with the randomized members, information describing the order of the members for respondents is saved and can be analyzed. Also, if you wanted to show this same randomized list in another part of the questionnaire (preserving the randomized order within respondents), you could do so when using constructed lists.
1. The question in this example uses a list of six statements to describe a commercial respondents have just seen. You'll need to specify these six members as a predefined (parent) list. You can either specify the list while writing the question, or from the main menu by clicking Compose | Lists (accessing the List Manager dialog). In either case, you are establishing a predefined list of members that you can use in this question and elsewhere in the questionnaire. For this example, we suggest you use the list manager (Compose | Lists, then select Predefined List) to build the predefined list named StatementsList containing the six statements. (Lighthouse Studio is not case sensitive with respect to list names.)
2. Next, we need to create a new constructed list that includes all the elements from our predefined list StatementsList, but in randomized order. From the main menu, click Compose | Lists to access the Lists dialog. Click Add, and then select Constructed List. Name the new list RandStatementsList. The key rule to remember when constructing new lists is that all the response options (list members) moved into this new list must originate from the same predefined (parent) list. For this questionnaire, all the response options you'll use to build RandStatementsList come from StatementsList. Using the drop-down Parent List control, select the parent list StatementsList.
To begin with, the constructed list is empty even though you have specified that you'll be using members from StatementsList. Type the list building instructions that create the new constructed list:
ADD (StatementsList)
RANDOMIZE ()
These instructions add all members from the predefined list StatementsList onto the current constructed list (RandStatementsList). Then, all members are randomized.
3. Finally, you need to add the grid-style question to the questionnaire, which uses row-based question direction, with all radio buttons. While editing the question, on the Rows tab, select that you want to use the constructed list RandStatementsList.
Adding brands to a list that were rated highly in a grid question
Learning Objectives:
a) Illustrates the following functions:
- AIG ("Add If Greater")
- RANDOMIZE
The Questionnaire:
<Question: FamRx>
<Question: Effective>
Solution:
For this illustration, we assume you already know the basics of building questions in Lighthouse Studio. Therefore, we only provide details regarding the more advanced functions of list building.
1. The question uses a list of five drugs. Specify this predefined list by adding this question (call it FamRx) to your questionnaire as a grid-type question (row-based question direction) and while editing FamRx and within the Rows tab, adding the list members. Alternatively, you can directly add the predefined list under Compose | Lists (the List Manager dialog). In either case, you are establishing a predefined list of members that we can use for FamRx and elsewhere in the questionnaire. We'll use this predefined list as a source "parent list" for building the constructed (customized) list of familiar drugs. Call the predefined list FamRxRowList (which is the default name for the list if adding members from the Rows tab for FamRx). Lighthouse Studio is not case sensitive with respect to list names.
Add a page break after question FamRx.
2. The list of members to be displayed in Effective must be customized (constructed) for each respondent, depending on the answers given in question FamRx. To accomplish this, we create a new constructed list. From the main menu, click Compose | Lists to access the Lists dialog. Click Add, and then select Constructed List. Name the new list FamiliarDrugsList. The key rule to remember when constructing new lists is that all the response options (list members) moved into this new list must originate from the same predefined (parent) list. For this questionnaire, all the response options you'll use to build FamiliarDrugsList come from FamRxRowList. Using the drop-down Parent List control, select the parent list FamRxRowList.
To begin with, the constructed list is empty even though you have specified that you'll be using members from FamRxRowList. Type the list building instructions that create the new FamiliarDrugsList:
AIG (FamRx, 2)
RANDOMIZE ()
These instructions add any members from question FamRx rated greater than a 2 to the constructed list and then randomize their order.
(Note: Remember that Lighthouse codes the values for grid questions sequentially from 1 on the left-most column to 4 in the fourth column. If you had reversed your labels to display a 4 on the left and a 1 on the far right, Lighthouse would not pay attention to your labeling and would still consider the ratings as running from 1 to 4 from left to right.)
3. Finally, add a new grid question after the page break named Effective (row-based question direction) with radio buttons and specify that it uses the new constructed list FamiliarDrugsList from the Rows tab.
Asking follow-up grid questions about brands chosen in a previous question
Learning Objectives:
a) Illustrates the following functions:
- AIC ("Add If Chosen")
- LISTMAX
- RANDOMIZE
b) Demonstrates how to include a subset of brands selected in follow-up grid-type questions.
c) Demonstrates how to limit the number of brands used in subsequent questions to no more than a maximum number. Shows how to force the client's brand onto the list, if respondents have visited the client's restaurant.
The Questionnaire:
Q10. Which of the following fast-food restaurants have you visited in the last 6 months? <Randomize order for options 1 through 9. "None of the above" is exclusive.>
A & W
Arby's
Burger King
Dairy Queen
Hardee's
McDonald's
Subway
Taco Bell
Wendy's
Other Specify (1) ______________________
Other Specify (2) ______________________
None of the above
Next, we'd like to ask you to evaluate the restaurants you have visited in the last six months.
Q11a. How would you rate the restaurants you have visited in terms of Cleanliness?
1 = Poor
2 = Fair
3 = Good
4 = Excellent
Q11b. How would you rate the restaurants you have visited in terms of High Quality Food?
Q11c. How would you rate the restaurants you have visited in terms of Good Value for Money?
Q11d. How would you rate the restaurants you have visited in terms of Enjoyable Atmosphere?
<For Q11a through Q11d, use grid layout, with restaurants chosen in Q10 in the rows and the rating scale in the columns. Randomize order of presentation of restaurants, with a maximum of 5 restaurants to be rated. Always include Subway if respondent chooses Subway in Q10. Do not ask respondents to rate any "Other Specify" restaurants from Q10. Randomize the order of presentation of questions Q11a through Q11d and place each on a separate page.>
Solution:
For this illustration, we assume you already know the basics of building questions in Lighthouse Studio. Therefore, we only provide details regarding the more advanced functions of list building.
1. Q10 uses a list of twelve response members (fast-food restaurants) that you must specify as a predefined list. Specify this predefined list by adding Q10 to your questionnaire as a select-type question (check box select format) and while editing Q10 using the Response Options tab, or you can directly add the predefined list under Compose | Lists (the List Manager dialog). In either case, you are establishing a predefined list of members that we can use for Q10 and elsewhere in the questionnaire. We'll use this predefined list as a source "parent list" for building the constructed (customized) list of fast-food restaurants we'll use for Q11. Call the predefined list RestaurantsList. Lighthouse Studio is not case sensitive with respect to list names.
2. After specifying the 12 list members in RestaurantsList, highlight member 10 ("Other Specify (1)") and check the available box to indicate that it is an "other specify" response. Repeat for the additional Other Specify list member 11. For list member 12, highlight it and check the box to indicate that it is "Exclusive/None of the above" (meaning that if respondents check this category, it is the only check allowed). We also need to randomize members 1 through 9 and we can do this by clicking Randomize Response Options from the Response Options tab. (Note that the "None of the Above" and the "Other Specify" are automatically not randomized if they are at the bottom of the list.)
Add a page break after Q10.
3. For Q11, we need to show the text "Next, we'd like to ask you to evaluate the restaurants you have visited in the last six months." at the top of the question, but we'll be randomizing the presentation of the remaining sections (subsections a through d). Specify a Text question called Q11intro and include the introductory sentence "Next, we'd like to ask you to evaluate the restaurants you have visited in the last six months."
4. The most challenging aspect of this example is to create the customized list of restaurants to include in Q11a through Q11d. We need to:
• | Include restaurants chosen in Q10 (up to a maximum of 5) |
• | Randomize order of presentation of restaurants |
• | Always include Subway if respondent chooses Subway in Q10 |
• | Do not ask respondents to rate any Other Specify restaurants from Q10. |
To accomplish this, we create a new constructed list to use in Q11a. From the main menu, click Compose | Lists to access the Lists dialog. Click Add, and then you should select Constructed List. Name the new list VisitedRestaurantsList. The key rule to remember when constructing new lists is that all the response options (list members) moved into this new list must originate from the same predefined (parent) list. For this questionnaire, all the response options you'll use to build VisitedRestaurantsList come from RestaurantsList. Using the drop-down Parent List control, select the parent list RestaurantsList.
To begin with, the constructed list is empty even though you have specified that you'll be using members from RestaurantsList. Type the list building instructions that create the new VisitedRestaurantsList:
AIC (Q10, 7)
AIC (Q10, 1, 9)
RANDOMIZE (2, 9)
LISTMAX (5)
RANDOMIZE ()
We describe these instructions one at a time below.
AIC (Q10, 7)
First, we force Subway (the 7th member on the parent list) onto the constructed list if it is chosen (you'll see further below why it was important to force it initially into the first position).
AIC (Q10, 1, 9)
Next, we add any other members (but not including the "Other Specifies" or "None of the above") chosen in Q10. These new members are placed on the constructed following Subway, if Subway was chosen. Note that if a list member (Subway) already exists on the constructed list, if a new instruction attempts to add the same member, it will not be added again (no duplicates are permitted).
RANDOMIZE (2, 9)
We always want to include Subway on the final list (if chosen). Subway, if chosen, is in the first position on the constructed list. Other brands (following in positions 2 up to 9) are randomized.
ListMax (5)
We only want to ask about a maximum of 5 restaurants in Q11, so we trim the list using the ListMax instruction (which always trims from the bottom).
Randomize ( )
Finally, we randomize the remaining elements on the list, so that Subway (if chosen) isn't always in the first position.
4. Add Q11a through Q11d as grid-style questions to the questionnaire. Each of these uses the same setup and constructed list. Remember for each question to use the constructed list VisitedRestaurantsList as the row members. The only aspect that changes across the questions is the performance attribute referred to in the heading text (such as Cleanliness, High Quality Food, Good Value for Money, Enjoyable Atmosphere). The easiest way to accomplish this is by copying and pasting Q11a within the list of questions. Highlight Q11a and click the Copy icon (or press Ctrl-C), then click the Paste icon (or press Ctrl-V). A copy of the question is placed in the question list, but with a numeric index after the name. You can change the default name while editing the question, by clicking the Rename button. Create three more copies of Q11a and change the wording in the header of each to insert "High Quality Food," "Good Value for Money," and "Enjoyable Atmosphere."
Insert a page break between the Q11a to Q11d questions and randomize the order of these questions by clicking the Randomize…Pages button on the Write Questionnaire dialog and selecting Q11a and Q11d as the anchor questions for the randomization sequence.
Gas station questionnaire
Learning Objectives:
a) Illustrates the following functions:
- ADD
- AIC ("Add If Chosen")
- ANC ("Add if Not Chosen")
- RANDOMIZE
- REMOVE
b) Uses skip patterns to skip a question and to terminate disqualified respondents
c) Demonstrates how respondent-supplied "other specify" answers can be used as response members in subsequent questions.
The Questionnaire:
Q1. Which of the following gas stations have you visited in the last year to purchase fuel for your vehicle?
<Select all that apply. Randomize options 1 through 5. Response option 9 is exclusive. Terminate if don't ever purchase fuel.>
1 Chevron
2 Shell
3 Sinclair
4 Texaco
5 Union 76
6 Other Specify (1) _________________________
7 Other Specify (2) _________________________
8 Other Specify (3) _________________________
9 I don't ever purchase fuel (none of the above)
Q2. Of those that you have visited, which gas station do you use most often?
<Select one. Show gas stations chosen in Q1, including any "other specifies". >
Q3. Among those gas stations you have not visited in the last year, which of these are available in your community? <Show all gas stations not selected in Q1. Select all that apply.>
Q4. What are the main reasons you haven't visited Texaco, even though it is available in your community?
<Open-end. Ask if not visited Texaco in last year and is available within respondent's community>
Q5. Thank you, those are all the questions we have for you today.
Solution:
For this illustration, we assume you already know the basics of building questions in Lighthouse Studio. Therefore, we only provide details regarding the more advanced functions of list building and skip patterns.
1. Q1 uses a list of nine response members (gas stations) that you must specify as a predefined list. Specify this predefined list by adding Q1 to your questionnaire as a select-type question (check box select format) and while editing Q1 using the Response Options tab, or you can directly add the predefined list under Compose | Lists (the List Manager dialog). In either case, you are establishing a predefined list of members that we can use for Q1 and elsewhere in the questionnaire. We'll use this predefined list as a source "parent list" for building subsequent constructed (customized) lists we'll need for later questions in this example. Call the predefined list StationsList. Lighthouse Studio is not case sensitive with respect to list names.
2. After specifying the 9 list members in StationsList, highlight member 6 ("Other Specify (1)") and check the available box to indicate that it is an "other specify" response. Repeat for the additional Other Specify list members 7 and 8. For list member 9, highlight it and check the box to indicate that it is "Exclusive/None of the Above" (meaning that if respondents check this category, it is the only check allowed).
Also note that you need to make Q1 a multi-select (Check Box) question and this is specified on the Settings tab.
3. Prior to showing the response members in Q1, you need to randomize the order of the gas stations (members 1 to 5). There are two ways to do this. You can either randomize the members for this question only (question-level randomization, from the Response Options tab while editing question Q1), or you can create a new list (a "constructed" list) to use in Q1 using the response members from your predefined list StationsList and then randomize the subset of members on that new list. The advantages of using the list-building approach to randomizing the list of gas stations for Q1 are that you can use this same randomized list later in the questionnaire, should you want to present this list again using the same randomized order for that respondent. Also, should you want to know the order of the randomized members for each respondent, that information would be available in the database. Although it is easier to use question-based randomization, let's use list building operations with constructed lists for illustration.
From the main menu, click Compose | Lists… to open the Lists dialog. Click Add, and then you should select Constructed List. Name the new list RandStationsList. The key rule to remember when constructing new lists is that all the response options (list members) moved into this new list must originate from the same predefined (parent) list. For this questionnaire, all the response options you'll use to build RandStationsList come from StationsList. Using the drop-down Parent List control, select the parent list StationsList. Next, type the list building instructions that create the new RandStationsList. To begin with, the constructed list is empty even though you have specified that you'll be using members from StationsList. For this example, you first need to move the members from the parent list onto the new list, and following that need to randomize members 1 through 5. The following instructions typed into the Constructed List Instructions edit box provided accomplish this:
ADD (StationsList)
RANDOMIZE (1, 5)
Any instructions you use are processed one-at-a-time, in a linear fashion, started from the first instruction and working through the last instruction. You can check your syntax by clicking the "Check" icon.
• | "ADD (StationsList)" takes all list members from the predefined StationsList and adds them to the constructed list you are building "RandStationsList". |
• | "RANDOMIZE (1, 5)" randomizes elements 1 through 5 of the current constructed list. |
Note that switching the order of these instructions would matter. The randomize instruction would be meaningless in the first position, as there would be no members yet in the constructed list to randomize. (ADD adds the list members.)
4. Now that you have created the list containing the response options to use in Q1 (the constructed list, RandStationsList), you need to tell Lighthouse Studio to use that list within Q1. If you haven't already done so, create a new select-type question called Q1. While editing Q1, click the Response Options tab. Click the Existing List button and using the drop-down control select to use RandStationsList as response options for Q1. The list members from the parent list are displayed as a reference.
5. In select-type question Q2, you need to show gas stations that were chosen in Q1. This list of response options will obviously vary per person, so we also must build a constructed list for Q2. Click Compose | Lists… to access the Lists dialog. Add a new constructed list named VisitedStationsList. The parent (predefined) list that this new constructed list will draw from is StationsList. Use the AIC ("Add If Chosen") command to add any members chosen in Q1 to this new constructed list:
AIC (Q1)
Then, when editing Q2 in the Write Questionnaire area, select the VisitedStationsList constructed list as the response options.
Note that when the AIC operates on an Other Specify response, Lighthouse Studio automatically adds the respondent's typed response as a member on the constructed list rather than the original list text. The original list member value is also recorded in the database.
As you add new questions to this questionnaire, insert a page break between each question by clicking the Add Page Break button.
6. In select-type question Q3, you need to show gas stations that were not chosen in Q1. This list of response options obviously varies per person and so we must build another constructed list. Click Compose | Lists to access the Lists dialog. Add a new constructed list named NotVisitedList. The parent (predefined) list that this new constructed list will draw from is StationsList. Use the ANC command "Add if Not Chosen" to add any members not chosen in Q1. We would not want to display any not-selected Other Specify or "none of the above" responses in Q3, so we'll use the REMOVE instruction to remove members 6-9 (the "other specifies" and "none of the above") from the list:
ANC (Q1)
REMOVE (StationsList, 6, 9)
• | "ANC (Q1)" takes any members not selected in Q1 and adds them to this new constructed list. |
• | All members not selected in Q1 have been added to the constructed list with the previous instruction. Since you don't want any of the "other specify" or "none of the above" response members to appear on this new list, use the instruction "REMOVE (StationsList, 6, 9)" to remove members 6 through 9 of StationsList from this new constructed list. |
7. Q4 is an open-end question and Q5 is a terminating question type. They are involved in skip patterns and it makes sense to add these questions to the questionnaire before specifying the related skip logic.
We only want to ask Q4 if the respondent did not visit Texaco in the last year and it was available within their community. We could place a skip instruction on Q4 to determine whether Q4 needs to be skipped. This is called a "pre-skip." Before the question loads on a page, Lighthouse Studio determines whether this question should be displayed or skipped. For this questionnaire, a "pre-skip" could be associated with Q4 that skips Q4 if: Q1_4=1 OR Q3_4=0. In other words, skip Q4 if Texaco was chosen in multiple-select question Q1 (Texaco was visited) or if Texaco was not chosen in Q3 (Texaco was not available in the community). Make sure to use the drop-down box on the skip logic tab to indicate that the skip type is Pre-Skip (executed before the question is shown) and to skip to the Next Question.
8. Finally, we need to create a skip from Q1 to the final question if respondents don't ever purchase fuel. While editing Q1, click the Skip tab and specify to skip from Q1 to Q5 if the following is true: Q1_9=1. (The ninth item in Q1 is "checked".)