ps matching and mcnemar test in spss

Davidk

New Member
Hello!

I am using spss to analyze my data set.

1. I want to match my cases and controls (I have a lot of controls and a small set of cases) using ps matching.
I can give ps scores using logistic regression but I have trouble matching them - I understood there are all kind of extensions to spss to do so. does any of you have any exprience with that? I am using spss 26

2. let's say I match manually - I create a new variable lets call it "pair number" - I have 60 cases meaning 60 pairs which I matched controls to. all in all 120 rows (1,1,2,2,...)
how do I do the mcnemar test that it would consider this grouping?

Karabiner

TS Contributor
For the McNemar test, the observations belonging to a unit (here: a case-control pair)
have to be in the same row. Therefore, not 120 but 60 rows.

With kind regards

Karabiner

hlsmith

Less is more. Stay pure. Stay poor.
Why not use conditional logistic regression instead of McNemar?

Davidk

New Member
does conditional logistic regression provides roughly the same results as a mcnemar test?
could you please explain in a bit the meaning of a conditional logistic regression?

regards

Davidk

New Member
do you know if can create an output file that would give me this using my spss- I have the fuzzy python extension.
I guess the output file needs to have basically three variable "match id; outcome for exposed; outcome for non-exposed" in order to run the test

For the McNemar test, the observations belonging to a unit (here: a case-control pair)
have to be in the same row. Therefore, not 120 but 60 rows.

With kind regards

Karabiner

Karabiner

TS Contributor
I guess what you mean is data file or data sheet? You could use
Data -> restructure in order to obtain this.

Or, if your data are sorted by Pair_Id and group, and they currently look like

Pair_Id group outcome
001 control 0
001 case 0
002 control 1
002 case 0
003 control 0
003 case 1
...

you could create a second outcome variable:

IF(Pair_Id = LAG(Pair_ID) ) outcome_ctrl = LAG(outcome).
EXECUTE .

so that here in each "case" row there is the outome for the case, and in addition the outcome for its control.

HTH

Karabiner

hlsmith

Less is more. Stay pure. Stay poor.
The conditional logistic regression would allow you to actually have an effect estimate with precision bounds instead of a trite pvalue. Also, it would allow you to match more than one control to a case (given you are case limited). It would require the same input.