Hello everyone,
I am trying to perform a propensity score matching using SPSS 27.0. In my extension hub, it shows me that FUZZY extension and PSM is installed. However, when I try to run the PSM, I'm receiving the following error message:
* Propensity Score Matching.
begin program python3.
import spss, random, spssaux, codecs
try:
import FUZZY
except:
print("This procedure requires the FUZZY extension command which is not installed.")
parts = [int(i) for i in FUZZY.__version__.split(".")]
if parts < [1,3,0]:
raise EnvironmentError("This procedure requires version 1.3.0 or later of FUZZY")
ds = spss.ActiveDataset()
if ds =="*":
ds = "D" + str(random.random())
spss.Submit("DATASET NAME " + ds)
ds = codecs.encode(ds) # must use code page rep here
matchgroup = "M" + str(random.random()) #temporary variable
tempdsname = "D" + str(random.random())
lrcmd = spssaux.u(r"""LOGISTIC REGRESSION VARIABLES treatment
/METHOD=ENTER Age Sex AML_type ELN
/SAVE=PRED(Prop).""")
try:
spss.Submit(lrcmd)
except:
raise ValueError("Logistic Regression step failed")
fuzzycmd = spssaux.u(r"""FUZZY BY=Prop SUPPLIERID=VAR00001 NEWDEMANDERIDVARS=Test2
GROUP=treatment EXACTPRIORITY=FALSE
MATCHGROUPVAR=%(matchgroup)s FUZZ=0.5 DS3=%(tempdsname)s
/OPTIONS SAMPLEWITHREPLACEMENT=FALSE MINIMIZEMEMORY=TRUE SHUFFLE=FALSE .
DELETE VARIABLES %(matchgroup)s.
DATASET ACTIVATE %(ds)s.
DELETE VARIABLES %(matchgroup)s.
DATASET COPY Test.
DATASET ACTIVATE Test.
SELECT IF treatment EQ 1.
DATASET ACTIVATE %(tempdsname)s.
DATASET ACTIVATE Test.
ADD FILES /FILE=* /FILE=%(tempdsname)s.
EXECUTE.
DATASET CLOSE %(tempdsname)s.""" % locals())
spss.Submit(fuzzycmd)
end program.
This procedure requires the FUZZY extension command which is not installed.
Traceback (most recent call last):
File "<string>", line 7, in <module>
NameError: name 'FUZZY' is not defined
begin program.
_SLINE OFF.
Could anyone tell me what I am doing wrong?
Thank you in advance,
Tim
------------------------------
Tim Sauer
------------------------------
#SPSSStatistics