[R] fit a nonlinear model using nlm()
Ken Knoblauch
knoblauch at lyon.inserm.fr
Tue Jul 17 13:11:02 CEST 2007
William Simpson <william.a.simpson <at> gmail.com> writes:
>
> I am trying to fit a nonlinear model using nlm().
> The observer is trying to detect a signal corrupted by noise.
> On each trial, the observer gets stim=signal+rnorm().
>
> In the simulation below I have 500 trials. Each row of stim is a new trial.
> On each trial, if the cross-correlation between the stim and
> the signal is above some criterion level (crit=.5 here), the
> observer says "signal" (resp=1), else he says "no signal"
> (resp=0).
>
> Thanks very much for any help!
> Bill
>
>
It sounds like you are doing a classification image experiment.
You can use tapply() to get means for each x as a function of the
observer's classifications and then combine them as a function of
hits, false alarms, misses, correct rejections using the weights
1 -1, -1, 1, as in Ahumada's original approach.
You can do this with lm() if you set it up so that the noise is
the response and the classifications are a 4 level factor that prediccts
them and the contrasts are set up as above.
I think that it would be better to set it up as a glm, however,
where the responses of the observer are binary responses, the
noise and the presence/absence of the signal are predictor variables,
with a binomial family.
I have example code that does each of these if you are
interested and if it is only for simulation, see
@Article{pmid16277294,
Author="Thomas, James P and Knoblauch, Kenneth",
Title="{{F}requency and phase contributions to the detection of
temporal luminance modulation}",
Journal="J Opt Soc Am A Opt Image Sci Vis",
Year="2005",
Volume="22",
Number="10",
Pages="2257--2261",
Month="Oct"
}
for which I can send you the code also.
Ken
More information about the R-help
mailing list