Company News Products Projects Texts Museum Download Contact Map RSS Polski
YAC Software Texts YAC Data Language Example of quota checking Trybiks' Dive
  Back

List

Data

Excel

Media research

Market research

Respondent quotas

SPSS

VBA

YAC Data Language

Example of quota checking
YAC Interview Kit may control quotas during a survey. Usually, these are very simple definitions specifyng the maximum sample sizes based on responses to several single-choice or numeric responses.

Let's take, for instance, groups defined by the frequency of usage of 4 products groups:
  def quota
    def limit max = 100; quota_1 = a; end;
    def limit max = 100; quota_1 = b; end;
    def limit max = 100; quota_1 = c; end;
    def limit max = 100; quota_1 = d; end;
  end;
  
  def questionnaire
  
    def question
      id = freq;
      text = "Which product do you use most often?";
      quota = quota_1;
      rand = 1;
      def response id = a; text = "Product A"; end;
      def response id = b; text = "Product B"; end;
      def response id = c; text = "Product C"; end;
      def response id = d; text = "Product D"; end;
    end;
  
    . . .
  end;
The first section defines 4 groups of respondents, with a limit of 100 interviews in each group. These groups are then defined in the first question of the questionnaire by mapping that question to quota_1 (response identifiers are then mapped to those used in quota limits' definitions).

However, we don't always want to ask the first question in such a direct way - for instance, the respondent may have trouble deciding or correctly estimating which product is the one he/she buys most often. For the sake of argument, let's assume that that's the problem in this case. We would like to ask, for each product group, how often does the respondent buy such products. In the case when two or more products are being bought with the same frequency, then we ask, which of these products is being bought more often.

The definitions in the quota section will stay the same - we want at most 100 respondents for each product. However, the questionnaire part will get a bit more complex now and we will be using some tricks available in YAC Interview Kit.

So first, let's ask about the frequency of usage of the four products. This can be done in a single table, where the brand names are shown in random order:
  def questionnaire
  
    def question
      id = freq;
      text = "How often do you use these products?";
      display = horiz;
      def axis
        id = brands;
        rand = 1;
        def response id = a; text = "Product A"; end;
        def response id = b; text = "Product B"; end;
        def response id = c; text = "Product C"; end;
        def response id = d; text = "Product D"; end;
      end;
      def axis
        def response id = voften;    text = "very often";  end;
        def response id = often;     text = "quite often"; end;
        def response id = sometimes; text = "sometimes";   end;
        def response id = rarely;    text = "rarely";      end;
        def response id = never;     text = "never";       end;
      end;
    end;
  
  . . .
  
    def question
      id = next;
      . . .
    end;
  
  end;
A couple of notes about the code above:

This is a table, where for each brand (the first axis) one of the responses from the second axis may be chosen. Also, brands will be shown in random order. We added a "next" question - assume this is the first question of quota checking questions. We will need this question as a jump destination later on.

So now, what we have to do, is to get the product that is used most often and use its identifier in the quota definition. However, from the question above we may get that two products that are used equally often (at least as far as the scale above allows). In such a case we must ask the user which is the product used more often.

Consider the questions below:
  def questionnaire
  
    def question
      id = freq;
      . . .
    end;
  
    def question
      id = freq_voften;
      text = "Which of these brands do you use more often?";
      rand = freq#brands;
      quota = quota_1;
      def response id = a; text = "Product A";
        pre = voften in freq#a; action = goto next; end;
      def response id = b; text = "Product B";
        pre = voften in freq#b; action = goto next; end;
      def response id = c; text = "Product C";
        pre = voften in freq#c; action = goto next; end;
      def response id = d; text = "Product D";
        pre = voften in freq#d; action = goto next; end;
    end;
  
    def question
      id = freq_often;
      text = "Which of these brands do you use more often?";
      rand = freq#brands;
      quota = quota_1;
      def response id = a; text = "Product A";
        pre = often in freq#a; action = goto next; end;
      def response id = b; text = "Product B";
        pre = often in freq#b; action = goto next; end;
      def response id = c; text = "Product C";
        pre = often in freq#c; action = goto next; end;
      def response id = d; text = "Product D";
        pre = often in freq#d; action = goto next; end;
    end;
  
    // Repeat for the "sometimes" and "rarely" responses in question freq.
  
    def question
      id = next;
      . . .
    end;
First, the rand instruction tells the program to display responses in the same order as responses in the brands axis of question with the freq identifier.

Next, we're specifyng that this question is a quota question - if a responses is chosen, it should be taken into account when controlling quota sizes.

Third, each response has a pre condition specified that must be met for the response to be displayed. So, let's see what happens depending on the responses in the freq question:
  • "very often" wasn't selected for any of the brands;
    in this case, the question will not be shown - there are no responses that the respondent could select. No quota data is written or checked.
  • "very often" was selected for a single brand; thus a single-choice response would display a single response; in this case, YAC Interview Kit doesn't display such questions, but selects the response automatically. Quota data is written for this automatically selected response.
  • "very often" was selected for several brands; this question is then shown with those brands only and the respondent must choose the brand being used more often. Quota data is written for the selected response.
Fourth, there's an action specified for each response - the action will be taken if a response is selected. In the first case above, no responses are selected, so the action is not taken. Thus the program will go on to question freq_often.

However, in the other two cases we already have the brand that is used most often, so there's no need about asking this question for brands used "often", "sometimes", or "rarely". So let's just skip to the first question after quota control - question "next".

The script looks pretty complicated, but fortunately, to the respondent, it is quite simple. First we show the table, and then, only if we have two or brands used most often, we will get a single follow up question on which of these brands is the one used most often. And, if a single brand is selected as being used most often, there even won't be a follow up question.

This case actually came up in a survey that GaduSonda had to run for one of its clients. So the above wasn't just some theoretical musing, but a real world example! :-)

Top

Comments
Alas!
No comments yet...

Top

Add a comment (fields with an asterisk are required)
Name / nick *
Mail (will remain hidden) *
Your website
Comment (no tags) *
Enter the text displayed below *
 

Top

Tags

YAC Data Language

Respondent quotas


Related pages

Single- and multi-choice responses (not questions)

Nested randomized blocks

Quotas in YAC Interview Kit

Handling missing data in filter expressions

noback vs. noret

YAC Data Language