[R] problem using uniroot with integrate

From: Ken Knoblauch <knoblauch_at_lyon.inserm.fr>
Date: Thu 10 Mar 2005 - 03:27:27 EST


Hi,

I'm trying to calculate the value of the variable, dp, below, in the argument to the integral of dnorm(x-dp) * pnorm(x)^(m-1). This corresponds to the estimate of the sensitivity of an observer in an m-alternative forced choice experiment, given the probability of a correct response, Pc, a Gaussian assumption for the noise and no bias. The function that I wrote below gives me an error:

Error in f(x, ...) : recursive default argument reference

The problem seems to be at the statement using uniroot, because the furntion est.dp works fine outside of the main function. I've been using R for awhile but there are still many nuances about the scoping and the use of environments that I'm weak on and would like to understand better. I would appreciate any suggestions or solutions that anyone might offer for fixing my error. Thank you.

dprime.mAFC <- function(Pc, m) {

                est.dp <- function(dp, Pc = Pc, m = m) {                 

		  pr <- function(x, dpt = dp, m0 = m) {
		    	dnorm(x - dpt) * pnorm(x)^(m0 - 1)
			    }
		
		  Pc - integrate(pr, lower = -Inf, upper = Inf, 
		  dpt = dp, m0 = m)$value
		}
		
	dp.res <- uniroot(est.dp, interval = c(0,5), Pc = Pc, m = m)
	dp.res$root	
	}

platform powerpc-apple-darwin6.8
arch     powerpc                
os       darwin6.8              
system   powerpc, darwin6.8     
status                          
major    2                      
minor    0.1                    
year     2004                   
month    11                     
day      15                     

language R

ken



Ken Knoblauch
Inserm U 371
Cerveau et Vision
18 avenue du Doyen Lepine
69675 Bron cedex
France
tel: +33 (0)4 72 91 34 77
fax: +33 (0)4 72 91 34 61
portable: 06 84 10 64 10

R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Thu Mar 10 04:48:03 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:30:42 EST