Using Circumplex Instruments¶
Source: https://circumplex.jmgirard.com/articles/using-instruments.html
import circumplex
import pandas as pd
%load_ext autoreload
%autoreload 2
The autoreload extension is already loaded. To reload it, use: %reload_ext autoreload
Overview of Instrument-related Functions¶
Although the circumplex package is capable of analyzing and visualizing data in a "source-agnostic" manner (i.e., without knowing what the numbers correspond to), it can be helpful to both the user and the package to have more contextual information about which information/questionnaire the data come from. For example, knowing the specific instrument used can enable the package to automatically score item-level responses and standardize these scores using normative data. Furthermore, a centralized repository of information about circumplex instruments would provide a convenient and accessible way for users to discover and begin using new instruments.
The first part of this tutorial will discuss how to preview the instruments currently available in the circumplex package, how to load information about a specific instrument for use in analysis, and how to extract general and specific information about that instrument. The following functions will be discussed: instruments()
, instrument()
, print()
, summary()
, scales()
, items()
, anchors()
, norms()
, and View()
.
The second part of this tutorial will discuss how to use the information about an instrument to transform and summarize circumplex data. It will demonstrate how to ipsatize item-level responses (i.e. apply deviation scoring across variables), how to calculate scale scores from item-level responses (with or without imputing/prorating missing values), and how to standardize scale scores using normative/comparison data. The following functions will be discussed: ipsatize()
, score()
, and standardize()
.
2. Loading and Examining Instrument Objects¶
Previewing the available instruments¶
You can preview the list of currently available instruments using the instruments()
function. This function will print the abbreviation, name, and (in parentheses) the "code" for each available instrument. We will return to the code in the next section.
circumplex.instrument.instruments()
The circumplex package currently includes 4 instruments: 1. CSIP: Circumplex Scales of Interpersonal Problems (CSIP) 2. IIPSC: Inventory of Interpersonal Problems Short Circumplex (IIP-SC) 3. SSQP-eng: Swedish Soundscape Quality Protocol - English Translation (SSQP-eng) 4. SATP-eng: Soundscape Attributes Translation Project - English Translation (SATP-eng)
Loading a specific instrument¶
To reduce loading time and memory usage, instrument information is not loaded into memory when the circumplex package is loaded. Instead, instruments should be loaded into memory on an as-needed bases. As demonstrated below, this can be done by passing an instrument's code (which we saw how to find in the last section) to the load_instrument()
function. We can then examine that instrument data using the print()
function.
csip = circumplex.instrument.load_instrument('CSIP')
print(csip)
CSIP: Circumplex Scales of Interpersonal Problems 64 Items, 8 Scales Boudreaux, Ozer, Oltmanns, & Wright (2018) <https://doi.org/10.1037/pas0000505>
Examining an instrument in-depth¶
To examine the information available about a loaded instrument, there are several options. To print a long list of formatted information about the instrument, use the summary()
function. This will return the same information returned by print()
, followed by information about the instrument's scales, rating scale anchors, items, and normative data set(s). The summary of each instrument is also available from the package reference page.
csip.summary()
CSIP: Circumplex Scales of Interpersonal Problems 64 Items, 8 Scales Boudreaux, Ozer, Oltmanns, & Wright (2018) <https://doi.org/10.1037/pas0000505> The CSIP contains 8 circumplex scales. PA: Domineering (90°) BC: Self-Centered (135°) DE: Distant (180°) FG: Socially Inhibited (225°) HI: Nonassertive (270°) JK: Exploitable (315°) LM: Self-Sacrificing (360°) NO: Intrusive (45°) The CSIP is rated using the following 4-point scale. 0. Not a problem 1. Minor problem 2. Moderate problem 3. Serious problem The CSIP contains 64 items (open-access). 1. Bossing around other people too much 2. Acting rude and inconsiderate toward others 3. Pushing away from other people who get too close 4. Difficulty making friends 5. Lacking self-confidence 6. Letting other people boss me around too much 7. Putting other people's needs before my own too much 8. Being overly affectionate with others 9. Verbally or physically abusing others 10. Acting selfishly with others 11. Difficulty showing love and affection to others 12. Having trouble fitting in with others 13. Getting easily embarrassed in front of others 14. Acting overly submissive with others 15. Giving too much to others 16. Difficulty keeping personal matters private from others 17. Starting arguments and conflicts with others 18. Being unable to feel guilt or remorse 19. Being unable to enjoy the company of others 20. Avoiding people or social situations 21. Difficulty taking the lead 22. Being unable to express anger toward others 23. Forgiving people too easily 24. Talking too much 25. Trying to influence or control other people too much 26. Lacking respect for other people's beliefs, attitudes, or opinions 27. Feeling emotionally disconnected from others 28. Being unable to keep conversations going 29. Having trouble asserting myself 30. Being too concerned about what other people think 31. Being overly sentimental or tender-hearted 32. Flirting with other people too much 33. Dominating or intimidating others 34. Having trouble getting along with others 35. Difficulty developing close and lasting relationships 36. Feeling like an outsider in most social situations 37. Feeling weak and insecure around dominant others 38. Being easily taken advantage of 39. Being easily affected by the pain and suffering of others 40. Having trouble respecting other people's privacy 41. Acting aggressively toward others 42. Being insensitive to the thoughts, feelings, and needs of others 43. Being unable to fully connect with others 44. Being unable to be myself around others 45. Being unable to stand up to others 46. Compromising with other people too much 47. Trusting people too easily 48. Exaggerating so that other people will respect me 49. Manipulating other people to get what I want 50. Disliking most people 51. Difficulty opening up to others 52. Feeling fearful or nervous in social situations 53. Avoiding confrontation when problems arise 54. Being easily influenced by others 55. Trying to solve other people's problems too much 56. Confronting people too quickly about problems 57. Acting superior or condescending toward others 58. Having trouble giving emotional or moral support to others 59. Feeling uncomfortable with being close or intimate with others 60. Acting shy around others 61. Letting other people make decisions too often 62. Being unable to say 'no' 63. Getting too attached to others 64. Needing to be the center of attention No data has been loaded for this instrument. Use attach_data() to load data.
Specific subsections of this output can be returned individually by printing the scales
, anchors
, items
, and norms
attributes of the instrument object. These functions are especially useful when you need to know a specific bit of information about an instrument and don't want the console to be flooded with unneeded information.
csip.anchors.show()
0. Not a problem 1. Minor problem 2. Moderate problem 3. Serious problem
Some of these attributes also have additional methods to customize their output. For instance, the scales
attribute has a .show()
method which includes the option to display the items for each scale.
csip.inst_items.show(n=5)
1. Bossing around other people too much 2. Acting rude and inconsiderate toward others 3. Pushing away from other people who get too close 4. Difficulty making friends 5. Lacking self-confidence ...and 59 more items.
csip.scales.show(inst_items=True)
PA: Domineering (90°) 1: Bossing around other people too much 9: Verbally or physically abusing others 17: Starting arguments and conflicts with others 25: Trying to influence or control other people too much 33: Dominating or intimidating others 41: Acting aggressively toward others 49: Manipulating other people to get what I want 57: Acting superior or condescending toward others BC: Self-Centered (135°) 2: Acting rude and inconsiderate toward others 10: Acting selfishly with others 18: Being unable to feel guilt or remorse 26: Lacking respect for other people's beliefs, attitudes, or opinions 34: Having trouble getting along with others 42: Being insensitive to the thoughts, feelings, and needs of others 50: Disliking most people 58: Having trouble giving emotional or moral support to others DE: Distant (180°) 3: Pushing away from other people who get too close 11: Difficulty showing love and affection to others 19: Being unable to enjoy the company of others 27: Feeling emotionally disconnected from others 35: Difficulty developing close and lasting relationships 43: Being unable to fully connect with others 51: Difficulty opening up to others 59: Feeling uncomfortable with being close or intimate with others FG: Socially Inhibited (225°) 4: Difficulty making friends 12: Having trouble fitting in with others 20: Avoiding people or social situations 28: Being unable to keep conversations going 36: Feeling like an outsider in most social situations 44: Being unable to be myself around others 52: Feeling fearful or nervous in social situations 60: Acting shy around others HI: Nonassertive (270°) 5: Lacking self-confidence 13: Getting easily embarrassed in front of others 21: Difficulty taking the lead 29: Having trouble asserting myself 37: Feeling weak and insecure around dominant others 45: Being unable to stand up to others 53: Avoiding confrontation when problems arise 61: Letting other people make decisions too often JK: Exploitable (315°) 6: Letting other people boss me around too much 14: Acting overly submissive with others 22: Being unable to express anger toward others 30: Being too concerned about what other people think 38: Being easily taken advantage of 46: Compromising with other people too much 54: Being easily influenced by others 62: Being unable to say 'no' LM: Self-Sacrificing (360°) 7: Putting other people's needs before my own too much 15: Giving too much to others 23: Forgiving people too easily 31: Being overly sentimental or tender-hearted 39: Being easily affected by the pain and suffering of others 47: Trusting people too easily 55: Trying to solve other people's problems too much 63: Getting too attached to others NO: Intrusive (45°) 8: Being overly affectionate with others 16: Difficulty keeping personal matters private from others 24: Talking too much 32: Flirting with other people too much 40: Having trouble respecting other people's privacy 48: Exaggerating so that other people will respect me 56: Confronting people too quickly about problems 64: Needing to be the center of attention
3. Instrument-related Tidying Functions¶
It is a good idea in practice to digitize and save each participant's response to each item on an instrument, rather than just their scores on each scale. Having access to item-level data will make it easier to spot and correct mistakes, will enable more advanced analysis of missing data, and will enable latent variable models that account for measurement error (e.g. structural equation modelling). Furthermore, the functions described below will make it easy to transform and summarize such item-level data into scale scores.