Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

Conjoint Table - Exclusion of Identical Profiles

More
3 hours 25 minutes ago #273265 by PhilippBien
Please help us help you and fill where relevant:
Your LimeSurvey version: [6.16.1]
Own server or LimeSurvey hosting: Own Server
Survey theme/template:
==================
Dear Lime Survey Community,

I am in the process of designing a conjoint experiment. I want to avoid that the two profiles shown in the table are identical. Each row in the conjoint table is determined by two randomization variables. When these variables return the same value, the row in this table will have equal realizations for option a and option b. This is fine as long as it applies only to one row and not to each single row of the table. Because, when that happens, the two options from which respondents are asked to choose are equal, rendering the choice task nonseniscal. I want to avoid this. Can I do this in Lime? Basically, I would need a if-condition that redraws the randomization variables if they are equal for each row in the table.

I have pasted the table code below for reference. If this issue has been raised elsewhere, I am sorry. This is my first post here. Please point me in the right direction, if there is a solution somewhere in the forum. Thank you very much!

<span style="font-size:16px;">
<style type="text/css">table {
  span-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td, th {
  border: 1px solid black;
  text-align: left;
  padding: 8px;
}

  th:nth-child(1), td:nth-child(1) {
    width: 200px;
  }
  
  th:nth-child(2), td:nth-child(2),
    th:nth-child(3), td:nth-child(3) {
        width: 400px;
  }

tr:nth-child(even) {
  background-color: #dddddd;
}
</style>
</span>
<table>
    <tbody>
        <tr>
            <th> </th>
            <th><span style="font-size:16px;">Vorschlag A</span></th>
            <th><span style="font-size:16px;">Vorschlag B</span></th>
        </tr>
        <tr>
            <td><span style="font-size:16px;"><strong>Wer sollte Gesetze vorschlagen?</strong></span></td>
            <td><span style="font-size:16px;">{if(M1CT1rand1a == 1,"Die Europäische Kommission",if(M1CT1rand1a == 2,"Die Europäische Kommission und das Europäische Parlament",if(M1CT1rand1a == 3, "Die Europäische Kommission und der Europäische Rat")))}</span></td>
            <td><span style="font-size:16px;">{if(M1CT1rand1b == 1,"Die Europäische Kommission",if(M1CT1rand1b == 2,"Die Europäische Kommission und das Europäische Parlament",if(M1CT1rand1b == 3, "Die Europäische Kommission und der Europäische Rat")))}</span></td>
        </tr>
        <tr>
            <td><span style="font-size:16px;"><strong>Wer sollte über die Gesetzesvorschläge entscheiden?</strong></span></td>
            <td><span style="font-size:16px;">Der Ministerrat und das Europäisches Parlament</span></td>
            <td><span style="font-size:16px;">Der Ministerrat und das Europäisches Parlament</span></td>
        </tr>
        <tr>
            <td><span style="font-size:16px;"><strong>Wer sollte Gesetze durchsetzen?</strong></span></td>
            <td><span style="font-size:16px;">{if(M1CT1rand3a == 1,"Die Europäische Kommission",if(M1CT1rand3a == 2,"Die Europäische Kommission, aber der Europäische Rat kann Entscheidungen der Kommission blockieren"))}</span></td>
            <td><span style="font-size:16px;">{if(M1CT1rand3b == 1,"Die Europäische Kommission",if(M1CT1rand3b == 2,"Die Europäische Kommission, aber der Europäische Rat kann Entscheidungen der Kommission blockieren"))}</span></td>
        </tr>
        <tr>
            <td><span style="font-size:16px;"><strong>Wer sollte Gesetze aussetzen können?</strong></span></td>
            <td><span style="font-size:16px;">{if(M1CT1rand4a == 1, "Der Ministerrat zusammen mit dem Europäischen Parlament im Rahmen des normalen Gesetzgebungsverfahrens", if(M1CT1rand4a == 2,"Der Europäischer Rat durch Notfallentscheidungen", if(M1CT1rand4a == 3, "Die Europäische Kommission durch Notfallentscheidungen")))}</span></td>
            <td><span style="font-size:16px;">{if(M1CT1rand4b == 1, "Der Ministerrat zusammen mit dem Europäischen Parlament im Rahmen des normalen Gesetzgebungsverfahrens", if(M1CT1rand4b == 2,"Der Europäische Rat durch Notfallentscheidungen", if(M1CT1rand4b == 3, "Die Europäische Kommission durch Notfallentscheidungen")))}</span></td>
        </tr>
    </tbody>
</table>

<p> </p>

 

Please Log in to join the conversation.

More
1 hour 32 minutes ago - 5 minutes ago #273266 by Joffm
Hi,
there are many examples in the forum to display something like a conjoint experiment.
All are adapted from a script (tpartner) to merge the radio buttons into the table and the "banana - green apple" design.
 
To get more information you may read my "Tutorial 3: Gimmicks", Kap. 11 in the German part.
[url] forums.limesurvey.org/forum/german-forum...e-spielereien#252902 [/url]

Now your randomization.
You shouldn't create 6 separate random numbers, but
My solution would be
Create a question of type "long text" (pool) and enter all possible positive (those without doubles) combinations as default answer.
As far as I understand there are 324-16 (identicals) =306 valid combinations
Like (always three rows with two answer options)
#001:121111
#002:131111
#003:211111
...
#305:312233
#306:322233

Now create ONE random number (eqRand) from 1 to the number of combinations and grab this row in an equation (eqComb)
{substr(pool,strpos(pool,join('#',eqRand))+5,6)}
 And you display easily with an IF construct:
Code:
      <tr>
            <td><span style="font-size:16px;"><strong>Wer sollte Gesetze vorschlagen?</strong></span></td>
            <td><span style="font-size:16px;">{if(substr(eqComb,0,1) == 1,"Die Europäische Kommission",if(substr(eqComb,0,1) == 2,"Die Europäische Kommission und das Europäische Parlament",if(substr(eqComb,0,1) == 3, "Die Europäische Kommission und der Europäische Rat")))}</span></td>
            <td><span style="font-size:16px;">{if(substr(eqComb,1,1) == 1,"Die Europäische Kommission",if(substr(eqComb,1,1) == 2,"Die Europäische Kommission und das Europäische Parlament",if(substr(eqComb,1,1) == 3, "Die Europäische Kommission und der Europäische Rat")))}</span></td>
        </tr>


A second solution could be to use javascript to create the final random number.
More or less the same procedure except the option to create a loop that restarts if there are forbidden combinations.

Best you send the lss export of this question.

Joffm
 

Volunteers are not paid.
Not because they are worthless, but because they are priceless
Last edit: 5 minutes ago by Joffm.

Please Log in to join the conversation.

Moderators: tpartnerholch

Lime-years ahead

Online-surveys for every purse and purpose