[Rasch] Rasch-inspired open-source software now available for highly multidimensional data

Mark Moulton markhmoulton at gmail.com
Tue Apr 3 04:16:20 EST 2012


Hi Jason,

(a) *Short answer:*  Damon does not handle regression in the way you're
thinking, in the style of Rasch latent regression where (say) person
properties are used to predict Rasch ability measures. It does not return
regression effect coefficients for predictor variables.  For that, you'll
want another tool.

*Long answer:* Damon *does* include all person properties in the analysis
as if they were simply additional items -- gender, age, etc, are items
along with MathItem1, MathItem2, EngItem1,EngItem2, etc.  In other words,
predictor variables and dependent variables are not treated differently --
each is a predictor of the others.  (Multicollinearity is not a problem
because Damon internally projects all items and persons into a subspace of
constrained dimensionality, and the orthornormal/linearly independent
coordinates of that space become the true predictor variables.)

What this means is that Damon is very good at *predicting* values for a
given dependent variable (assuming fit to the model), if that is your goal.
 It includes a method for removing any biases that might be caused by a
dependent variable helping predict itself.  So the primary output is a
matrix of predictions of each person on each item, given the information
provided by the rest of the dataset.  Secondary outputs are the coordinates
of each item and person.  The dot product of these coordinates supplies the
prediction.  Damon takes the strong position that regression coefficients
of predictor variables are *insufficient* to predict outcomes.  One must
also have computed the latent coordinates of the individual persons for
whom predictions are being made, in order to preserve the sample-free
property of the predictions.  That is why Damon does not report regression
style effect sizes.

(b) Damon currently only supports 2-facet (tabular) designs.  I'm eager to
build a many-facet version, but that will be a total rewrite and may kill
me.

Mark
www.pythiasconsulting.com




2012/4/2 Iasonas Lamprianou <liasonas at cytanet.com.cy>

> Hi,
> (a) can the Damon software be used to solve regression-like problems? For
> example, can I run the ussual Rasch model, also using independent variables
> for latent regressions?
> (b) Does it support many-facets designs?
>
> Thanks
>
> Jason
>
> ----- Original Message Follows -----
> From: Mark Moulton <markhmoulton at gmail.com>
> To: <rasch at acer.edu.au>
> Subject: [Rasch] Rasch-inspired open-source software now available for
> highly multidimensional data
> Date: Fri, 23 Mar 2012 20:06:14 -0700
> > *Dear Rasch Colleagues,*
> >
> > I want to let you know about *Damon*, a Python-based software package
> that
> > I'm releasing free to the Rasch psychometric community and general
> public.
> >  The result of some 20 years hard labor (initiated by Ben Wright to his
> > surprise), it has been in private commercial use for the last five years.
> >  It was designed specifically to apply Rasch's objectivity criterion to
> *highly
> > multidimensional* datasets, such as the infamous Netflix movie ratings
> > dataset.
> >
> > It is documented and available for download through
> > www.pythiasconsulting.com .  If there is any interest, I will hold a
> *Damon
> > workshop in Vancouver* at my hotel on the morning of *Friday, April
> 13,*after
> > *IOMW*.
> >
> > Contact me if you have any questions.
> >
> > Thanks!
> >
> > Mark H. Moulton, Ph.D.
> > Pythias Consulting
> >
> > markhmoulton at gmail.com
> > 408-307-2794
> >
> >
> > *Features/Bugs (depending on point of view):*
> >
> >    - *Multidimensionality.*  Easily handles data with 1, 5, 10, 50, 100+
> >    dimensions, including items that are negatively correlated.
> >    - *Data types.*  Handles interval, ordinal, ratio, dichotomous,
> >    polytomous, and nominal data, including within the same dataset.
> >    - *Missing Data. * Handles pretty much any proportion of missing data,
> >    random or non-random.
> >    - *Labels.*  Datasets support row labels and column labels of any
> depth.
> >     Queries are label-based.
> >    - *Objectivity.*  Damon offers clear criteria for determining and
> >    optimizing the objectivity of all reported statistics, including "best
> >    dimensionality".  These include Rasch's parameter invariance
> requirement.
> >    - *Measures.*  Person measures consist of cell estimates, in either
> the
> >    original or a linear (logit) metric, averaged across one or more items
> >    within a dataset.  They answer the question:  *How able is Person A on
> >    the construct embodied by a defined subset of items?*
> >    - *Predictions.*  Predictions are of the form:  *How would Person A
> have
> >    performed on Item 1 if he had taken the item?*
> >    - *Equating.*  Parameters from one dataset are transferrable as
> anchors
> >    to a comparable dataset.
> >    - *Analysis of Fit.*  Damon reports fit statistics, standard errors,
> >    etc., for determining the degree to which the observed data fits into
> the
> >    objective space.
> >    - *Rasch.*  Damon includes a Rasch module based on the Winsteps JMLE
> >    implementation.
> >
> > *Algorithm*
> >
> >    - *ALS/Rasch.*  The algorithm is classified as a multidimensional
> >    alternating least squares matrix decomposition subjected to a strict
> >    Rasch-based objectivity optimization criterion.
> >
> > *Usability*
> >
> >    - *Python.*  Damon is built on top of the Python scripting language
> and
> >    the Numpy numerical package (both free).  It is accessed through a
> >    command-line shell or run from scripts.  If you have experience with
> the
> >    statistical language *R*, or *MatLab*, you will feel at home.
>  Although
> >    Damon is written in Python, it requires very little expertise in
> Python
> >    programming.   The website includes a tutorial.  Damon's inline help
> >    resources are extensive.
> >
> > *A Sample Damon script*
> >
> > >>>  import damon1.core as dmn
> > >>>  Data =
> >
> dmn.DamonObj('California_May2012.csv','TextFile',nHeaders4Rows=5,nHeaders4Cols=1,ValidChars=['All',[0,1]])
> > >>>  Data.standardize()
> > >>>  Data.coord([range(1,11)],RunSpecs=[0.0001,20])
> > >>>  Data.baseEst()
> > >>>  Data.finEst()
> > >>>  Data.summStat()
> > >>>  Data.export(['summStat_out','baseEst_out','finEst_out'],'TextFile')
> >
> > This short program imports and formats a text file, standardizes the
> data,
> > looks for the optimal (most objective) dimensionality in a range of 10
> > dimensions, computes coordinates (multidimensional abilities and
> > difficulties) for each person and item, computes an array of cell
> estimates
> > (for both missing and non-missing cells), computes another array of cell
> > (0,1) predictions, computes person measures, and exports three of the
> > outputs as text files.
> >
> > Various other statistics, functions, and methods are available in Damon,
> > plus the massive libraries in Numpy and related Python packages.
> >
> >
> > _______________________________________________
> > Rasch mailing list
> > Rasch at acer.edu.au
> > Unsubscribe:
> https://mailinglist.acer.edu.au/mailman/options/rasch/liasonas%40cytanet.com.cy
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://mailinglist.acer.edu.au/pipermail/rasch/attachments/20120402/dde93a6e/attachment.html 


More information about the Rasch mailing list