Created difficulty matrix generation R script + initial scenarios

main
Corentin Choisy 12 months ago
parent 1282636552
commit 466c2a1277

@ -0,0 +1,39 @@
###################################################
# Function: generate_diff_irt
# Generates item difficulty threshold matrix for
# IRT model simulation
###################################################
generate_diff_irt <- function(J=7,M=4) {
# if J=7, item 5. Else, item 3
if(J==7){
i <- 5
}
if(J==4){
i <- 3
}
difficulties = matrix(c(0), J,M-1)
rownames(difficulties)=paste("item",1:J)
colnames(difficulties)=paste("Moda", 1:(M-1))
for (j in 1:J){
difficulties[j,1] = qnorm(j/(J+1))
}
for (j in 1:J){
for (m in 2:(M-1)){
difficulties[j,m]= difficulties[j,1]+(m-1)*2/(M-2)
}
}
difficulties = difficulties-mean(difficulties)
return(difficulties)
}
###################################################
# GENERATE MATRIX FOR SIMULATION
###################################################

@ -0,0 +1,78 @@
*=================================================================================================================================================
* Date : 2024-01-04
* Stata version : Stata 18 SE
*
* This program creates dataset without DIF for a randomized controlled trial scenario
*
* ado-files needed : - simirt (version 4.3 August 29, 2019, available on OSF)
*
* outputs : TBA
*
*
* Warning : To obtain reproduce the data obtained in the .csv files in this repository, use 'simirt_setseed.ado' instead of 'simirt.ado'
*
*
*================================================================================================================================================
* Load simirt.ado
adopath+"/home/corentin/Documents/These/Recherche/Simulations/Modules/simirt.ado"
* Set data output folder path
local path = "/home/corentin/Documents/These/Recherche/Simulations/Data"
* Scenarios with : n = 800
*==========================
* Scenario No. 7 : J = 4 items + C1 et C2 not correlated
forvalues replication = 1/500 {
di "replication = `replication'"
mat D= (-1.84,-0.84,0.16 \ -1.25,-0.25,0.75\-0.75,0.25,1.25 \-0.16,0.84,1.84)
qui simirt, nbobs(200) mu(0) cov(1) dim(4) pcm(D) clear
qui gen C1 = 0
qui gen C2 = 0
tempfile grp00
qui save `grp00',replace
mat D= (-1.84,-0.84,0.16 \ -1.25,-0.25,0.75\-0.75,0.25,1.25 \-0.16,0.84,1.84)
qui simirt, nbobs(200) mu(0) cov(1) dim(4) pcm(D) clear
qui gen C1 = 1
qui gen C2 = 0
tempfile grp10
qui save `grp10',replace
mat D= (-1.84,-0.84,0.16 \ -1.25,-0.25,0.75\-0.75,0.25,1.25 \-0.16,0.84,1.84)
qui simirt, nbobs(200) mu(0) cov(1) dim(4) pcm(D) clear
qui gen C1 = 0
qui gen C2 = 1
tempfile grp01
qui save `grp01',replace
mat D= (-1.84,-0.84,0.16 \ -1.25,-0.25,0.75\-0.75,0.25,1.25 \-0.16,0.84,1.84)
qui simirt, nbobs(200) mu(0) cov(1) dim(4) pcm(D) clear
qui gen C1 = 1
qui gen C2 = 1
tempfile grp11
qui save `grp11',replace
clear
use `grp00'
qui append using `grp10'
qui append using `grp01'
qui append using `grp11'
drop id
qui gen id = _n
order(id)
qui gen replication = `replication'
if `replication'==1{
tempfile data
qui save `data'
}
else{
qui append using `data'
qui save `data',replace
}
}
export delimited using "`path'\Scenario7.csv", replace
Loading…
Cancel
Save