kish grid
-
- Posts: 44
- Joined: February 1st, 2018, 9:00 am
kish grid
We have a household questionnaire and based on the household roaster we want to select a single women for detailed interview using kish grid. If someone have the codes for kish grid it would be a great help for us.
-
- Posts: 1801
- Joined: December 5th, 2011, 11:27 pm
- Location: Washington, DC
Re: kish grid
I implemented a Kish grid a few years ago and tomorrow I may be able to find the code that I used.
However, the Kish grid is useful for selecting a participant in the paper environment where you need to select a random number. If you are doing a CAPI survey, can you just replace the Kish grid with a selection using the random function?
However, the Kish grid is useful for selecting a participant in the paper environment where you need to select a random number. If you are doing a CAPI survey, can you just replace the Kish grid with a selection using the random function?
-
- Posts: 44
- Joined: February 1st, 2018, 9:00 am
Re: kish grid
@Gregory Martin thanks. Its a good advice to generate the random number. But my client want the kish grid in capi application. If you can share the codes it will be great help for me.
-
- Posts: 1801
- Joined: December 5th, 2011, 11:27 pm
- Location: Washington, DC
Re: kish grid
This is for something that I did in 2011. The Kish grid was declared in PROC GLOBAL:
What Kish Grid table number has been assigned to this household?
The responses were as follows:
PROC GLOBAL
array kishGrid(8,6) = 1 1 1 1 1 1
1 1 1 1 2 2
1 1 1 2 2 2
1 1 2 2 3 3
1 2 2 3 4 4
1 2 3 3 3 5
1 2 3 4 5 5
1 2 3 4 5 6;
Then, after the population roster was filled, this question was asked:array kishGrid(8,6) = 1 1 1 1 1 1
1 1 1 1 2 2
1 1 1 2 2 2
1 1 2 2 3 3
1 2 2 3 4 4
1 2 3 3 3 5
1 2 3 4 5 5
1 2 3 4 5 6;
What Kish Grid table number has been assigned to this household?
The responses were as follows:
A 1
B1 2
B2 3
C 4
D 5
E1 6
E2 7
F 8
And a variable was filled in with the name of the selection:B1 2
B2 3
C 4
D 5
E1 6
E2 7
F 8
PROC KISH_TABLE
// calculate the kish grid selection
numeric kishSelection = kishGrid(KISH_TABLE,( totocc(POP_REC) - 1 ) % 6 + 1);
chosenName = NAME(kishSelection);
// calculate the kish grid selection
numeric kishSelection = kishGrid(KISH_TABLE,( totocc(POP_REC) - 1 ) % 6 + 1);
chosenName = NAME(kishSelection);
-
- Posts: 4
- Joined: November 1st, 2021, 8:42 am
Re: kish grid
Hello, I'm Rama from Indonesia
I also have activities about using this KISH Grid but according to age not gender
may i have an example of ent for kish grid ?
thank you
I also have activities about using this KISH Grid but according to age not gender
may i have an example of ent for kish grid ?
thank you
-
- Posts: 4
- Joined: November 1st, 2021, 8:42 am
Re: kish grid
This is the questionnaire that will be used,
This kish grid will be used if the age is more than 15 years and he will be at home another day
I hope I can be helped
thank you.
This kish grid will be used if the age is more than 15 years and he will be at home another day
I hope I can be helped
thank you.
- Attachments
-
- QX KISH GRID.docx
- Please help Kish Grid Program
- (16.1 KiB) Downloaded 177 times
Re: kish grid
Hi Rama,
Often a Kish grid is a 10x10 matrix. One indice (say X) is taken from the last digit of one of the ID # (that indice would go from 0-9). The other indice (say Y), corresponds to how many people meet the selection criteria (that indice would go from 1-10). If this is a household, generally you will never have more than 10 people that meet your criteria. If you do, then subtract 10 from the #. For your QRE, Y would be calculated as:
If your household number was 4 digits, then the rest of the logic would read:
Sherrell
Often a Kish grid is a 10x10 matrix. One indice (say X) is taken from the last digit of one of the ID # (that indice would go from 0-9). The other indice (say Y), corresponds to how many people meet the selection criteria (that indice would go from 1-10). If this is a household, generally you will never have more than 10 people that meet your criteria. If you do, then subtract 10 from the #. For your QRE, Y would be calculated as:
Y = count (PERSON_REC where Q106=1 and Q107=1);
Once you know that #, and if it is non-zero, you can just lookup the value in your Kish grid.If your household number was 4 digits, then the rest of the logic would read:
if Y then
if Y > 10 then Y = Y-10; endif; // in case more than 10 people meet this condition
X = HH_NUM - (int(HH_NUM*0.1)*10); // strip off the last #
Selected_Person = KishArr (X, Y); // use that last # as one of the indices
endif;
Welcome to the CSPro Forum!if Y > 10 then Y = Y-10; endif; // in case more than 10 people meet this condition
X = HH_NUM - (int(HH_NUM*0.1)*10); // strip off the last #
Selected_Person = KishArr (X, Y); // use that last # as one of the indices
endif;
Sherrell