Jump to content

Talk:Behavioral Inhibition and Behavioral Activation System (BIS/BAS) Scales

Page contents not supported in other languages.
Add topic
From Wikiversity
Latest comment: 2 years 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  (???)
Ryanmix647 (discusscontribs) 22:13, 3 November 2022 (UTC)Reply
[edit source]

List 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 (discusscontribs) 23:35, 26 November 2022 (UTC)Reply