How can I perform a Sobel test on a single mediation effect in SPSS?

How can I perform a Sobel test on a single mediation effect in SPSS?

The Sobel test is a statistical method used to determine the significance of a mediation effect in a single mediation model. In order to perform a Sobel test in SPSS, the following steps can be followed:
1. Build a single mediation model in SPSS using the PROCESS macro.
2. Obtain the indirect effect estimate and its standard error from the model.
3. Use these values to calculate the Sobel statistic.
4. Determine the p-value for the Sobel test using a standard normal distribution table or an online calculator.
5. Interpret the results to determine the significance of the mediation effect. Overall, the Sobel test in SPSS is a useful tool for assessing the strength and significance of a single mediation effect in a research study.

How can I perform a Sobel test on a single mediation effect in SPSS? | SPSS FAQ

This page uses code provided by William Dudley PhD and Jose Benuzillo MA,
University of Utah College of Nursing, 2/11/04. It estimates the percentage of
the total effect that is mediated and the ratio of the indirect to the direct
effect by using the Sobel test. It is for the simplest model in which there is
only one mediator, one independent variable and one outcome variable, all of
which are continuous variables.

We thank the authors of this program for very kindly
sharing it with us and for allowing us to post it on our site. You can download a word document explaining their program
here.

All of the code on this page can be found in this SPSS syntax file.
We use this
example SPSS data file for running their
program.

To begin, we indicate which of our variables are the dependent, independent,
and mediator variables. We then run three regression models representing the
paths of interest for the Sobel test. From each regression, we create and save a
dataset. We will only show the output generated by the Report sections of
code.

NOTE: When using this code, you can use the first three lines to indicate
which of your variables play which role in the model and then run the rest of
the code without making any more changes.  We have included all of the code
in this page to illustrate the steps in the program. But you can certainly just
download the syntax, change the first three lines, and be ready to run all the
analysis code!

compute indepvar	= Pain .    /*your IV*/
compute depenvar	= Depress.  /*your DV*/
compute mediator	= Function. /*you MEDIATOR*/
exe.

REGRESSION
  /MISSING LISTWISE
  /STATISTICS COEFF OUTS R ANOVA
  /CRITERIA=PIN(.05) POUT(.10)
  /NOORIGIN
  /DEPENDENT mediator
  /METHOD=ENTER indepvar
  /OUTFILE=COVB('reg1.sav').
  
REGRESSION
  /MISSING LISTWISE
  /STATISTICS COEFF OUTS R ANOVA
  /CRITERIA=PIN(.05) POUT(.10)
  /NOORIGIN
  /DEPENDENT depenvar
  /METHOD=ENTER indepvar mediator
  /OUTFILE=COVB('reg2.sav').  
                
REGRESSION
  /MISSING LISTWISE
  /STATISTICS COEFF OUTS R ANOVA
  /CRITERIA=PIN(.05) POUT(.10)
  /NOORIGIN
  /DEPENDENT depenvar
  /METHOD=ENTER  indepvar
  /OUTFILE=COVB('reg3.sav'). 

Next, these three regression datasets are combined after indicating which is
which. A subset of observations are kept corresponding to estimates, standard
errors, degrees of freedom, and p-values


get file='reg1.sav'.
compute reg=1.
exe.
SAVE OUTFILE='reg1.sav'
  /COMPRESSED.

get file='reg2.sav'.
compute reg=2.
exe.
SAVE OUTFILE='reg2.sav'
  /COMPRESSED.

get file='reg3.sav'.
compute reg=3.
exe.
SAVE OUTFILE='reg3.sav'
  /COMPRESSED.

add files file=='reg1.sav'
         /file=='reg2.sav'
         /file=='reg3.sav'
/keep=  reg DEPVAR_ ROWTYPE_ VARNAME_  CONST_ indepvar mediator.
exe.

sel if rowtype_ = 'EST' or rowtype_ = 'SE' or rowtype_ = 'DFE' 
                  or rowtype_ = 'SIG'.
exe. 

Next, the data is reshaped from wide to long.


numeric a.
numeric sa.
numeric siga.
numeric b.
numeric sb.
numeric sigb.
numeric df.
numeric t.
numeric st.
numeric sig.
	if reg = 1 and rowtype_ = 'EST' a		= indepvar.
	if reg = 1 and rowtype_ = 'SE'  sa		= indepvar.
	if reg = 1 and rowtype_ = 'SIG' siga	= indepvar.
	if reg = 2 and rowtype_ = 'EST' b		= mediator.
	if reg = 2 and rowtype_ = 'SE'  sb		= mediator.
	if reg = 2 and rowtype_ = 'SIG' sigb	= mediator.
	if reg = 2 and rowtype_ = 'DFE' df		= mediator.
	if reg = 2 and rowtype_ = 'EST' tprime	= indepvar.
	if reg = 3 and rowtype_ = 'EST' t		= indepvar.
	if reg = 3 and rowtype_ = 'SE'  st		= indepvar.
	if reg = 3 and rowtype_ = 'SIG' sig		= indepvar.
exe.

compute regx=1.
exe.


aggregate outfile 'sobel.sav'
 /break regx
 /a = max(a)
 /sa=max(sa)
 /siga=max(siga)
 /b=max(b)
 /sb=max(sb)
 /sigb=max(sigb)
 /df=max(df)
 /sig=max(sig)
 /tprime = max(tprime)
 /t=max(t)
 /st=max(st).
get file 'sobel.sav'.      
format a b tprime t (F8.4).

compute ab = a*b.
compute ttprime = t-tprime.

format ab ttprime  (F8.4).

exe.

From these values, our statistics of interest are calculated, formatted, and labeled.


compute sobel= ttprime/(sqrt (( (b*b)*(sa*sa) ) + ( (a*a)*(sb*sb) ))). 
compute absobel= abs(sobel).
compute p_val=2*(1-cdfnorm(absobel)).
compute t1=(t-(a*b)).
compute toteff=(a*b/((a*b)+t1)).
compute ratio=((a*b)/t1). 
compute toteff = 100* toteff.
compute goodman = ttprime/sqrt(((b*b)*(sa*sa))+((a*a)*(sb*sb))+((sa*sa)*(sb*sb))).
compute absgood = abs(goodman).
compute goodman2 = ttprime/sqrt(((b*b)*(sa*sa))+((a*a)*(sb*sb))-((sa*sa)*(sb*sb))).
compute absgood2 = abs(goodman2).
compute p_val2 = 2*(1-cdfnorm(absgood)).
compute p_val3 = 2*(1-cdfnorm(absgood2)).      
exe.


format  p_val p_val2 p_val3
	   sig siga sigb 
	   sobel goodman goodman2
        toteff ratio st sb sa(F8.6).
exe.

variable label
sig    'P value of c'
siga   'P value of a'
sigb   'P value of b'
a      'Reg coeff for the association between IV and MEDIATOR'
sa     'Standard error of a'
b      'Reg coeff for the association between the MEDIATOR and IV on DV'
sb     'Standard error of b'
df     'Degrees of freedom'
t      'Reg coeff for the association between IV and DV'
st     'Standard error of c'
sobel  'Sobel'
p_val  'P value'
goodman 'Goodman test'
p_val2  'P value'
goodman2 'GoodmanII test'
p_val3 'P Value'
toteff 'Percentage of the total effect that is mediated'
ratio  'Ratio of the indirect to the direct effect'.
exe.

Results are presented with Report.


Report
  /FORMAT= CHWRAP(ON) PREVIEW(OFF) CHALIGN(BOTTOM)  UNDERSCORE(ON)
  ONEBREAKCOLUMN(OFF) CHDSPACE(1)  SUMSPACE(0)  AUTOMATIC  NOLIST
   BRKSPACE(0)
  PAGE(1) MISSING'.' LENGTH(1, 59) ALIGN(LEFT) TSPACE(1) FTSPACE(1)
 MARGINS(1,110)
 /TITLE=
  LEFT 'Regression Analysis Results'
  RIGHT 'Page )PAGE'
   /VARIABLES
 t	(VALUES)  (RIGHT)  (OFFSET(0)) (9)
 st	(VALUES)  (RIGHT)  (OFFSET(0)) (7)
 sig	(VALUES)  (RIGHT)  (OFFSET(0)) (7)
 a	(VALUES)  (RIGHT)  (OFFSET(0)) (9)
 sa	(VALUES)  (RIGHT)  (OFFSET(0)) (7)
 siga	(VALUES)  (RIGHT)  (OFFSET(0)) (7)
 b	(VALUES)  (RIGHT)  (OFFSET(0)) (9)
 sb	(VALUES)  (RIGHT)  (OFFSET(0)) (7)
 sigb	(VALUES)  (RIGHT)  (OFFSET(0)) (7)
 /BREAK (TOTAL)  (SKIP(1)) /SUMMARY
 SUM( t) SKIP(1) SUM( st ) SUM( sig ) SUM( a ) SUM( sa ) SUM( siga ) SUM( b ) SUM( sb ) SUM( sigb )   '' .

Image report1

Report
  /FORMAT= CHWRAP(ON) PREVIEW(OFF) CHALIGN(BOTTOM)  UNDERSCORE(ON)
  ONEBREAKCOLUMN(OFF) CHDSPACE(1)  SUMSPACE(0)  AUTOMATIC  NOLIST
   BRKSPACE(0)
  PAGE(2) MISSING'.' LENGTH(1, 59) ALIGN(LEFT) TSPACE(1) FTSPACE(1)
 MARGINS(1,100)
 /TITLE= 
  LEFT 'Mediation Analysis Results'
  RIGHT 'Page )PAGE'
 /VARIABLES
 sobel	(VALUES)  (RIGHT)  (OFFSET(0)) (10)
 p_val	(VALUES)  (RIGHT)  (OFFSET(0)) (10)
 toteff	(VALUES)  (RIGHT)  (OFFSET(0)) (10)
 ratio	(VALUES)  (RIGHT)  (OFFSET(0)) (10)
 goodman	(VALUES)  (RIGHT)  (OFFSET(0)) (10)
 p_val2	(VALUES)  (RIGHT)  (OFFSET(0)) (10)
 goodman2	(VALUES)  (RIGHT)  (OFFSET(0)) (10)
 p_val3	(VALUES)  (RIGHT)  (OFFSET(0)) (10)
 /BREAK (TOTAL) (SKIP(1)) /SUMMARY
 SUM( sobel) SKIP(1) SUM( p_val ) SUM( toteff ) SUM( ratio) SUM( goodman ) SUM( p_val2 ) SUM( goodman2 ) SUM( p_val3 ) ''.

Image report2

Report
  /FORMAT= CHWRAP(ON) PREVIEW(OFF) CHALIGN(BOTTOM)  UNDERSCORE(ON)
  ONEBREAKCOLUMN(OFF) CHDSPACE(1)  SUMSPACE(0)  AUTOMATIC  NOLIST
   BRKSPACE(0)
  PAGE(3) MISSING'.' LENGTH(1, 59) ALIGN(LEFT) TSPACE(1) FTSPACE(1)
 MARGINS(1,45)
 /TITLE= 
  LEFT 'Percent Mediated'
  RIGHT 'Page )PAGE'
 /VARIABLES
 toteff	(VALUES)  (RIGHT)  (OFFSET(0)) (10)
 ratio	(VALUES)  (RIGHT)  (OFFSET(0)) (10)
 /BREAK (TOTAL) (SKIP(1)) /SUMMARY
 SUM( toteff ) SKIP(1) SUM( ratio) ''.

Image report3

Cite this article

stats writer (2024). How can I perform a Sobel test on a single mediation effect in SPSS?. PSYCHOLOGICAL SCALES. Retrieved from https://scales.arabpsychology.com/stats/how-can-i-perform-a-sobel-test-on-a-single-mediation-effect-in-spss/

stats writer. "How can I perform a Sobel test on a single mediation effect in SPSS?." PSYCHOLOGICAL SCALES, 30 Jun. 2024, https://scales.arabpsychology.com/stats/how-can-i-perform-a-sobel-test-on-a-single-mediation-effect-in-spss/.

stats writer. "How can I perform a Sobel test on a single mediation effect in SPSS?." PSYCHOLOGICAL SCALES, 2024. https://scales.arabpsychology.com/stats/how-can-i-perform-a-sobel-test-on-a-single-mediation-effect-in-spss/.

stats writer (2024) 'How can I perform a Sobel test on a single mediation effect in SPSS?', PSYCHOLOGICAL SCALES. Available at: https://scales.arabpsychology.com/stats/how-can-i-perform-a-sobel-test-on-a-single-mediation-effect-in-spss/.

[1] stats writer, "How can I perform a Sobel test on a single mediation effect in SPSS?," PSYCHOLOGICAL SCALES, vol. X, no. Y, ص Z-Z, June, 2024.

stats writer. How can I perform a Sobel test on a single mediation effect in SPSS?. PSYCHOLOGICAL SCALES. 2024;vol(issue):pages.

Download Post (.PDF)
Slide Up
x
PDF
Scroll to Top