0 votes
in SoSci Survey (dt.) by s155949 (160 points)
edited by s155949

Liebes Support-Team,

Ich habe eine etwas längere Fragestellung, bei der ich Ihre Hilfe benötige.

Grundsätzlich, möchte ich eine Discrete-Choice-Analyse durchführen. Dabei sollen die Teilnehmenden an der Umfrage jeweils 2 Alternativen vorgelegt bekommen und sich für eine entscheiden müssen.

Jede Alternative besteht aus 4 Attributen (Abgabesatz, Verwendungszweck, Ertragsaufteilung und Mindestfreigrenze). Jedes Attribut hat eine unters. Anzahl an Attributeigenschaften, davon wird je eine Attributeigenschaft pro Attribut ausgesucht. Die Zusammenstellung sieht wie folgt aus:

Ich habe also in einem ersten Schritt eine Urne erstellt, welche mir von den 180 Kombinationen zwei zufällig herauszieht. Dies sieht wie folgt aus:

    $kombinationen = array(
    1 => array('20'.'%','allgemeines Gemeinde'.'- oder Kantonsbudget','100'.'% an den Kanton','keine Freigrenze'),
    2 => array('20'.'%','allgemeines Gemeinde'.'- oder Kantonsbudget','50'.'% an Kanton und 50'.'% an Gemeinde','keine Freigrenze'),
    3 => array('20'.'%','allgemeines Gemeinde'.'- oder Kantonsbudget','100'.'% an d'.'ie Gemeinde','keine Freigrenze'),
    4 => array('20'.'%','allgemeines Gemeinde'.'- oder Kantonsbudget','100'.'% an den Kanton','unter 20 000 CHF abgabefrei'),
...
    178 => array('60'.'%','raumplanerischen Tätigkeiten','100'.'% an den Kanton','unter 100 000 CHF abgabefrei'),
    179 => array('60'.'%','raumplanerischen Tätigkeiten','50'.'% an Kanton und 50'.'% an Gemeinde','unter 100 000 CHF abgabefrei'),
    180 => array('60'.'%','raumplanerischen Tätigkeiten','100'.'% an d'.'ie Gemeinde','unter 100 000 CHF abgabefrei'),
);

Ich möchte nun als zweiten Schritt, dass diese Eigenschaften der beiden gezogenen Kombinationen je als einzelne Platzhalter abgespeichert werden, d.h. für jede gezogene Kombination (Zeile oben) soll es mir 4 Platzhalter kreieren. Dazu dieser Auschnitt des PHP-Codes ('AP10' = Urne mit den 2 von 180 gezogenen Kombinationen/Zeilen):

$variants = valueList('AP10');
debug($variants);
foreach ($variants as $varID => $code) {
  $data = $kombinationen[$code];
foreach ($data as $i => $text) {
    replace('%'.$varID.'_'.($i+1).'%', $text);
    }
}

Als dritter Schritt möchte ich die Platzhalter in die Zelle der Tabelle (unten) abfüllen, sodass die Teilnehmenden der Umfrage auch sehen, zwischen welchen beiden Alternativen sie sich entscheiden müssen.

html('
<table border="1" width="100%" cellspacing="0">
    <colgroup>  
    <col width="25%">   
    <col width="37.5%">
    <col width="37.5%">
    </colgroup>
    <tr>
        <td></td>
        <td bgcolor="lightgray"><b>Alternative 1</b></td>
        <td bgcolor="lightgray"><b>Alternative 2</b></td>
    </tr>
    <tr>
        <td bgcolor="lightgray"><b>Abgabesatz</b></td>
        <td> '.%AP10_01_1%.' </td>
        <td> '.%AP10_02_1%.' </td>
    </tr>
    <tr>
        <td bgcolor="lightgray"><b>Verwendungszweck</b></td>
        <td> '.%AP10_01_2%.' </td>
        <td> '.%AP10_02_2%.' </td>
    </tr>
    <tr>
        <td bgcolor="lightgray"> <b>Ertragsaufteilung</b> </td>
        <td> '.%AP10_01_3%.' </td>
        <td> '.%AP10_02_3%.' </td>
    </tr>
    <tr>
        <td bgcolor="lightgray"><b> Mindestfreigrenze</b> </td>
        <td> '.%AP10_01_4%.' </td>
        <td> '.%AP10_02_4%.' </td>
    </tr>
</table>
');

Meine Fragen lauten wei folgt:
Schritt 2: Ich erhalte folgende Fehlermeldung, weiss allerdings nicht wieso diese auftreten. Denn die Urne zeigt ihre gezogenen Objekte mit debug() an, somit sollten sie definiert sein.

Schritt 3: Bei der Verlinkung zur Tabelle erscheint diese Fehlermeldung unten. Ich möchte am Schluss keine Zahl darin haben, sondern der Textinhalt der Attributeigenschaft aus der Kombination.

Generell denke ich es liegt am zweiten Schritt des PHP-Codes.

Ich verzweifle langsam und mache mir sorgen, dass ich die Umfrage gar nie lancieren kann. Falls jemand noch eine andere Heransgehesweise für eine Discrete-Choice-Umfrage hat, lassen Sie es mich wissen!

Vielen Dank bereits im Voraus und beste Grüsse

2 Answers

0 votes
by SoSci Survey (330k points)

Beginnen wir einmal mit den Fehlermeldungen.

Die erste Fehlermeldung "undefined index 189" bedeutet einfach, dass Sie in Ihrer Liste nur Kombinationen bis Nr. 180 definiert haben - aber versuchen, eine mit dem Code 189 aufzurufen.

Bitte prüfen Sie Ihre Urne (oder wahrscheinlich eher einen Zufallsgenerator?), ob dort irgendwo die 189 steht.

Und die zweite Fehlermeldung ... wenn Sie mit Platzhaltern arbeiten, dann lassen Sie die Anführungzeichen weg:

<tr>
    <td bgcolor="lightgray"><b>Abgabesatz</b></td>
    <td>%AP10_01_1%</td>
    <td>%AP10_02_1%</td>
</tr>

Die Platzhalter können nämlich nicht als PHP-Variablen verwendet werden.

by s155949 (160 points)
Die Liste habe ich kontrolliert, sie geht nur bis 180. Die Anführungszeichen beim Platzhalter habe ich gelöscht! Danke vielmals!
Neu erscheint bei debug() folgender Hinweis: $code = string und $data -> keine Daten (null).
0 votes
by s155949 (160 points)

Mit Hilfe konnte ich das Problem wie folgt lösen:

  1. Die Frage zur Zufallsziehung (hier 'AP10') muss auf die gleiche Seite wdes Fragebogens wie der PHP-Code.
  2. Gesamte Anzahl an Kombinationen (180) ins Feld "Zettel (Inhalte)" bei der Frage 'AP10' einfügen, davon dann 2 Zettel pro Interview ziehen (Feld weiter unten).
  3. Der Platzhalter ist %AP10x01_1% und nicht %AP10_01_1%

Herzlichen Dank für die gute Unterstützung!

Willkommen im Online-Support von SoSci Survey.

Hier bekommen Sie schnelle und fundierte Antworten von anderen Projektleitern und direkt von SoSci Survey.

→ Eine Frage stellen


Welcome to the SoSci Survey online support.

Simply ask a question to quickly get answers from other professionals, and directly from SoSci Survey.

→ Ask a Question

...