第3章

Chapter 3

发布于

2025年9月16日

本章涉及到观察分数X、真分数T与误差E的计算,R代码如下:

library(Keng)
data("depress")
# 查看所有变量名
names(depress)
##   [1] "id"           "class"        "grade"        "elite"        "intervention"
##   [6] "gender"       "age"          "cope1i1p"     "cope1i2p"     "cope1i3a"    
##  [11] "cope1i4a"     "cope1i5e"     "cope1i6p"     "cope1i7e"     "cope1i8e"    
##  [16] "cope1i9a"     "cope1i10p"    "cope1i11a"    "cope1i12a"    "cope1i13e"   
##  [21] "cope1i14e"    "cope1i15p"    "cope1i16e"    "cope1i17e"    "cope1i18a"   
##  [26] "cope1i19e"    "cope1i20a"    "cope1i21p"    "cope1i22e"    "cope1i23a"   
##  [31] "cope1i24p"    "cope1i25e"    "cope1i26p"    "cope1i27p"    "cope1i28e"   
##  [36] "cope1i29a"    "cope1i30e"    "cope1i31a"    "cope1i32a"    "cope1i33e"   
##  [41] "cope1i34e"    "cope1i35a"    "cope1i36p"    "cope1i37a"    "cope1i38e"   
##  [46] "cope1i39p"    "cope1i40a"    "cope1i41p"    "cope1i42p"    "cope1i43p"   
##  [51] "cope1i44a"    "cope1i45e"    "cope1i46p"    "cope1i47p"    "cope1i48a"   
##  [56] "cope2i1p"     "cope2i2p"     "cope2i3a"     "cope2i4a"     "cope2i5e"    
##  [61] "cope2i6p"     "cope2i7e"     "cope2i8e"     "cope2i9a"     "cope2i10p"   
##  [66] "cope2i11a"    "cope2i12a"    "cope2i13e"    "cope2i14e"    "cope2i15p"   
##  [71] "cope2i16e"    "cope2i17e"    "cope2i18a"    "cope2i19e"    "cope2i20a"   
##  [76] "cope2i21p"    "cope2i22e"    "cope2i23a"    "cope2i24p"    "cope2i25e"   
##  [81] "cope2i26p"    "cope2i27p"    "cope2i28e"    "cope2i29a"    "cope2i30e"   
##  [86] "cope2i31a"    "cope2i32a"    "cope2i33e"    "cope2i34e"    "cope2i35a"   
##  [91] "cope2i36p"    "cope2i37a"    "cope2i38e"    "cope2i39p"    "cope2i40a"   
##  [96] "cope2i41p"    "cope2i42p"    "cope2i43p"    "cope2i44a"    "cope2i45e"   
## [101] "cope2i46p"    "cope2i47p"    "cope2i48a"    "cope3i1p"     "cope3i2p"    
## [106] "cope3i3a"     "cope3i4a"     "cope3i5e"     "cope3i6p"     "cope3i7e"    
## [111] "cope3i8e"     "cope3i9a"     "cope3i10p"    "cope3i11a"    "cope3i12a"   
## [116] "cope3i13e"    "cope3i14e"    "cope3i15p"    "cope3i16e"    "cope3i17e"   
## [121] "cope3i18a"    "cope3i19e"    "cope3i20a"    "cope3i21p"    "cope3i22e"   
## [126] "cope3i23a"    "cope3i24p"    "cope3i25e"    "cope3i26p"    "cope3i27p"   
## [131] "cope3i28e"    "cope3i29a"    "cope3i30e"    "cope3i31a"    "cope3i32a"   
## [136] "cope3i33e"    "cope3i34e"    "cope3i35a"    "cope3i36p"    "cope3i37a"   
## [141] "cope3i38e"    "cope3i39p"    "cope3i40a"    "cope3i41p"    "cope3i42p"   
## [146] "cope3i43p"    "cope3i44a"    "cope3i45e"    "cope3i46p"    "cope3i47p"   
## [151] "cope3i48a"    "depr1i1"      "depr1i2"      "depr1i3"      "depr1i4"     
## [156] "depr1i5"      "depr1i6"      "depr1i7"      "depr1i8"      "depr1i9"     
## [161] "depr1i10"     "depr1i11"     "depr1i12"     "depr1i13"     "depr1i14"    
## [166] "depr1i15"     "depr1i16"     "depr1i17"     "depr1i18"     "depr1i19"    
## [171] "depr1i20"     "depr2i1"      "depr2i2"      "depr2i3"      "depr2i4"     
## [176] "depr2i5"      "depr2i6"      "depr2i7"      "depr2i8"      "depr2i9"     
## [181] "depr2i10"     "depr2i11"     "depr2i12"     "depr2i13"     "depr2i14"    
## [186] "depr2i15"     "depr2i16"     "depr2i17"     "depr2i18"     "depr2i19"    
## [191] "depr2i20"     "depr3i1"      "depr3i2"      "depr3i3"      "depr3i4"     
## [196] "depr3i5"      "depr3i6"      "depr3i7"      "depr3i8"      "depr3i9"     
## [201] "depr3i10"     "depr3i11"     "depr3i12"     "depr3i13"     "depr3i14"    
## [206] "depr3i15"     "depr3i16"     "depr3i17"     "depr3i18"     "depr3i19"    
## [211] "depr3i20"     "ecr1avo"      "ecr2anx"      "ecr3avo"      "ecr4avo"     
## [216] "ecr5anx"      "ecr6avo"      "ecr7anx"      "ecr8avo"      "ecr9avo"     
## [221] "avo"          "anx"          "am1"          "am2"          "am3"         
## [226] "em1"          "em2"          "em3"          "dm1"          "dm2"         
## [231] "dm3"          "pm1"          "pm2"          "pm3"
# 计算三次抑郁得分的均值作为抑郁特质的真分数
## 方法1:rowMeans
T <- rowMeans(depress[c("dm1","dm2","dm3")])
## 方法2:使用apply函数,将mean函数应用于数据的行
T <- apply(X = depress[c("dm1","dm2","dm3")], MARGIN = 1, FUN = mean)
# 计算Time 1抑郁得分的误差
E1 <- depress$dm1 - T
# 计算三次抑郁得分的误差
# FUN的值为匿名函数
E <- sapply(X = depress[c("dm1","dm2","dm3")], FUN = function(X) X - T)
# 对矩阵E的列进行重命名
colnames(E) <- paste0(colnames(E), "_d")
# 计算观察分数的方差
# 使用apply函数,将var函数应用于数据的行
v <- apply(X = depress[c("dm1","dm2","dm3")], MARGIN = 1, FUN = var)
# 计算观察分数的标准差
# 使用apply函数,将sd函数应用于数据的行
sd <- apply(X = depress[c("dm1","dm2","dm3")], MARGIN = 1, FUN = sd)
# 合并数据,cbind函数执行column bind
dat <- cbind(depress[c("dm1","dm2","dm3")], T, E, v, sd)
# 查看数据
head(dat)
##    dm1  dm2  dm3        T      dm1_d       dm2_d       dm3_d          v
## 1 1.55 1.80 2.00 1.783333 -0.2333333  0.01666667  0.21666667 0.05083333
## 2 1.55 1.85 2.25 1.883333 -0.3333333 -0.03333333  0.36666667 0.12333333
## 3 1.90 1.65 1.65 1.733333  0.1666667 -0.08333333 -0.08333333 0.02083333
## 4 1.35 1.65 1.60 1.533333 -0.1833333  0.11666667  0.06666667 0.02583333
## 5 1.30 2.25 2.10 1.883333 -0.5833333  0.36666667  0.21666667 0.26083333
## 6 1.95 1.60 1.65 1.733333  0.2166667 -0.13333333 -0.08333333 0.03583333
##          sd
## 1 0.2254625
## 2 0.3511885
## 3 0.1443376
## 4 0.1607275
## 5 0.5107184
## 6 0.1892969