Description Usage Arguments Examples
(negative) log-likelihood calculation for multiple conditions. The lapse rate is assumed invariant across conditions.
1 | lnorm_3par_multi(p, d)
|
p |
parameter vector, c(mu, sigma, lambda) |
d |
a dataframe with a column 'r' that indicate response (0,1) and a column 'x' that indicate the stimulus, plus a column 'condition' |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # generate some some fake data
set.seed(1)
x <- runif(900)*6-3
condition <- rep(1:3,300)
d <- data.frame(x , condition)
d$condition <- as.factor(d$condition)
d$r <- NA
for(i in 1:sum(d$condition=="1")) {d$r[d$condition=="1"][i] <- rbinom(1,1,psy_3par(d$x[d$condition=="1"][i],0,0.5,0.05))}
for(i in 1:sum(d$condition=="2")) {d$r[d$condition=="2"][i] <- rbinom(1,1,psy_3par(d$x[d$condition=="2"][i],0,1,0.05))}
for(i in 1:sum(d$condition=="3")) {d$r[d$condition=="3"][i] <- rbinom(1,1,psy_3par(d$x[d$condition=="3"][i],0,1.5,0.05))}
# set reasonable intial guesses and fit model with optim
start_p <- c(rep(c(0,1),3), 0.01)
fit <- optim(par = start_p, lnorm_3par_multi , d=d, hessian = T)
# estimated parameters
round(fit$par,digits=5)
# standard error of the estimates
sqrt(diag(solve(fit$hessian)))
# simple ggplot figure
library(ggplot2)
nd <- expand.grid(x=seq(-3,3,length.out=200),condition=unique(d$condition))
nd$r <- predict_3par_multi(fit$par, nd)
ggplot(d, aes(x=x,y=r))+geom_point(pch=19,col="blue",alpha=0.05)+geom_line(data=nd,color="black",lwd=0.5)+facet_grid(.~condition)+nice_theme
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.