help for pfs

Stata module for predicting Financial Skill scale scores from CFPB survey instrument.

Syntax

pfs [varname] [if] [in]
[, qlist(varlist) agevar(varname) modevar(varname) replace intpoints(n) zlimit(z) ghq ]

Table of Contents

General description

Examples

Description of options

Remarks and saved results

References

Acknowledgements

Citation of pfs

Author information

Description

Please consult CFPB (2017) for details on the use of this command, which scores the CFPB Financial Skill (FS) instrument.

Preparing Your Data

Step 1: Name your variables.

This is perhaps the most important of the steps. Please pay special attention to providing your variables with the proper names. Variables capturing responses to the 10
financial well-being items in your data will need to renamed according to Table 9 in CFPB (2017).

"I know how to make complex decisions." should be named fs1_complexdecision

"I am able to make good financial decisions that are new to me." should be named fs2_goodnewdecision

"I know how to get myself to follow through on my financial intentions." should be named fs3_followthrough

"I am able to recognize a good financial investment." should be named fs4_recognizegoodinvestment

"I know how to keep myself from spending too much." should be named fs5_keepfromspending

"I know how to make myself save." should be named fs6_howtosave

I know where to find the advice I need to make decisions involving money." should be named fs7_findadvice

"I know when I do not have enough information to make a good decision involving my money" should be named fs8_notenoughinfo

"I know when I need advice about my money." should be named fs9_whenadvice

"I struggle to understand financial information." should be named fs10_struggleunderstand

Step 2: Set missing values to missing.

While the FS scales do not include "Refused" or "Don't know" responses, you may still encounter missing or non-substantive data.
If this is the case, you will need to recode the data to indicate that it is missing. In Stata, this would mean coding those responses to "." to indicate missing.

Step 3: Recode responses.

Before you can score the data, you must ensure that responses are coded as 0 to 4 where 4 is always the most positive financial skill response.
For example, with "I struggle to understand financial information," a response of "Never" should be coded as 4 and a response of "Always" should be coded as 0.
With "I am able to recognize a good financial investment," a response of "Completely" should be coded as 4 and a response of "Not at all" should be coded as 0.
The only reverse coded items is fs10_struggleunderstand.
The Stata program should exit with an error code if the items are not recoded properly.
To determine whether items are coded properly, the program checks average correlations across negatively and positively worded items to ensure that the correlation is positive on average. This does not guarantee that the scoring has been done correctly, since data can exhibit some pathological correlations, or one variable might be wrong while average correlations are correct, but should prevent the most egregious scoring errors where no survey response have been corrected for reverse coding.

Step 4: Create the indicators for your group codes: mode of administration ("self") and age group ("age18_61").

You will need to create the two indicators used by the program to define the groups:

Indicator 1: "age18_61" - set this indicator to 1 if the respondent is ages 18 to 61 and to 0 if the respondent is ages 62 or older.

Indicator 2: "self" - set this indicator to 1 if the survey was self-administered and to 0 if the survey was completed in an interview.

This is also a crucially important step. Correct group codes ensure that the proper parameters are applied in estimating your scores. To determine which parameters to use in scoring each case, the program creates an indicator of the group to which each individual response belongs. These groups are determined based on age [18 to 61 year versus 62 plus years] and mode of survey administration [self-administered or interview]. Depending on your particular sample and mode of administration, you will have between 1 and 4 groups: 1: 62+, Interview; 2: 62+,, Self-Administered; 3: 18-61, Interview; 4: 18-61, Self-Administered.

At the end of preparing the data, the 10 responses should be coded 0 to 4 and items must correspond to the following:

fs1_complexdecision I know how to make complex decisions. (0=Does not describe me at all, 1=Describes me very well, 2=Describes me somewhat, 3=Describes me very little, 4=Describes me completely)

fs2_goodnewdecision I am able to make good financial decisions that are new to me. (0=Does not describe me at all, 1=Describes me very well, 2=Describes me somewhat, 3=Describes me very little, 4=Describes me completely)

fs3_followthrough I know how to get myself to follow through on my financial intentions. (0=Does not describe me at all, 1=Describes me very well, 2=Describes me somewhat, 3=Describes me very little, 4=Describes me completely)

fs4_recognizegoodinvestment I am able to recognize a good financial investment. (0=Does not describe me at all, 1=Describes me very well, 2=Describes me somewhat, 3=Describes me very little, 4=Describes me completely)

fs5_keepfromspending I know how to keep myself from spending too much. (0=Does not describe me at all, 1=Describes me very well, 2=Describes me somewhat, 3=Describes me very little, 4=Describes me completely)

fs6_howtosave I know how to make myself save. (0=Does not describe me at all, 1=Describes me very well, 2=Describes me somewhat, 3=Describes me very little, 4=Describes me completely)

fs7_findadvice I know where to find the advice I need to make decisions involving money. (0=Does not describe me at all, 1=Describes me very well, 2=Describes me somewhat, 3=Describes me very little,4=Describes me completely)

fs8_notenoughinfo I know when I do not have enough information to make a good decision involving my money. (0=Never, 1=Often, 2=Sometimes, 3=Rarely, 4=Always)

fs9_whenadvice I know when I need advice about my money. (0=Never, 1=Often, 2=Sometimes, 3=Rarely, 4=Always)

fs10_struggleunderstand I struggle to understand financial information. (4=Never, 3=Rarely, 2=Sometimes, 1=Often, 0=Always)

Note that the first 7 items are statements that a respondent rates as to
"How well does this statement describe you or your situation?" and the next 3 as to
"How often does this statement apply to you?"
and the final question employs "reverse coding" (which may required recoding as described below in the Examples).
Items not asked, or "Don't know" or "Refused" answers, should be coded missing.

The five-question version of the scale should include all 10 variables above, but have nonmissing entries only for:

fs1_complexdecision I know how to make complex decisions. (0=Does not describe me at all, 1=Describes me very well, 2=Describes me somewhat, 3=Describes me very little, 4=Describes me completely)

fs3_followthrough I know how to get myself to follow through on my financial intentions. (0=Does not describe me at all, 1=Describes me very well, 2=Describes me somewhat, 3=Describes me very little, 4=Describes me completely)

fs6_howtosave I know how to make myself save. (0=Does not describe me at all, 1=Describes me very well, 2=Describes me somewhat, 3=Describes me very little, 4=Describes me completely)

fs8_notenoughinfo I know when I do not have enough information to make a good decision involving my money. (0=Never, 1=Often, 2=Sometimes, 3=Rarely, 4=Always)

fs10_struggleunderstand I struggle to understand financial information. (4=Never, 3=Rarely, 2=Sometimes, 1=Often, 0=Always)

Please consult CFPB (2017) for further details on the use of this command.
Using (by default) a rectangular grid of n points from -z to +z in 5 dimensions (default 31 points, from -4 to +4),
pfs predicts a scale score from a previously estimated IRT model
for answer patterns to the 10 questions on the Financial Skill (FS) survey
developed by the Consumer Financial Protection Bureau (CFPB).

The underlying model is a graded response model in the Item Response Theory framework, with two latent factors applying
to each question (a bifactor model), which cannot be fit using grm but can be fit using
gsem with an ordered logit or probit link. One latent factor is common to all questions,
and that common factor measures Financial Skill (FS).

Examples

In each example, you can cut and paste the entire block of code to the Command window, or click on commands one by one to run.

Assuming your data is set up the right way, just type pfs F to save scores in a new variable F.

pfs FS, replace

If you start with answers coded 1 to 5 instead of 0 to 4, and missing values coded with numbers greater than 5, use this code to fix them.

foreach v in fs1_complexdecision fs2_goodnewdecision fs3_followthrough fs4_recognizegoodinvestment fs5_keepfromspending fs6_howtosave fs7_findadvice fs8_notenoughinfo fs9_whenadvice fs10_struggleunderstand {

replace `v'=cond(`v'<6,`v'-1,.)

}

To reverse the coding for negatively-oriented questions, use this code.

foreach v in fs10_struggleunderstand {

replace `v'=(4-`v')

}

Options summary

agevar(varname) specifies the name of the indicator variable measuring whether a respondent is working age (under 62) or not (the default name is age18_61).
If a respondent is working age (under 62), the agevar should be 1, and if not (age 18-61), the agevar should be 0.

modevar(varname) specifies the name of the indicator variable measuring whether the items were self-administered or not (the default name is self).
If items were self-administered, the modevar should be 1, and if not, the modevar should be 0.

qlist(varlist) specifies the 10 variables holding answers (0 to 4 or missing) to the 10 questions; the default is
"fs1_complexdecision fs2_goodnewdecision fs3_followthrough fs4_recognizegoodinvestment fs5_keepfromspending
fs6_howtosave fs7_findadvice fs8_notenoughinfo fs9_whenadvice fs10_struggleunderstand" (note that "fs10_struggleunderstand" should be
reverse coded since higher-value answers correspond to lower Financial Skill).

The replace option specifies that varname can be overwritten with new values.

The intpoints option specifies that n points should be evaluated in each dimension of the grid. The default is 31.

The zlimit option specifies that the grid should stretch from -z to z in each dimension. The default is 4.

The round option specifies EAP scores should be rounded to the nearest r. The default is 1 (rounding to the nearest integer).

The missok option specifies that EAP scores can still be calculated if all responses are missing (using priors); the default is that the score is missing in this case.

The skipcorr option skips a check that correlations across negatively oriented and positively oriented items have the expected average sign.

Saved results

The command saves the following results in r():

Scalars

r(intpoints) Number of integration points used in each dimension

r(zlimit) Upper (and negative of lower) limit of integration if ghq integration method not used

r(round) Rounding for EAP scores

References

For a description of the CFPB instruments and their development, see documents on the CFPB website e.g.
http://www.consumerfinance.gov/data-research/research-reports/financial-well-being-scale/

CFPB. 2017. Scoring Financial Well-Being and Financial Skill Instruments Using IRT.

For more on bifactor GRM models, see e.g.

Gibbons, Robert D., R. Darrell Bock, Donald Hedeker, David J. Weiss, Eisuke Segawa, Dulal K. Bhaumik, David J. Kupfer, Ellen Frank, Victoria J. Grochocinski, and Angela Stover.
(2007). "Full-information item bifactor analysis of graded response data." Applied Psychological Measurement, 31, 4-19.

Cai, L., Yang, J.S., & Hansen, M. (2011). "Generalized full-information item bifactor analysis." Psychological Methods, 16:221-247.

Cai, L. (2010). "A Two-Tier Full-Information Item Factor Analysis Model With Applications." Psychometrika, 75(4):581-612.

Acknowledgements

Jeff Pitblado very kindly added key functionality to gsem and irt to predict out of sample (included in Stata 14.2 as of
September 6, 2016), enabling out-of-sample comparisons of
the rectangular grid used in this program and the MVAGHQ method EB methods used in those programs.
R.J. Wirth of Vector Psychometric Group helpfully described the details of estimation and scoring in flexMIRT.

Citation of pfs

pfs is not an official Stata command. It is a free contribution
to the research community, like a paper. Please cite it as such:

Nichols, Austin. 2016.
pfs: Stata module for predicting Financial Skill scale scores from CFPB survey instrument.
http://ideas.repec.org/c/boc/bocode/s458479.html

Author

Austin Nichols
Abt Associates
austinnichols@gmail.com

Also see

Manual: SEM manual, especially Example 31g demonstrating a generalized IRT model;
manual, especially grm sections, and Methods and formulas for irt hybrid
discussing adaptive quadrature; gsem_predict on prediction of latent variables from generalized IRT models,
mata quadrature functions on GHQ methods.