Hello,
I am trying to follow up a significant moderation effect in my data, using the
pick-a-point (pap) and Johnson-Neyman (J-N) techniques. I have found the
probemod package for this, which is very useful. Working with it over the last
few weeks, 3 minor queries about the output have come up and I would be grateful
for any advice in this respect. Specifically:
(1) I found that the J-N output always provides me with the exact range of my
moderator. I know that this is the default setting, but what I am a bit puzzled
about is that it still gives me the output for the entire range, even when I
specify a smaller range manually using the mrange argument (for an example, see
my script below). Have I made any mistake here? Do others have the same problem?
(2) In my case the data ranges from 8 to 15, but the package displays numbers
1-8 in the J-N output instead. I notice that 1-8 is exactly the difference
between 8-15, so perhaps 1 = 8, 2 = 9, 3 = 10 and so on, in which case I can
live with that ... That said, such a convention will get a bit more confusing
when the moderator has a large number of values, say of range 200-1000. Is there
any way such that the actual values of the moderator can be displayed in the
output instead (note: the mrange argument works fine for the plot functions of
this package)?
(3) What I am also a bit confused about is that, for my data, the J-N technique
yields p-values of around .05 at scores 6 and 7, which presumably represent
values 13 and 14 of the moderator. Using the pap approach, I obtain a p-value
< .02 at the moderator value of 13.48. How can this be that these two
approaches reveal such different outcomes for very similar values (i.e. 13.48
versus 13 or 14)? Perhaps there is something I am not doing right here or have
misunderstood, so I would appreciate any pointers.
For ease of replicability, I provide my R code along with the data (see end of
message) in the following:
# create data frame
mod1<-data.frame(fp, m, dm)
#Range of moderator
range(mod1$m)
# full interaction model
m1<-lm(dm~fp*m, data=mod1)
# call probemod package
library(probemod)
#Probemod:J-N
jnresults <- jn(m1, dv='dm', iv='fp', mod='m',
mrange=10:15)
plot(jnresults)
jnresults
#Probemod: pick-a-point
ppres<-pickapoint(m1, dv='dm', iv='fp', mod='m')
plot(ppres)
ppres
#Full data:
m<-c(11, 14, 11, 12, 11, 12, 9, 12, 12, 9, 12, 8, 11, 12, 10, 9, 13, 13,
13, 12, 8, 11, 13,
10, 12, 12, 10, 11, 11, 15, 11, 11, 13, 10, 10, 15, 14, 12, 14, 13, 14,
15, 14, 10, 13, 9, 15,
13, 15, 12, 12, 14, 10, 12, 14, 10, 12, 10, 14, 9, 9, 11, 11, 13)
fp<-c(5, 6, 9, 7, 8, 8, 9, 3, 3, 7, 3, 6, 9, 3, 8, 5, 4, 6,
2, 6, 6, 5, 3, 5, 7,
8, 3, 3, 4, 3, 7, 7, 5, 4, 10, 9, 2, 9, 2, 2, 4, 3, 3, 3,
8, 5, 4, 6, 9, 4,
4, 4, 5, 5, 6, 4, 4, 3, 3, 8, 6, 6, 8, 6)
dm<-c(798.5027, 773.7591, 816.7397, 867.3680, 827.8940, 824.8648, 810.3585,
832.5348, 773.7681, 792.2763,
NA, 884.4126, 866.2052, 862.0126, 851.3000, 812.8300, 778.7394, 781.0571,
798.9329, 806.9844,
831.4983, 814.9005, 836.8078, 823.0125, 763.5780, 780.9182, NA, 842.2906,
788.2910, 835.8092,
768.4258, 734.9783, 855.5227, 833.1630, 817.5763, NA, 802.0592, 758.7745,
846.8749, 791.8602, NA,
NA, 869.1863, 766.5122, 834.5878, 882.9315, 917.4202, 804.2642, 748.3454,
800.6837, 790.6344,
758.0473, NA, NA, 814.9149, 785.4883, NA, 778.5333, 865.5467, 820.8561,
779.8348, 813.4988,
784.0798, 781.3917)
Any comments would be much appreciated.
Best,
Marcel
[[alternative HTML version deleted]]