Lazy Pseudo Statistician Looking for Computer To Do Work For Him
March 17, 2009 8:05 PM Subscribe
How can I take a Myers-Briggs test entered into SPSS in a per question format and get a Myers-Briggs Type for each of 92 participants?
I've tried Google and am getting nothing. I downloaded a trial so I can work on it at home while I'm on Spring Break, and the Help files didn't install or something to where the end result is that I can't use them. I'm also kicking myself for not getting my text back after letting someone borrow it for my school's stats class.
I have 92 surveys, part of which is a Myers-Briggs Personality Test. I've entered the data on a question by question basis, where each of the 20 Myers-Briggs questions has an option value of either 1 or 2 (representing E or I, S or N, T or F, or J or P depending on the question).
I know I can get a frequency to get the personality type of the entire sample population. But how can get SPSS to score he Myers-Briggs for me on a survey by survey basis?
If it would be easier, I also have the surveys available and can go score them all by hand. But I'd rather not to that if I don't have to.
I've tried Google and am getting nothing. I downloaded a trial so I can work on it at home while I'm on Spring Break, and the Help files didn't install or something to where the end result is that I can't use them. I'm also kicking myself for not getting my text back after letting someone borrow it for my school's stats class.
I have 92 surveys, part of which is a Myers-Briggs Personality Test. I've entered the data on a question by question basis, where each of the 20 Myers-Briggs questions has an option value of either 1 or 2 (representing E or I, S or N, T or F, or J or P depending on the question).
I know I can get a frequency to get the personality type of the entire sample population. But how can get SPSS to score he Myers-Briggs for me on a survey by survey basis?
If it would be easier, I also have the surveys available and can go score them all by hand. But I'd rather not to that if I don't have to.
Response by poster: Sweet. I knew I should have asked this question earlier. Hopefully I won't break things tomorrow when I attempt to have this do the entire test in one shot tomorrow as opposed to having it do just the Es and Is like it is now.
If anyone else knows of a way to do it I'd love to hear it, but this method does everything I need it to.
posted by theichibun at 10:04 PM on March 17, 2009
If anyone else knows of a way to do it I'd love to hear it, but this method does everything I need it to.
posted by theichibun at 10:04 PM on March 17, 2009
I don't know any SPSS, but a bit of googling suggests that this might work.
Basically, create four variables, one for each Myers-Briggs axis, and initialize them to zero.
Then for each of your twenty answers (per person), convert a "2" to 1, and a "1" to negative 1.
Then look up in the answerkey string which of the four Myers-Briggs axes that answrer applies to. The string is 20 charcters long; each character encodes the axis that answer applies to.
Then add the 1 or -1 to the accumulating value for that axis.
Again, I never saw SPSS syntax before today, and I just cribbed some crap from the web. Obviously, it would have been better to make answerkey's values numeric, and then use that number as an index into an array of accumulators, e.g.:
int answerkey[] = ( 0, 1, 2, 3, 0, 1, 2, 3, 2, 2, 3, 3 ....};
int accums[4] = { 0, 0, 0, 0 };
for( i = 0 ; i < 20; ++i)
accums[ answerkey[i] ] += items[i] == 2 ? 1 : -1 ;
But the above is C, and I don't knw how to do that in SPSS, so the SPSS below looks like:
compute ei = 0.
compute sn = 0.
compute tf = 0.
compute pj = 0.
string answerkey (A20).
computer answerkey = 'entpentpeeeennnnttttpppp'.
vector q = item1 to item20.
loop i = 1 to 20.
compute qc = q(i).
recode qc (2=1) (1=-1).
if (answerkey(i) = 'e' ) ei = ei + qc.
if (answerkey(i) = 'n' ) sn = sn + qc.
if (answerkey(i) = 't' ) tf = tf + qc.
if (answerkey(i) = 'p' ) pj = pj + qc.
end loop.
execute.
posted by orthogonality at 2:58 AM on March 18, 2009
Basically, create four variables, one for each Myers-Briggs axis, and initialize them to zero.
Then for each of your twenty answers (per person), convert a "2" to 1, and a "1" to negative 1.
Then look up in the answerkey string which of the four Myers-Briggs axes that answrer applies to. The string is 20 charcters long; each character encodes the axis that answer applies to.
Then add the 1 or -1 to the accumulating value for that axis.
Again, I never saw SPSS syntax before today, and I just cribbed some crap from the web. Obviously, it would have been better to make answerkey's values numeric, and then use that number as an index into an array of accumulators, e.g.:
int answerkey[] = ( 0, 1, 2, 3, 0, 1, 2, 3, 2, 2, 3, 3 ....};
int accums[4] = { 0, 0, 0, 0 };
for( i = 0 ; i < 20; ++i)
accums[ answerkey[i] ] += items[i] == 2 ? 1 : -1 ;
But the above is C, and I don't knw how to do that in SPSS, so the SPSS below looks like:
compute ei = 0.
compute sn = 0.
compute tf = 0.
compute pj = 0.
string answerkey (A20).
computer answerkey = 'entpentpeeeennnnttttpppp'.
vector q = item1 to item20.
loop i = 1 to 20.
compute qc = q(i).
recode qc (2=1) (1=-1).
if (answerkey(i) = 'e' ) ei = ei + qc.
if (answerkey(i) = 'n' ) sn = sn + qc.
if (answerkey(i) = 't' ) tf = tf + qc.
if (answerkey(i) = 'p' ) pj = pj + qc.
end loop.
execute.
posted by orthogonality at 2:58 AM on March 18, 2009
unrelated ... but ... I have been looking for a paper based MB test. Where did you get yours?
posted by jannw at 4:49 AM on March 18, 2009
posted by jannw at 4:49 AM on March 18, 2009
Response by poster: This is it online with some explanations of stuff and here it is from a different site in a downloadable, text format all zipped up.
posted by theichibun at 6:36 AM on March 18, 2009
posted by theichibun at 6:36 AM on March 18, 2009
This thread is closed to new comments.
If that's the case, the answer is simple. You can be old fashoned and open a new syntax window and use the COMPUTE and IF statements.
If I understand what you're describing, it sounds like you need to create totals based on which option (1 or 2) is chosen for each item. If, for example, an Item1 score of 1 means to bump up the E scale, while a score of 2 on that item means to bump up the I scale, you'd write syntax like this:
COMPUTE E = 0.
COMPUTE I = 0.
DO IF (ITEM1 = 1).
COMPUTE E=E+1.
ELSE IF (ITEM1=2).
COMPUTE I=I+1.
END IF.
EXECUTE.
The first two statements just initialize your scales at 0. The EXECUTE statement is needed at the end the syntax, and periods are needed after each statement. You just highlight the statements and click on the Run button. There are many tutorials on the web that can help you learn how to use SPSS syntax.
posted by jasper411 at 8:45 PM on March 17, 2009