OToPS/Measures/Hypomanic Personality Scale

scale that was developed in order to identify persons with hypomanic personality traits. Hypomania refers to mild symptoms of mania, and it is often a prodrome for bipolar disorder. Due to hypomania's pre-morbidity with bipolar disorder, Mark Eckblad and Loren J. Chapman created the HPS in order to detect individuals at high risk. The HPS is a self-report questionnaire consisting of 48 True/False questions. It is intended for adults and should take 15-20 minutes to administer. The HPS is one of the most widely used measures of mania and has had a large impact in identifying hypomanic personality in both clinical and research settings.

The Hypomanic Personality Scale (HPS) is a self-report questionnaire that identifies people with high risk for hypomania or bipolar disorder diagnosis in clinical and research settings by asking 48 true/false questions to adults. “Hypomania” refers to a set of trait characteristics including euphoria, gregariousness, and optimism as well as irritability, hyperactivity and recklessness. This is a state of persistent elevation in mood, leading to increased energy, talkativeness, confidence, and many creative ideas. These hypomanic behaviors are problematic by increasing one’s irritability and participation in risky behaviors. Additionally, these people are at an increased risk of experiencing hypomanic episodes and developing bipolar disorder. Hypomania is often premorbid with bipolar disorder, which is a cause of premature death and social impairment. The HPS is a self-report questionnaire developed by Eckblad and Chapman. While Eckblad and Chapman developed the HPS viewing hypomanic personality as one homogenous construct, literature suggests a factor model consisting of 1, 3, or 4 different components.

Reliability
Reliability refers to whether the scores are reproducible. Unless otherwise specified, the reliability scores and values come from studies done with a United States population sample. Here is the rubric for evaluating the reliability of scores on a measure for the purpose of evidence based assessment.

Validity
Validity describes the evidence that an assessment tool measures what it was supposed to measure. There are many different ways of checking validity. For screening measures, diagnostic accuracy and discriminative validity are probably the most useful ways of looking at validity. Unless otherwise specified, the validity scores and values come from studies done with a United States population sample. Here is a rubric for describing validity of test scores in the context of evidence-based assessment.

Impact
This assessment has had extensive impact in both clinical and research settings. Although the HPS does not lead to diagnosis of a particular disorder, its ability to accurately identify hypomania allows both clinicians and researchers to identify persons who are at an elevated risk for developing bipolar disorder. This assessment has been found helpful for both researchers (especially in longitudinal studies) and clinicians because it is one of the few measures that is able to predict development of mania and bipolar symptoms. Overall the HPS has been shown to more closely relate to manic symptoms than other scales such as the NEO-IV.

Use in other populations
The HPS has been translated into Spanish and the psychometric properties have been found to comparable to the English version.

Limitations
The Hypomania Personality Scale is a self-report scale that consists of only True/False questions. This is the main limitation of this scale because people may under or over report their level of hypomania due to personal biases.

There have been efforts to reduce the number of items on the scale.

Scoring Instructions and Syntax
Scoring syntaxes are routinely included in three major languages: R, SPSS, and SAS. All variable names are the same across all three (so we follow naming conventions that would work in any of them -- note that R is case sensitive), and all match the CSV shell that we provide as well as the Qualtrics export.

Hand Scoring and General Instructions


CSV Shell
Because we are sharing the scoring syntax, we also want to share a shell data file that you could use in your own research. If you use this file, or make sure that your own file uses the same variable names, then the scoring code we provide should do the basic scoring for you. When different research projects and groups use the same variable names and syntax, it makes it easier to share the data and work together on integrative data analyses or "mega" analyses (which are different from meta-analysis in that they are combining the raw data, versus working with summary descriptive statistics).

Note that our CSV includes several demographic variables, which follow current conventions in most developmental and clinical psychology journals. You may want to modify them, depending on where you are working. Also pay attention to the possibility of "deductive identification" -- if we ask personal information in enough detail, then it may be possible to figure out the identity of a participant based on a combination of variables.



R

 * 1) Remaking variable “hps” reference the data set (~/Desktop...)

hps <- read_csv("~/Desktop/395.299/hps.csv")

attach(hps)

hps01r <- abs(hps01-1)

hps02r <- abs(hps02-1)

hps06r <- abs(hps06-1)

hps14r <- abs(hps14-1)

hps16r <- abs(hps16-1)

hps17r <- abs(hps17-1)

hps21r <- abs(hps21-1)

hps24r <- abs(hps24-1)

hps25r <- abs(hps25-1)

hps27r <- abs(hps27-1)

hps31r <- abs(hps31-1)

hps47r <- abs(hps47-1)

hps48r <- abs(hps48-1)


 * 1) This calculates a raw total from 0 to 48

hpsrawtotal <- (hps01r+hps02r+hps03+hps04+hps05+hps06r+hps07+hps08+hps09+hps10+hps11+hps12+hps13+hps14r+hps15+hps16r+hps17r+hps18+ hps19+hps20+hps21r+hps22+hps23+hps24r+hps25r+hps26+hps27r+hps28+hps29+hps30+hps31r+hps32+hps33+hps34+hps35+hps36+hps37+hps38+hps39+ hps40+hps41+hps42+hps43+hps44+hps45+hps46+hps47r+hps48r


 * 1) Still need to add POMP scoring and pro-rating.

SPSS

 * Our version has 48 items.


 * value labels 0=False, 1 = true.

descriptives /variables hps01 to hps48.


 * Flip the reverse scored items.


 * Best practice is to create new variables for the flipped scores.


 * Otherwise, running the same syntax on the same data frame will flip them back! Ack!.

recode hps01 (0=1) (1=0) into hps01r.

recode hps02 (0=1) (1=0) into hps02r.

recode hps06 (0=1) (1=0) into hps06r.

recode hps14 (0=1) (1=0) into hps14r.

recode hps16 (0=1) (1=0) into hps16r.

recode hps17 (0=1) (1=0) into hps17r.

recode hps21 (0=1) (1=0) into hps21r.

recode hps24 (0=1) (1=0) into hps24r.

recode hps25 (0=1) (1=0) into hps25r.

recode hps27 (0=1) (1=0) into hps27r.

recode hps31 (0=1) (1=0) into hps31r.

recode hps47 (0=1) (1=0) into hps47r.

recode hps48 (0=1) (1=0) into hps48r.


 * This syntax calculates the average item score.


 * In this instance, because the items are 0 or 1, the average is also the POMP score.


 * mean.44 is telling SPSS to calculate the variable so long as there are non-missing values on at least 44 of the responses (i.e., tolerate up to 4 missing items). This is "pro-rating" the score.

COMPUTE hpstotal=mean.44(hps01r, hps02r, hps03 to hps05, hps06r, hps07 to hps13, hps14r, hps15, hps16r, hps17r, hps18 to hps20, hps21r, hps22, hps23, hps24r, hps25r, hps26, hps27r, hps28 to hps30, hps31r, hps32 to hps46, hps47r, hps48r).


 * This estimates Cronbach's alpha (internal consistency).


 * /summary total estimates the corrected item-total correlation.

RELIABILITY /var hps01r, hps02r, hps03 to hps05, hps06r, hps07 to hps13, hps14r, hps15, hps16r, hps17r, hps18 to hps20, hps21r, hps22, hps23, hps24r, hps25r, hps26, hps27r, hps28 to hps30, hps31r, hps32 to hps46, hps47r, hps48r /summary total.

variable labels hpstotal 'Hypomanic Personality Scale - POMP total'.

descriptives /variables hpstotal.


 * Make tidy data frame with raw items and demographics.

temp.

select if hpstotal>0.

save translate outFILE='C:\Users\eay\Dropbox\EAY WIP\teaching\@Holding tank\Tidy Frames for items\hps.csv' /type csv /fieldnames  /replace /keep gender  age howasian raceasianyn birthcounasianyn schoolasianyn collegeasianyn hps01 to hps48.

SAS
data hps_reversed; set main.hps; array HPSrev{*} hps01 hps02 hps06 hps14 hps16 hps17 hps21 hps24 hps25 hps27 hps31 hps47 hps48;
 * Reverse Score these variables and updated to match variables;
 * hps_reversed is the new data set I am making;
 * this here is bringing in your full data set;
 * this makes an array, which is a convenient way to store variables and loop through the ones specifically that you want. I am storing the variables that need reverse scored here to loop through them specifically;

array HPSr{*} hps01r hps02r hps06r hps14r hps16r hps17r hps21r hps24r hps25r hps27r hps31r hps47r hps48r; do i = 1 to 13; *a “DO Loop” will iterate the number of times specified by i, so 13 rounds.; if HPSrev(i) = 0 then HPSr(i) = 1; *The notation HPSrev(i) is saying the ith item in the array, and then setting the value to the reverse score.; else if HPSrev(i) = 1 then HPSr(i) = 0; end; hpstotal = SUM(of hps01r hps02r hps03-hps05 hps06r hps07-hps13 hps14r hps15 			hps16r hps17r hps18-hps20 hps21r hps22 hps23 hps24r hps25r hps26 hps27r hps28-hps30 hps31r hps32-hps46 hps47r hps48r) / 48; *sadly, this isn’t as pretty as before, but will sum and divide by the total number of questions (48) to get the POMP score; drop i; run;
 * same idea as above, but since we are keeping variable names constant, these will be the reverse scores.;

proc print data = hps_reversed; where age=48; var hpstotal; run;
 * reversing the above 13 items, the score is 22 in POMP = 0.458;

proc corr data= hps_reversed alpha; var hps01 - hps48; run; proc reg data = hps_reversed; model hpstotal = hps01 - hps48; run;
 * to get Cronbach’s Alpha, run the code below;
 * correlation should be 1.0 between them all;
 * and it is, so this verifies that our model is correct;


 * Reverse Score these variables;

data HPS_reversed;

set main.hps;

array HPSrev{*} hps01 hps02 hps06 hps14 hps16 hps17 hps21 hps24 hps25 hps27 hps31 hps47 hps48;

do i = 1 to 13;

if HPSrev(i) = 0 then HPSrev(i) = 1;

else if HPSrev(i) = 1 then HPSrev(i) = 0;

end;

TotalRev = SUM(of hps01 - hps48);

drop i;

run;

proc print data = HPS_reversed;

where age=48;

var TotalRev;

run;


 * Reversing the above 13 items, the score is 22 in POMP = 0.458;


 * to get Cronbach’s Alpha;

proc corr data= hps_reversed alpha;

var hps01 - hps48;

run;