Talk:Behavioral Inhibition and Behavioral Activation System (BIS/BAS) Scales
Latest comment: 1 year ago by Eyoungstrom in topic Qualtrics links
*********************************************************************.
* Scoring the BIS/BAS Self Report.
* Items are behaving as if already reversed during data entry.
* Need to check this!!!!!!!!!!!!.
* 1 = Strongly agree, 4 = strongly disagree. This is a problem in a battery where usually high scores mean "more".
desc /var biss01 to biss20.
* This was a mistake not to recode into a new variable.
*recode biss05 biss20 (4=1) (3=2) (2=3) (1=4).
compute bisvar = sd(biss01 to biss04, biss05 to biss19).
freq /var bisvar.
temp.
select if bisvar > .68.
reliability /var biss01 to biss20
/scale (bis) = biss01, biss05, biss10, biss13, biss15, biss18, biss20
/sum total.
* This strongly suggests a response set or crappy data -- the two reverse scored items have near negative item-total corrs.
reliability /var biss01 to biss20 /scale (sbasrewrd) = biss06, biss08, biss11, biss12, biss16
/sum total.
reliability /var biss01 to biss20 /scale (sbasdriv) = biss03, biss04, biss07, biss19
/sum total.
reliability /var biss01 to biss20 /scale (basfunsk) = biss02, biss09, biss14, biss17 /sum total.
* 4-3-2015 - changed this to pro-rating (like Goodman with SDQ). Some POMP scores were exceeding 100% due to poor trapping of missing data in early code.
compute sbis = mean.6=(biss01, biss05, biss10, biss13, biss15, biss18, biss20)*7.
compute sbasrewrd = mean.4(biss06, biss08, biss11, biss12, biss16)*5.
compute sbasdriv = mean.3(biss03, biss04, biss07, biss19)*4.
compute sbasfunsk = mean.3(biss02, biss09, biss14, biss17)*4.
****Flip and POMP.
compute sbisfp=1-((sbis-7)/21).
compute sbasrewrdfp = 1-((sbasrewrd-5)/15).
compute sbasdrivfp = 1-((sbasdriv-4)/12).
compute sbasfunskfp = 1-((sbasfunsk-4)/12).
compute sbastotfp= 1-((sbasrewrd+sbasdriv+sbasfunsk-13)/39).
var labels sbis 'Adol Reported BIS'
/sbasrewrd 'Adol Reported BAS Reward Responsiveness'
/sbasdriv 'Adol Reported BAS Drive'
/sbasfunsk 'Adol Reported Fun Seeking'
/sbisfp 'Adol Reported BIS--flipped and POMPed'
/sbasrewrdfp 'Adol Reported BAS Reward Responsiveness--flipped and POMPed'
/sbasdrivfp 'Adol Reported BAS Drive--flipped and POMPed'
/sbasfunskfp 'Adol Reported Fun Seeking--flipped and POMPed'
/sbastotfp 'Adol Reported BAS Tota--flipped and POMPed'.
desc /var sbis sbisfp sbasrewrdfp sbasdrivfp sbasfunskfp sbastotfp.
corr /var sbis sbisfp sbasrewrdfp sbasdrivfp sbasfunskfp /stat desc.
factor /var biss01 to biss20 /plot eigen.
*********************************************************************.
* Scoring the BIS/BAS parent Report.
desc /var bisp01 to bisp20.
*recode bisp05 bisp20 (4=1) (3=2) (2=3) (1=4).
reliability /var bisp01 to bisp20
/scale (bis) = bisp01, bisp05, bisp10, bisp13, bisp15, bisp18, bisp20
/sum total.
reliability /var bisp01 to bisp20 /scale (pbasrewrd) = bisp06, bisp08, bisp11, bisp12, bisp16
/sum total.
reliability /var bisp01 to bisp20 /scale (pbasdriv) = bisp03, bisp04, bisp07, bisp19
/sum total.
reliability /var bisp01 to bisp20 /scale (basfunsk) = bisp02, bisp09, bisp14, bisp17 /sum total.
* 4-3-2015 - changed this to pro-rating (like Goodman with SDQ). Some POMP scores were exceeding 100% due to poor trapping of missing data in early code.
compute pbis = mean.6(bisp01, bisp05, bisp10, bisp13, bisp15, bisp18, bisp20)*7.
compute pbasrewrd =mean.4(bisp06, bisp08, bisp11, bisp12, bisp16)*5.
compute pbasdriv = mean.3(bisp03, bisp04, bisp07, bisp19)*4.
compute pbasfunsk = mean.3(bisp02, bisp09, bisp14, bisp17)*4.
****Flip and POMP.
compute pbisfp=1-((pbis-7)/21).
compute pbasrewrdfp = 1-((pbasrewrd-5)/15).
compute pbasdrivfp = 1-((pbasdriv-4)/12).
compute pbasfunskfp = 1-((pbasfunsk-4)/12).
compute pbastotfp= 1-((pbasrewrd+pbasdriv+pbasfunsk-13)/39).
var labels pbis 'Parent Reported BIS'
/pbasrewrd 'Parent Reported BAS Reward Responsiveness'
/pbasdriv 'Parent Reported BAS Drive'
/pbasfunsk 'Parent Reported Fun Seeking'
/pbisfp 'Parent Reported BIS--flipped and POMPed'
/pbasrewrdfp 'Parent Reported BAS Reward Responsiveness--flipped and POMPed'
/pbasdrivfp 'Parent Reported BAS Drive--flipped and POMPed'
/pbasfunskfp 'Parent Reported Fun Seeking--flipped and POMPed'
/pbastotfp 'Parent Reported BAS Total--flipped and POMPed'.
desc /var pbis pbisfp pbasrewrdfp pbasdrivfp pbasfunskfp pbastotfp.
corr /var pbis pbisfp pbasrewrdfp pbasdrivfp pbasfunskfp /stat desc.
corr /var pbis pbasrewrd pbasdriv pbasfunsk /stat desc.
factor /var bisp01 to bisp20 /plot eigen.
corr /var pbis pbasrewrd pbasdriv pbasfunsk with
sbis sbasrewrd sbasdriv sbasfunsk /stat desc.
== BIS-BAS Self-Report Scoring and Correlations with Prior Scores (Working Draft) ==
# Validation of BIS-BAS scores of the Ultimate Enchilada dataset
#rename data
dataset1 <- Ultimate_Enchilada_v3_3_deidentified
#using psych package
library(psych)
library(tidyverse)
library(readr)
#Overall scale scores (average resposne) for BIS-BAS subcategories
bis.nrm <- rowMeans(dataset1[, c("biss01", "biss05", "biss10", "biss13", "biss15", "biss18","biss20")], na.rm=TRUE)
bas.rew <- rowMeans(dataset1[, c("biss06", "biss08", "biss11", "biss12", "biss16")], na.rm=TRUE)
bas.drv <- rowMeans(dataset1[, c("biss03", "biss04", "biss07", "biss19")], na.rm=TRUE)
bas.fun <- rowMeans(dataset1[, c("biss02", "biss09", "biss14", "biss17")], na.rm=TRUE)
#Parent reported BIS-BAS score variable names
#"pbis", "pbasrewrd", "pbasdriv", "pbasfunsk"
#Adolescent reported BIS-BAS score variable names
#"sbis", "sbasrewrd", "sbasdriv", "sbasfunsk"
#Re-scoring Adolescent responses via summation
bis.nrm1 <- rowSums(dataset1[, c("biss01", "biss05", "biss10", "biss13", "biss15", "biss18","biss20")], na.rm=TRUE)
bas.rew1 <- rowSums(dataset1[, c("biss06", "biss08", "biss11", "biss12", "biss16")], na.rm=TRUE)
bas.drv1 <- rowSums(dataset1[, c("biss03", "biss04", "biss07", "biss19")], na.rm=TRUE)
bas.fun1 <- rowSums(dataset1[, c("biss02", "biss09", "biss14", "biss17")], na.rm=TRUE)
#Regressing Re-scored values with original scored variables
biscor <- lm(dataset1$sbis ~ bis.nrm1)
Call:
lm(formula = dataset1$sbis ~ bis.nrm1)
Coefficients:
(Intercept) bis.nrm1
#3.163e-14 1.000e+00
bas.funcor <- lm(formula = dataset1$sbasrewrd ~ bas.rew1)
Call:
lm(formula = dataset1$sbasrewrd ~ bas.rew1)
Coefficients:
(Intercept) bas.rew1
#0.02285 1.00124
bas.drvcor <- lm(dataset1$sbasdriv ~ bas.drv1)
Call:
lm(formula = dataset1$sbasdriv ~ bas.drv1)
Coefficients:
(Intercept) bas.drv1
#0.1077 0.9956
bas.funcor <- lm(dataset1$sbasfunsk ~ bas.fun1)
Call:
lm(formula = dataset1$sbasfunsk ~ bas.fun1)
Coefficients:
(Intercept) bas.fun1
#0.1270 0.9899
#Re-scoring of Parent responses
bis.pnrm <- rowSums(dataset1[, c("bisp01", "bisp05", "bisp10", "bisp13", "bisp15", "bisp18","bisp20")], na.rm=TRUE)
bas.prew <- rowSums(dataset1[, c("bisp06", "bisp08", "bisp11", "bisp12", "bisp16")], na.rm=TRUE)
bas.pdrv <- rowSums(dataset1[, c("bisp03", "bisp04", "bisp07", "bisp19")], na.rm=TRUE)
bas.pfun <- rowSums(dataset1[, c("bisp02", "bisp09", "bisp14", "bisp17")], na.rm=TRUE)
#Regressing Re-scored Parent responses to original scored variables
bis.pnrmcor <- lm(dataset1$pbis ~ bis.pnrm)
bas.prewcor <- lm(dataset1$pbasrewrd ~ bas.prew)
bas.pdrvcor <- lm(dataset1$pbasdriv ~ bas.pdrv)
bas.pfuncor <- lm(dataset1$pbasfunsk ~ bas.pfun)
#Results
Call:
lm(formula = dataset1$pbis ~ bis.pnrm)
Coefficients:
(Intercept) bis.pnrm
#0.05847 0.99839
Call:
lm(formula = dataset1$pbasrewrd ~ bas.prew)
Coefficients:
(Intercept) bas.prew
#-0.01437 1.00343
Call:
lm(formula = dataset1$pbasdriv ~ bas.pdrv)
Coefficients:
(Intercept) bas.pdrv
#0.07774 0.99647
Call:
lm(formula = dataset1$sbasfunsk ~ bas.fun1)
Coefficients:
(Intercept) bas.fun1
#0.1270 0.9899
[[User:Ryanmix647|Ryanmix647]] ([[User talk:Ryanmix647|discuss]] • [[Special:Contributions/Ryanmix647|contribs]]) 22:30, 27 October 2022 (UTC)
:(Update of R Coding, 11/3/2022)
:#Rescoring the BIS/BAS Self-Reports in R
:# Conducted by Michael Mix
:# Note: The following is a replication of the anaylses conducted by Dr. E. Youngstrom in SPSS.
:# 1 = Strongly Agree to 4 = Strongly disagree
:library(haven)
:library(tidyverse)
:library(psych)
:library(rstatix)
:# Renaming the dataset for convenience
:ds <- Ultimate_Enchilada_v3_3_deidentified
:# Parent reported BIS-BAS score variable names
:# "pbis", "pbasrewrd", "pbasdriv", "pbasfunsk"
:# Adolescent reported BIS-BAS score variable names
:# "sbis", "sbasrewrd", "sbasdriv", "sbasfunsk"
:describe(ds$sbis)
:# Overall scale scores (average response magnitude) for BIS-BAS categories (Adolescents)
:bis.nrm <- rowMeans(ds[, c("biss01", "biss05", "biss10", "biss13", "biss15", "biss18","biss20")], na.rm=FALSE)*7
:bas.rew <- rowMeans(ds[, c("biss06", "biss08", "biss11", "biss12", "biss16")], na.rm=FALSE)*5
:bas.drv <- rowMeans(ds[, c("biss03", "biss04", "biss07", "biss19")], na.rm=FALSE)*4
:bas.fun <- rowMeans(ds[, c("biss02", "biss09", "biss14", "biss17")], na.rm=FALSE)*4
:# Regressing above scores against original scores computed in SPSS (retrieved from ds)
:bis.nrmcor <- lm(ds$sbis ~ bis.nrm)
:bas.rewcor <- lm(ds$sbasrewrd ~ bas.rew)
:bas.drvcor <- lm(ds$sbasdriv ~ bas.drv)
:bas.funcor <- lm(ds$sbasfunsk ~ bas.fun)
:# Regression Results
:Call:
: lm(formula = ds$sbis ~ bis.nrm)
:Coefficients:
: (Intercept) bis.nrm
:# -3.464e-14 1.000e+00
:Call:
: lm(formula = ds$sbasrewrd ~ bas.rew)
:Coefficients:
: (Intercept) bas.rew
:# 3.851e-14 1.000e+00
:Call:
: lm(formula = ds$sbasdriv ~ bas.drv)
:Coefficients:
: (Intercept) bas.drv
:# 1.599e-14 1.000e+00
:Call:
: lm(formula = ds$sbasfunsk ~ bas.fun)
:Coefficients:
: (Intercept) bas.fun
:# -1.198e-14 1.000e+00
:#Pretty close!!
:# Flip and POMP
:sbisfp1 <- 1 - ((bis.nrm - 7)/21)
:sbasrewfp1 <- 1 - ((bas.rew - 5)/15)
:sbasdrvfp1 <- 1 - ((bas.drv - 4)/12)
:sbasfunfp1 <- 1 - ((bas.fun - 4)/12)
:sbastotfp1 <- 1 - ((sbasrewfp1 + sbasdrvfp1 + sbasfunfp1 -13)/39)
:# Regressing "fp" variables against each other
:sbisfpcor <- lm(ds$sbisfp ~ sbisfp1)
:sbasrewfpcor <- lm(ds$sbasrewrdfp ~ sbasrewfp1)
:sbasdrvfpcor <- lm(ds$sbasdrivfp ~ sbasdrvfp1)
:sbasfunfpcor <- lm(ds$sbasfunskfp ~ sbasfunfp1)
:sbastotcor <- lm(ds$sbastotfp ~ sbastotfp1)
:# Regression Results
:Call:
: lm(formula = ds$sbisfp ~ sbisfp1)
:Coefficients:
: (Intercept) sbisfp1
:# -3.331e-16 1.000e+00
:Call:
: lm(formula = ds$sbasrewrdfp ~ sbasrewfp1)
:Coefficients:
: (Intercept) sbasrewfp1
:# 2.905e-15 1.000e+00
:Call:
: lm(formula = ds$sbasdrivfp ~ sbasdrvfp1)
:Coefficients:
: (Intercept) sbasdrvfp1
:# -1.499e-15 1.000e+00
:Call:
: lm(formula = ds$sbasfunskfp ~ sbasfunfp1)
:Coefficients:
: (Intercept) sbasfunfp1
:# -1.165e-15 1.000e+00
:Call:
: lm(formula = ds$sbastotfp ~ sbastotfp1)
:Coefficients:
: (Intercept) sbastotfp1
:# 17.20 -12.89 (???)
:# Rescoring Parent BIS/BAS Self-Report
:bis.pnrm <- rowMeans(ds[, c("bisp01", "bisp05", "bisp10", "bisp13", "bisp15", "bisp18","bisp20")], na.rm=FALSE)*7
:bas.prew <- rowMeans(ds[, c("bisp06", "bisp08", "bisp11", "bisp12", "bisp16")], na.rm=FALSE)*5
:bas.pdrv <- rowMeans(ds[, c("bisp03", "bisp04", "bisp07", "bisp19")], na.rm=FALSE)*4
:bas.pfun <- rowMeans(ds[, c("bisp02", "bisp09", "bisp14", "bisp17")], na.rm=FALSE)*4
:# Regressing against original scores computed in SPSS (retrieved from ds)
:pbiscor <- lm(ds$pbis ~ bis.pnrm)
:pbas.rewcor <- lm(ds$pbasrewrd ~ bas.prew)
:pbas.drvcor <- lm(ds$pbasdriv ~ bas.pdrv)
:pbas.funcor <- lm(ds$pbasfunsk ~ bas.pfun)
:# Regression Results
:Call:
: lm(formula = ds$pbis ~ bis.pnrm)
:Coefficients:
: (Intercept) bis.pnrm
:# 2.81e-14 1.00e+00
:Call:
: lm(formula = ds$pbasrewrd ~ bas.prew)
:Coefficients:
: (Intercept) bas.prew
:# 3.595e-14 1.000e+00
:Call:
: lm(formula = ds$pbasdriv ~ bas.pdrv)
:Coefficients:
: (Intercept) bas.pdrv
:# 2.112e-14 1.000e+00
:Call:
: lm(formula = ds$pbasfunsk ~ bas.pfun)
:Coefficients:
: (Intercept) bas.pfun
:# 5.006e-15 1.000e+00
:# Flip and POMP
:pbisfp1 <- 1 - ((bis.pnrm - 7)/21)
:pbasrewfp1 <- 1 - ((bas.prew - 5)/15)
:pbasdrvfp1 <- 1 - ((bas.pdrv - 4)/12)
:pbasfunfp1 <- 1 - ((bas.pfun - 4)/12)
:pbastotfp1 <- 1 - ((pbasrewfp1 + pbasdrvfp1 + pbasfunfp1 -13)/39)
:# Regressing "fp" variables against each other
:pbisfpcor <- lm(ds$pbisfp ~ pbisfp1)
:pbasrewfpcor <- lm(ds$pbasrewrdfp ~ pbasrewfp1)
:pbasdrvfpcor <- lm(ds$pbasdrivfp ~ pbasdrvfp1)
:pbasfunfpcor <- lm(ds$pbasfunskfp ~ pbasfunfp1)
:pbastotcor <- lm(ds$pbastotfp ~ pbastotfp1)
:#Regression Results
:Call:
: lm(formula = ds$pbisfp ~ pbisfp1)
:Coefficients:
: (Intercept) pbisfp1
:# -1.694e-15 1.000e+00
:Call:
: lm(formula = ds$pbasrewrdfp ~ pbasrewfp1)
:Coefficients:
: (Intercept) pbasrewfp1
:# 4.369e-15 1.000e+00
:Call:
: lm(formula = ds$pbasdrivfp ~ pbasdrvfp1)
:Coefficients:
: (Intercept) pbasdrvfp1
:# 1.383e-15 1.000e+00
:Call:
: lm(formula = ds$pbasfunskfp ~ pbasfunfp1)
:Coefficients:
: (Intercept) pbasfunfp1
:# 1.251e-16 1.000e+00
:Call:
: lm(formula = ds$pbastotfp ~ pbastotfp1)
:Coefficients:
: (Intercept) pbastotfp1
:# 17.07 -12.79 (???)
Qualtrics links
editList of Qualtrics instances
An N of 2759 respondents exists aggregating a range of different teaching instances, as detailed in the Gantt-style chart here. The three largest instances are the AAA protocol, Supertasting, and Korea Developmental.
Name | Link | N | Comments |
---|---|---|---|
BIS/BAS flipped scoring (for piping) | https://unc.az1.qualtrics.com/responses/#/surveys/SV_b14lXSlbiQeoLKl | 0 | Module for use in other batteries? |
Korea 2020 - Creativity, Mood, Sleep | Distribution link; Survey editing | 273 | Contains same surveys as 2018, 2019; unclear if there are other changes in recoding or piping |
Korea 2019 - Creativity, Mood, Sleep | Distribution link; Survey editing | 187 | See above |
Korea 2018 - Creativity, Mood, Sleep | Distribution link; Survey editing | 238 | See above |
Eyoungstrom (discuss • contribs) 23:35, 26 November 2022 (UTC)