使用R语言模拟多面 Rasch 模型评分数据(心理测量)

使用R语言模拟多面 Rasch 模型下三种评分设计(交叉、嵌套和混合)的参数真值和评分数据。

一、相关设置
评分者数目设为 6,项目数设为 6。
评分等级一共有 4 级,6 名评分者对被试在 6 个项目上的作答进行 1-4 分的等级评分,1 分表示非常差,4 分表示非常好。被试得分从 1 等到 2 等的等级难度为 0.3,从 2 等到 3等的等级难度为 0.6,从 3 等到 4 等的等级难度为 0.9。
被试能力、评分者宽严度和项目难度等参数的分布均为正态分布,参数值从各自的分布中随机抽取。其分布的均值与标准差参数如下。
被试能力的分布参数:均值为 0,标准差为 1。
评分者宽严度的分布参数:均值为 0,标准差为 0.25。
项目难度的分布参数:均值为 0,标准差为 0.25。

二、步骤
(1)根据参数真值服从的分布,随机生成 50名被试的能力参数、评分者的宽严度参数和项目难度参数的真值;
(2)将被试能力参数、项目难度参数和评分者宽严度参数代入多面 Rasch 模型的公式中,计算被试得分的累积概率;
(3)从均匀分布 U(0,1)中抽取随机数,将上述步骤中所得累积概率与随机数进行比较,若该随机数小于第一个累积概率,则令评分等级等于 1,若随机数大于等于第一个累积概率,而小于第二个累积概率,则令评分等级等于 2,以此类推,最后得到交叉设计的评分数据;
(4)将生成的交叉设计的数据,再分别按照选定的嵌套设计和混合设计的要求随机抽取出相应的数据,得到嵌套设计和混合设计的数据;
(5)为减少测验误差,重复 3-4 步骤 100 次,最终该被试数量下的三种设计各有 100 批模拟数据。

#set parameters
sd_p <- 1
sd_i <- 0.1
sd_r <- 0.25
n_p <- 50
n_i <- 6
n_r <- 6
sepdiffi <- c(0.3, 0.6, 0.9)
propro <- c(1:3)
acp <- c(1:4)
#generate corss data
set.seed(1)
parameter = read.delim(file = 'parameters_200.csv', header = F, sep = ',') # parti item rater
ability_p <- parameter[1, 1:50]
difficu_i <- parameter[2, 1:6]
lenienc_r <- parameter[3, 1:6]
sunpara = rbind(
  paste(as.character(ability_p), collapse = ","),
  paste(as.character(difficu_i), collapse = ","),
  paste(as.character(lenienc_r), collapse = ",")
)
pfile = file("parameters_50.csv", "w")
writeLines(sunpara, pfile)
close(pfile)
data_cross_matrix <- array(data = NA, c(n_p, n_i, n_r))
for (filenum in 1:100)
{
   
  for 
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值