# Ranking questions based on how many participants answered "yes"

I have some data from a survey. In one question of the survey, participants were asked to choose one of nine objects from a given list. They then answered several "yes" and "no" questions about that object they chose.

I want to be able to create a kind of "profile" for each of the nine objects by using the top 20% or so of questions the participants answered "yes" to for that object.

So for example, let's say one of the nine objects is a dog. I want to look at all participants who chose the dog and look at the questions for which majority of them answered "yes." So let's say one of the questions was "Do you think a dog is loyal?" and this is the question to which most people answered "yes." So I could conclude that most people think dogs are loyal.

How would I go about seeing the top agreed-upon questions for each of the nine objects? Note that each participant only rates one of the nine objects but answers all the same questions. I heard that factor analysis might be used in this case, but I am not sure I understand it.

Also, I am using SPSS for analysis, if that is helpful.

• I don't see how inter-rater reliability would be applicable at all here, @Tim. Could you expand on this rather than simply just supplying a link? Mar 14, 2016 at 20:56

Before you go into factor analysis, I think a simple aggregation might get you pretty far - I assume the nine questions are coded 1 for "yes" and 0 for "no". If not you can use this:

recode Q1 to Q9 ("yes"="1")("no"="0").
alter type  Q1 to Q9 (f1).


Now use aggregate to count the percentage of positive answers to each question for every group:

DATASET DECLARE AggData.
AGGREGATE
/OUTFILE='AggData'
/BREAK=ObjectName
/PQ1 to PQ9=mean(Q1 to Q9).


Look the AggData file - you can pick, for each ObjectName, the questions with the highest "yes" rate. You might now use the flip or varstocases commands to change the structure of your data so you can sort the questions by their "yes" rate, BUT I suggest saving the file to Excel and there you can more easily transpose the data, sort the questions, and\or use conditional formatting to get a visual impression of the results.

• Ok, so I did that for the 65 questions, breaking by the question asking about the object they chose. Now I have the aggregate data file with 9 rows (I assume those are the nine objects) and 65 columns (one for each question). The cells contain a number between 1 and 2. What do these numbers represent? They can't be an average, can they? Am I looking for higher values to be higher "yes" rates?
– N-C
Mar 14, 2016 at 23:51
• sounds like your original questions weren't coded as ones and zeros before aggregating. first make sure that yes=1 and no=0, then the mean for the question gives you the rate of "yes" answers. Mar 15, 2016 at 5:50
• you can also keep your present coding and in the aggregate command, instead of MEAN use (say your code for "yes" is 2): /PQ1 to PQ9=Pin(Q1 to Q9 2 2) This will give you for each question the percentage of "yes" answers Mar 15, 2016 at 17:08
• Ah yes, for some reason my re-coding to 0 and 1 didn't work. I had it as 1 and 2. In this case, I could just look for answers closer to 1 to be "yes" questions, so it still works. Thank you! This gives me a lot of the info I was seeking.
– N-C
Mar 16, 2016 at 17:57