irt-0.2.0.0: Math/IRT/Model/TwoPLM.hs
module Math.IRT.Model.TwoPLM
( TwoPLM (..)
) 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 TwoPLM = TwoPLM { discrimination :: !Double
, difficulty :: !Double
} deriving (Show)
instance Distribution TwoPLM where
cumulative = cumulative . toFourPLM
instance ContDistr TwoPLM where
density = density . toFourPLM
quantile _ = error "This shouldn't be needed"
instance DensityDeriv TwoPLM where
densityDeriv = densityDeriv . toFourPLM
instance GenericModel TwoPLM where
fromRasch b = TwoPLM 1.0 b
fromOnePLM b = TwoPLM 1.7 b
fromTwoPLM = TwoPLM
fromThreePLM a b _ = TwoPLM a b
fromFourPLM a b _ _ = TwoPLM a b
instance LogLikelihood TwoPLM where
logLikelihood b = logLikelihood b . toFourPLM
toFourPLM :: TwoPLM -> FourPLM
toFourPLM (TwoPLM sa sb) = FourPLM sa sb 0.0 1.0