| |
#### Circumplex Scales of Interpersonal Values – how to compute scale scores
(and other indices) ####
library(dplyr)
## Compute raw CSIV octant scores ##
YourData <- YourData %>%
mutate(PA = (item01 + item09 + item17 + item25 + item33 + item41 + item49
+ item57) / 8, # PA = Agentic
BC = (item04 + item12 + item20 +
item28 + item36 + item44 + item52 + item60) / 8, # BC = Agentic & Uncommunal
DE = (item07 + item15 + item23 +
item31 + item39 + item47 + item55 + item63) / 8, # DE = Uncommunal
FG = (item02 + item10 + item18 +
item26 + item34 + item42 + item50 + item58) / 8, # FG = Unagentic & Uncommunal
HI = (item05 + item13 + item21 +
item29 + item37 + item45 + item53 + item61) / 8, # HI = Unagentic
JK = (item08 + item16 + item24 +
item32 + item40 + item48 + item56 + item64) / 8, # JK = Unagentic & Communal
LM = (item03 + item11 + item19 +
item27 + item35 + item43 + item51 + item59) / 8, # LM = Communal
NO = (item06 + item14 + item22 +
item30 + item38 + item46 + item54 + item62) / 8) # NO = Agentic & Communal
## Compute scores for the overall bipolar X (communal) and Y (agentic) vectors.
YourData <- YourData %>%
mutate(AGENTIC = 0.25 * (PA - HI + (0.707 * (BC + NO - FG - JK))),
COMMUNAL = 0.25 * (LM - DE + (0.707 * (NO +
JK - FG - BC))))
### The above commands are all you need to do the basic scoring
### The code below offer examples of how to compute additional scores or indices
## Compute "Structural Summary" Parameters ##
YourData <- YourData %>%
mutate(
# Compute "vector length" or "amplitude" (AMP)
AMP = sqrt(AGENTIC^2 + COMMUNAL^2),
# Compute overall mean or "response elevation" (ELE)
ELE = (PA + BC + DE + FG + HI + JK + LM + NO)/8,
# Compute Sum of Squared Deviations (SStot)
SStot = ((PA - ELE)^2 + (BC - ELE)^2 + (DE - ELE)^2 + (FG - ELE)^2 +
(HI - ELE)^2 + (JK - ELE)^2 + (LM - ELE)^2 + (NO - ELE)^2),
# Compute Circumplex Goodness-of-Fit (R-squared)
R2 = (4 * (AMP^2)) / SStot
)
# Compute Angular Displacement or Circumplex Angle (ANG)
YourData <- YourData %>%
mutate(ANG = ifelse(AGENTIC > 0 & COMMUNAL > 0, 000 + atan(AGENTIC/COMMUNAL)
* (180 / pi),
ifelse(AGENTIC > 0 & COMMUNAL < 0, 180 + atan(AGENTIC/COMMUNAL) * (180 /
pi),
ifelse(AGENTIC < 0 & COMMUNAL > 0, 360 + atan(AGENTIC/COMMUNAL) * (180 /
pi),
ifelse(AGENTIC < 0 & COMMUNAL < 0, 180 + atan(AGENTIC/COMMUNAL) * (180 /
pi), NA)))))
## Compute z-scores
YourData <- YourData %>%
mutate(
# First, insert the means (M) and standard deviations (SD) from a
relevant comparison sample
# The Ms and SDs below are from a sample of 1,200 University of Idaho
undergraduates
M_PA <- 2.53,
M_BC <- 1.38,
M_DE <- 1.10,
M_FG <- 1.66,
M_HI <- 1.77,
M_JK <- 2.67,
M_LM <- 2.83,
M_NO <- 2.93,
SD_PA <- 0.63,
SD_BC <- 0.71,
SD_DE <- 0.70,
SD_FG <- 0.78,
SD_HI <- 0.75,
SD_JK <- 0.71,
SD_LM <- 0.69,
SD_NO <- 0.57,
M_AGENTIC <- 0.30,
M_COMMUNAL <- 1.46,
SD_AGENTIC <- 0.65,
SD_COMMUNAL <- 0.74,
# Then compute z-scores
zPA = (PA - M_PA) / SD_PA,
zBC = (BC - M_BC) / SD_BC,
zDE = (DE - M_DE) / SD_DE,
zFG = (FG - M_FG) / SD_FG,
zHI = (HI - M_HI) / SD_HI,
zJK = (JK - M_JK) / SD_JK,
zLM = (LM - M_LM) / SD_LM,
zNO = (NO - M_NO) / SD_NO,
zAGENTIC = (AGENTIC - M_AGENTIC) / SD_AGENTIC,
zCOMMUNAL = (COMMUNAL - M_COMMUNAL) / SD_COMMUNAL
)
# Compute ipsative octant scale scores
YourData <- YourData %>%
mutate(
iPA = PA - ELE,
iBC = BC - ELE,
iDE = DE - ELE,
iFG = FG - ELE,
iHI = HI - ELE,
iJK = JK - ELE,
iLM = LM - ELE,
iNO = NO - ELE
)
|