irt-0.2.0.0: Math/IRT/Model/Rasch.hs
module Math.IRT.Model.Rasch
( RaschModel (..)
) where
import Statistics.Distribution
import Math.IRT.Internal.Distribution
import Math.IRT.Internal.LogLikelihood
import Math.IRT.Model.FourPLM ( FourPLM(..) )
import Math.IRT.Model.Generic
data RaschModel = RaschModel { difficulty :: !Double
} deriving (Show)
instance Distribution RaschModel where
cumulative = cumulative . toFourPLM
instance ContDistr RaschModel where
density = density . toFourPLM
quantile _ = error "This shouldn't be needed"
instance DensityDeriv RaschModel where
densityDeriv = densityDeriv . toFourPLM
instance GenericModel RaschModel where
fromRasch = RaschModel
fromOnePLM = RaschModel
fromTwoPLM _ b = RaschModel b
fromThreePLM _ b _ = RaschModel b
fromFourPLM _ b _ _ = RaschModel b
instance LogLikelihood RaschModel where
logLikelihood b = logLikelihood b . toFourPLM
toFourPLM :: RaschModel -> FourPLM
toFourPLM (RaschModel sb) = FourPLM 1.0 sb 0.0 1.0