etirm::ItemParamPriorBeta4 Class Reference

Class representing a four-parameter beta prior distribution of item parameters in Bayes modal estimation. More...

#include <ItemParamPriorBeta4.h>

Inheritance diagram for etirm::ItemParamPriorBeta4:

Inheritance graph
[legend]
Collaboration diagram for etirm::ItemParamPriorBeta4:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ItemParamPriorBeta4 ()
 Default constructor - assign uniform [0,1] distribution.
 ItemParamPriorBeta4 (RealVector &param)
 Class construction from a parameter vector.
 ItemParamPriorBeta4 (Real a, Real b, Real l, Real u)
 Class construction from four individual parameter values.
virtual int NumParameters ()
 Returns number of prior beta distribution parameters for the IRT parameter.
virtual bool ZeroDensity (Real p)
 Returns true if density at p is zero.
virtual Real NearestNonZero (Real x)
 If density of x is zero, then this function will return the value closest to x that has a non-zero density.
virtual Real LogDensity (Real p)
 Only computes part of the log of the density that depends on the parameter.
virtual Real DerivLogDensity1 (Real p)
 First derivative of log density.
virtual Real DerivLogDensity2 (Real p)
 Second derivative of log density.
virtual std::string DistributionName () const
 Returns string containing name of distribution used for prior.


Detailed Description

Class representing a four-parameter beta prior distribution of item parameters in Bayes modal estimation.

Definition at line 35 of file ItemParamPriorBeta4.h.


Constructor & Destructor Documentation

etirm::ItemParamPriorBeta4::ItemParamPriorBeta4 (  ) 

Default constructor - assign uniform [0,1] distribution.

Definition at line 74 of file ItemParamPriorBeta4.cpp.

References etirm::ItemParamPrior::mParameters.

00074                                            :
00075     ItemParamPrior(4)
00076   {
00077 
00078     mParameters[0] = 1.0;
00079     mParameters[1] = 1.0;
00080     mParameters[2] = 0.0;
00081     mParameters[3] = 1.0;
00082   }

etirm::ItemParamPriorBeta4::ItemParamPriorBeta4 ( RealVector param  ) 

Class construction from a parameter vector.

Definition at line 44 of file ItemParamPriorBeta4.cpp.

00044                                                             :
00045     ItemParamPrior(param)
00046   {
00047   }

etirm::ItemParamPriorBeta4::ItemParamPriorBeta4 ( Real  a,
Real  b,
Real  l,
Real  u 
)

Class construction from four individual parameter values.

Definition at line 53 of file ItemParamPriorBeta4.cpp.

References etirm::ItemParamPrior::mParameters.

00053                                                                          :
00054     ItemParamPrior(4)
00055   {
00056     // check for valid parameters
00057     if (a <= 0.0 || b <= 0.0)
00058       throw RuntimeError("Invalid shape parameter for beta dist",
00059           "ItemParamPriorBeta4::ItemParamPriorBeta4");
00060     if (l >= u)
00061       throw RuntimeError("Invalid upper or lower limit for beta dist",
00062           "ItemParamPriorBeta4::ItemParamPriorBeta4");
00063 
00064     mParameters[0] = a;
00065     mParameters[1] = b;
00066     mParameters[2] = l;
00067     mParameters[3] = u;
00068   }


Member Function Documentation

virtual int etirm::ItemParamPriorBeta4::NumParameters (  )  [inline, virtual]

Returns number of prior beta distribution parameters for the IRT parameter.

Implements etirm::ItemParamPrior.

Definition at line 44 of file ItemParamPriorBeta4.h.

00045     {
00046       return 4;
00047     }

virtual bool etirm::ItemParamPriorBeta4::ZeroDensity ( Real  p  )  [inline, virtual]

Returns true if density at p is zero.

Reimplemented from etirm::ItemParamPrior.

Definition at line 50 of file ItemParamPriorBeta4.h.

References etirm::ItemParamPrior::mParameters.

Referenced by DerivLogDensity1(), DerivLogDensity2(), and LogDensity().

Here is the caller graph for this function:

Real etirm::ItemParamPriorBeta4::NearestNonZero ( Real  x  )  [virtual]

If density of x is zero, then this function will return the value closest to x that has a non-zero density.

Reimplemented from etirm::ItemParamPrior.

Definition at line 86 of file ItemParamPriorBeta4.cpp.

References etirm::ItemParamPrior::mParameters.

00087   {
00088     // Density at lower and upper limits has zero
00089     // density, so return a value that is offset
00090     // from the lower and upper limits by the following amount
00091     const Real offset = 0.001;
00092 
00093     if (x <= mParameters[2])
00094     {
00095       return mParameters[2]+offset;
00096     }
00097     else if (x >= mParameters[3])
00098     {
00099       return mParameters[3]-offset;
00100     }
00101     else
00102     {
00103       return x;
00104     }
00105   }

Real etirm::ItemParamPriorBeta4::LogDensity ( Real  p  )  [virtual]

Only computes part of the log of the density that depends on the parameter.

Parameters:
[in] p Argument of log density function (an item parameter value)

Implements etirm::ItemParamPrior.

Definition at line 113 of file ItemParamPriorBeta4.cpp.

References etirm::ItemParamPrior::mParameters, and ZeroDensity().

00114   {
00115 
00116     /* Check for value outside limits of distribution */
00117     if (ItemParamPriorBeta4::ZeroDensity(p))
00118     {
00119       {
00120         return std::log(0.0);
00121       }
00122     }
00123 
00124     Real value = (mParameters[0] - 1.0) * std::log(p - mParameters[2]);
00125 
00126     value += (mParameters[1] - 1.0) * std::log(mParameters[3] - p);
00127 
00128     return value;
00129   }

Here is the call graph for this function:

Real etirm::ItemParamPriorBeta4::DerivLogDensity1 ( Real  p  )  [virtual]

First derivative of log density.

Only computes part of the log of the density that depends on the parameter

Implements etirm::ItemParamPrior.

Definition at line 137 of file ItemParamPriorBeta4.cpp.

References etirm::ItemParamPrior::mParameters, and ZeroDensity().

00138   {
00139     /* Outside limits of distribution density does not change,
00140      so derivative is zero */
00141     if (ItemParamPriorBeta4::ZeroDensity(p))
00142       return 0.0;
00143 
00144     Real value = (mParameters[0] - 1.0) / (p - mParameters[2]);
00145     value -= (mParameters[1] - 1.0) / (mParameters[3] - p);
00146 
00147     return value;
00148   }

Here is the call graph for this function:

Real etirm::ItemParamPriorBeta4::DerivLogDensity2 ( Real  p  )  [virtual]

Second derivative of log density.

Only computes part of the log of the density that depends on the parameter.

Implements etirm::ItemParamPrior.

Definition at line 156 of file ItemParamPriorBeta4.cpp.

References etirm::ItemParamPrior::mParameters, and ZeroDensity().

00157   {
00158     /* Outside limits of distribution density does not change,
00159      so derivative is zero */
00160     if (ItemParamPriorBeta4::ZeroDensity(p))
00161       return 0.0;
00162 
00163     Real denom = p - mParameters[2];
00164     Real value = (1.0 - mParameters[0]);
00165     value /= denom*denom;
00166     denom = mParameters[3] - p;
00167     value -= (mParameters[1] - 1.0) / (denom*denom);
00168 
00169     return value;
00170   }

Here is the call graph for this function:

virtual std::string etirm::ItemParamPriorBeta4::DistributionName (  )  const [inline, virtual]

Returns string containing name of distribution used for prior.

Implements etirm::ItemParamPrior.

Definition at line 68 of file ItemParamPriorBeta4.h.


The documentation for this class was generated from the following files:
Generated on Sat Mar 1 21:41:51 2008 for ETIRM by  doxygen 1.5.4