You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
207 lines
7.3 KiB
Plaintext
207 lines
7.3 KiB
Plaintext
*! version 8.10 5july2019
|
|
*! Jean-Benoit Hardouin
|
|
************************************************************************************************************
|
|
* Raschtest: Rasch model, fit tests and graphical validation
|
|
*
|
|
* Historic:
|
|
* Version 1 (2003-06-30): Jean-Benoit Hardouin
|
|
* Version 2 (2003-07-07): Jean-Benoit Hardouin
|
|
* Version 3 (2004-01-02): Jean-Benoit Hardouin
|
|
* Version 4 (2004-01-21): Jean-Benoit Hardouin
|
|
* Version 5 (2004-01-24): Jean-Benoit Hardouin
|
|
* Version 6 (2004-02-05): Jean-Benoit Hardouin
|
|
* Version 6.1 (2004-03-29): Jean-Benoit Hardouin
|
|
* Version 6.2 (2004-04-06): Jean-Benoit Hardouin
|
|
* Version 6.3 (2004-07-08) : Jean-Benoit Hardouin
|
|
* Version 7 (2005-04-02) : Jean-Benoit Hardouin
|
|
* Version 7.2 (2005-05-20) : Jean-Benoit Hardouin
|
|
* Version 7.3 (2005-07-02) : Jean-Benoit Hardouin
|
|
* Version 7.4 (2006-01-15) : Jean-Benoit Hardouin
|
|
* Version 7.5 (2006-04-20) : Jean-Benoit Hardouin
|
|
* Version 7.6 (2008-06-20) : Jean-Benoit Hardouin /*nold option*/
|
|
* Version 8 (2009-06-20) : Jean-Benoit Hardouin /*DIFFICULTIES and COVARIATES options*/
|
|
* Version 8.3 (2010-06-15) : Jean-Benoit Hardouin /*GENRES option*/
|
|
* Version 8.6 (2012-11-19) : Jean-Benoit Hardouin /*HTML option*/
|
|
* Version 8.9 (2019-06-05) : Jean-Benoit Hardouin /*PNG option*/
|
|
* Version 8.10 (2019-06-05) : Jean-Benoit Hardouin /*EXTENSION option*/
|
|
*
|
|
* Required modules :
|
|
* raschtestv7 version 8.1 (http://freeirt.free.fr)
|
|
* gammasym version 2.2 (http://www.freeirt.org)
|
|
* gausshermite version 1 (http://www.freeirt.org)
|
|
* geekel2d version 4.3 (http://www.freeirt.org)
|
|
* genscore version 1.4 (http://www.freeirt.org)
|
|
* ghquadm (findit ghquadm)
|
|
* gllamm version 2.3.14 (ssc describe gllamm)
|
|
* gllapred version 2.3.7 (ssc describe gllapred)
|
|
* elapse (ssc describe elapse)
|
|
*
|
|
* Jean-benoit Hardouin - University of Nantes - France
|
|
* INSERM UMR 1246-SPHERE "Methods in Patient Centered Outcomes and Health Research"
|
|
* jean-benoit.hardouin@univ-nantes.fr
|
|
*
|
|
* News about this program : http://www.anaqol.org
|
|
*
|
|
* Copyright 2003-2012, 2019 Jean-Benoit Hardouin
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
************************************************************************************************************/
|
|
|
|
|
|
/***********************************************************************************************************
|
|
INTRODUCTION
|
|
***********************************************************************************************************/
|
|
|
|
|
|
program define raschtest,eclass
|
|
syntax varlist(min=1 numeric) [if] [in] , ID(varname) [HTML(string) MEANdiff DIRsave(string) FILESsave nodraw PAUse REPlace ICC INFormation SPLITtests FITgraph Method(string) group(numlist >0 ascen) AUTOGroup Test(string) q2 GENLT(string) GENSCOre(string) GENFIT(string) GRAph COMp(varname) dif(varlist) time TRace Details nold iterate(int 200) DIFFiculties(string) COVariates(string) GENRes(string) EXTension(string) graphclose docx(string)]
|
|
|
|
local nbitems:word count `varlist'
|
|
if "`method'"=="" {
|
|
local method "cml"
|
|
}
|
|
else {
|
|
local method=lower("`method'")
|
|
}
|
|
if "`test'"=="" {
|
|
local test "R"
|
|
}
|
|
else {
|
|
local test=upper("`test'")
|
|
}
|
|
if "`dirsave'"!="" {
|
|
local dirsavev8 "dirsave(`dirsave')"
|
|
}
|
|
if "`method'"!="" {
|
|
local methodv8 "method(`method')"
|
|
}
|
|
if "`test'"!="" {
|
|
local testv8 "test(`test')"
|
|
}
|
|
if "`group'"!="" {
|
|
local groupv8 "group(`group')"
|
|
}
|
|
if "`genlt'"!="" {
|
|
local genltv8 "genlt(`genlt')"
|
|
}
|
|
if "`genscore'"!="" {
|
|
local genscorev8 "genscore(`genscore')"
|
|
}
|
|
if "`genres'"!="" {
|
|
local gensresv8 "genres(`genres')"
|
|
}
|
|
if "`genfit'"!="" {
|
|
local genfitv8 "genfit(`genfit')"
|
|
}
|
|
if "`comp'"!="" {
|
|
local compv8 "comp(`comp')"
|
|
}
|
|
if "`dif'"!="" {
|
|
local difv8 "dif(`dif')"
|
|
}
|
|
if "`iterate'"!="" {
|
|
local iteratev8 "iterate(`iterate')"
|
|
}
|
|
if "`difficulties'"!="" {
|
|
local difficultiesv8 "difficulties(`difficulties')"
|
|
}
|
|
if "`covariates'"!="" {
|
|
local covariatesv8 "covariates(`covariates')"
|
|
}
|
|
|
|
raschtestv7 `varlist' `if' `in' , id(`id') html(`html') `meandiff' `dirsavev8' `filessave' `nodraw' `pause' `replace' `icc' `information' `splittests' `fitgraph' `methodv8' `groupv8' `autogroup' `testv8' `q2' `genltv8' `genscorev8' `genresv8' `genfitv8' `graph' v8 `compv8' `difv8' `time' `trace' `details' `ld' `iteratev8' `difficultiesv8' `covariatesv8' `png' extension(`extension') `graphclose' docx(`docx')
|
|
|
|
/***********************************************************************************************************
|
|
RETURN
|
|
************************************************************************************************************/
|
|
|
|
ereturn clear
|
|
if `nbitems'>=3 {
|
|
if "`method'"=="cml" {
|
|
if "`test'"!="none" {
|
|
tempname AndersenZv8
|
|
matrix `AndersenZv8'=r(AndersenZ)
|
|
ereturn matrix AndersenZ=`AndersenZv8'
|
|
}
|
|
if "`dif'"!="" {
|
|
tempname DIFv8
|
|
matrix `DIFv8'=r(DIF)
|
|
ereturn matrix DIF=`DIFv8'
|
|
}
|
|
tempname cllv8
|
|
scalar `cllv8'=r(cll)
|
|
ereturn scalar cll=`cllv8'
|
|
|
|
}
|
|
if "`test'"!="NONE" {
|
|
tempname itemFitv8 globalFitv8
|
|
matrix `itemFitv8'=r(itemFit)
|
|
matrix `globalFitv8'=r(globalFit)
|
|
ereturn matrix itemFit=`itemFitv8'
|
|
ereturn matrix globalFit=`globalFitv8'
|
|
}
|
|
}
|
|
|
|
if "`method'"!="cml" {
|
|
tempname sigmav8 sesigmav8
|
|
local `sigmav8'=`r(sigma)'
|
|
local `sesigmav8'=`r(sesigma)'
|
|
ereturn scalar sigma=``sigmav8''
|
|
ereturn scalar sesigma=``sesigmav8''
|
|
}
|
|
|
|
tempname betav8 Varbetav8 thetav8 Varthetav8 llv8 AICv8
|
|
matrix `betav8'=r(beta)
|
|
matrix `Varbetav8'=r(Varbeta)
|
|
ereturn matrix beta=`betav8'
|
|
ereturn matrix Varbeta=`Varbetav8'
|
|
matrix `thetav8'=r(theta)
|
|
matrix `Varthetav8'=r(Vartheta)
|
|
ereturn matrix theta=`thetav8'
|
|
ereturn matrix Vartheta=`Varthetav8'
|
|
scalar `llv8'=`r(ll)'
|
|
scalar `AICv8'=`r(AIC)'
|
|
ereturn scalar ll=`llv8'
|
|
ereturn scalar AIC=`AICv8'
|
|
ereturn scalar Zcomp=r(Zcomp)
|
|
ereturn scalar pZcomp=r(pZcomp)
|
|
|
|
|
|
if "`method'"=="mml" {
|
|
local psi=r(PSI)
|
|
local psiadj=r(PSIadj)
|
|
ereturn scalar PSI=`psi'
|
|
ereturn scalar PSIadj=`psiadj'
|
|
}
|
|
if "`covariates'"!="" {
|
|
tempname betacovariates Vbetacovariates zcovariates pcovariates
|
|
matrix `betacovariates'=r(betacovariates)
|
|
matrix `Vbetacovariates'=r(Vbetacovariates)
|
|
matrix `zcovariates'=r(zcovariates)
|
|
matrix `pcovariates'=r(pcovariates)
|
|
|
|
ereturn matrix betacovariates=`betacovariates'
|
|
ereturn matrix Vbetacovariates=`Vbetacovariates'
|
|
ereturn matrix zcovariates=`zcovariates'
|
|
ereturn matrix pcovariates=`pcovariates'
|
|
}
|
|
|
|
|
|
|
|
|
|
return clear
|
|
|
|
end
|