m-w parameterization of the psychmetric function More...
#include <core.h>
Public Member Functions | |
mwCore (const PsiData *data=NULL, const int sigmoid=1, const double alpha=0.1) | |
construcor | |
mwCore (const mwCore &original) | |
copy constructor | |
double | g (double x, const std::vector< double > &prm) const |
evaluate the core of the sigmoid | |
double | dg (double x, const std::vector< double > &prm, int i) const |
evaluate the first derivative of the core with respect to parameter i | |
double | dgx (double x, const std::vector< double > &prm) const |
evaluate the first derivative of the core with respect to stimulus intensity | |
double | ddg (double x, const std::vector< double > &prm, int i, int j) const |
evaluate the second derivative of the core with respect to parameters i and j | |
double | inv (double y, const std::vector< double > &prm) const |
invert the core | |
double | dinv (double p, const std::vector< double > &prm, int i) const |
derivative of the inverse core with respect to parameter i | |
std::vector< double > | transform (int nprm, double a, double b) const |
transform parameters from a logistic regression model to the parameters used here | |
PsiCore * | clone (void) const |
clone object by value | |
double | getAlpha (void) const |
Static Public Member Functions | |
static std::string | getDescriptor (void) |
get a short string that identifies the type of core |
m-w parameterization of the psychmetric function
An alternative way to parameterize the psychometric function is to describe it in terms of a threshold (m) and the width of part of the function over which there is significant performance increase. What exactly "significant performance increase" means is defined by a parameter alpha. By definition significant performance increase happens over the range where f(g(x|theta)) is larger than alpha but smaller than 1-alpha. Obviously this definition depends on the sigmoid that is used.
mwCore::mwCore | ( | const PsiData * | data = NULL , |
|
const int | sigmoid = 1 , |
|||
const double | alpha = 0.1 | |||
) |
construcor
data | ignored | |
sigmoid | Type of the sigmoid (1=logistic, 2=gauss, 3=gumbel) | |
alpha | alpha parameter defining what "significant performance increase" means |
double mwCore::ddg | ( | double | x, | |
const std::vector< double > & | prm, | |||
int | i, | |||
int | j | |||
) | const [virtual] |
evaluate the second derivative of the core with respect to parameters i and j
x | stimulus intensity | |
prm | parameter vector | |
i | index of the parameter to which the first derivative should be evaluated | |
j | index of the parameter to which the second derivative should be evaluated |
Reimplemented from PsiCore.
double mwCore::dg | ( | double | x, | |
const std::vector< double > & | prm, | |||
int | i | |||
) | const [virtual] |
evaluate the first derivative of the core with respect to parameter i
x | stimulus intensity | |
prm | parameter vector | |
i | index of the parameter to which the derivative should be evaluated |
Reimplemented from PsiCore.
double mwCore::dgx | ( | double | x, | |
const std::vector< double > & | prm | |||
) | const [virtual] |
evaluate the first derivative of the core with respect to stimulus intensity
x | stimulus intensity | |
prm | parameter vector |
Reimplemented from PsiCore.
double mwCore::dinv | ( | double | p, | |
const std::vector< double > & | prm, | |||
int | i | |||
) | const [virtual] |
derivative of the inverse core with respect to parameter i
p | transformed intenstiy at which to evaluate the derivative | |
prm | parameter vector | |
i | evaluate the derivative with respect to parameter i |
Reimplemented from PsiCore.
double mwCore::g | ( | double | x, | |
const std::vector< double > & | prm | |||
) | const [virtual] |
evaluate the core of the sigmoid
x | stimulus intensity | |
prm | parameter vector |
Reimplemented from PsiCore.
double mwCore::inv | ( | double | y, | |
const std::vector< double > & | prm | |||
) | const [virtual] |
invert the core
y | transformed intensity | |
prm | parameter vector |
Reimplemented from PsiCore.
std::vector< double > mwCore::transform | ( | int | nprm, | |
double | a, | |||
double | b | |||
) | const [virtual] |
transform parameters from a logistic regression model to the parameters used here
nprm | number of parameters in the final parameter vector | |
a | intercept of the logistic regression model | |
b | slope of the logistic regression model |
Reimplemented from PsiCore.