lnorm_3par_multi: Psychometric

Description Usage Arguments Examples

View source: R/psych-3.R

Description

(negative) log-likelihood calculation for multiple conditions. The lapse rate is assumed invariant across conditions.

Usage

1

Arguments

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'

Examples

 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

mattelisi/mlisi documentation built on Oct. 13, 2019, 5:59 p.m.