我有以下数据集:
structure(list(ID = c(38623L, 38806L, 39593L, 39820L, 39951L,
40286L, 43762L, 52577L, 54153L, 57445L, 58503L, 59344L, 59361L,
60575L, 61656L, 62210L, 62285L, 62937L, 64081L, 64328L, 65302L,
65478L, 65480L, 65487L, 65572L, 65935L, 65974L, 65991L, 65995L,
66013L, 66154L, 66237L, 66245L, 66389L, 66460L, 67174L, 73230L,
73525L, 73539L, 73677L, 73942L, 73953L, 74113L, 74114L, 74439L,
74641L, 74657L, 74794L, 74800L, 74836L, 74942L, 74962L, 74969L,
74977L, 74985L, 74989L, 75220L, 75229L, 75407L, 75653L, 75735L,
75757L, 75895L, 75898L, 76381L, 76559L, 76594L, 76746L, 76751L,
76775L, 77088L, 77091L, 77099L, 77134L, 77188L, 77252L, 77304L,
77413L, 77528L, 77556L, 77585L, 78262L, 79724L, 79730L, 79850L,
79977L, 80052L, 80819L, 80901L, 80932L, 81071L, 81098L, 81142L,
81175L), Sex = structure(c(2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L,
2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L,
1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L,
1L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 2L), .Label = c("Male", "Female"), class = "factor"),
T1 = c(0.00103209, 0.001136335, 0.001130695, 0.00113139,
0.000986063, 0.0010712, 0.00110197, 0.001090875, 0.001030151,
0.001035065, 0.001056565, 0.001064622, 0.001114025, 0.001087175,
0.001087645, 0.0010694, 0.001089425, 0.001129075, 0.00110335,
0.00111867, 0.00108407, 0.001076165, 0.00112799, 0.00106542,
0.00105824, 0.001051684, 0.001073525, 0.00102377, 0.0011,
0.001039055, 0.00105945, 0.001083505, 0.0010723, 0.001123395,
0.00110417, 0.00114891, 0.001115405, 0.00110057, 0.001054205,
0.00105165, 0.001095601, 0.001112195, 0.001061645, 0.001081505,
0.00112992, 0.001069345, 0.00108842, 0.001066665, 0.00106081,
0.001065165, 0.00108621, 0.00103779, 0.00103329, 0.00107046,
0.001094945, 0.001063225, 0.001077665, 0.0011242, 0.001161425,
0.001092915, 0.001120835, 0.001060845, 0.001072238, 0.00109486,
0.00111587, 0.001166475, 0.00107877, 0.00103524, 0.001112615,
0.000992363, 0.001057025, 0.001055855, 0.001165165, 0.001046216,
0.001015101, 0.001094015, 0.00104152, 0.00104361, 0.001056924,
0.0011807, 0.001090905, 0.00106178, 0.00113283, 0.001154635,
0.00110195, 0.001115265, 0.001102255, 0.00106396, 0.001073585,
0.001047345, 0.001022798, 0.001187635, 0.001033095, 0.00112301
), T2 = c(0.00102627, 0.00110609, 0.001158665, 0.00112353,
0.00097819, 0.001078495, 0.00109504, 0.001056945, 0.001034427,
0.00105191, 0.001014149, 0.001018892, 0.00112666, 0.001024891,
0.001071736, 0.001075945, 0.001031211, 0.001122935, 0.00107988,
0.001161715, 0.00112603, 0.00107674, 0.001147125, 0.00104971,
0.00108423, 0.00103364, 0.001071835, 0.00101976, 0.00107818,
0.001067145, 0.001062425, 0.00110346, 0.00108456, 0.00113592,
0.001110565, 0.00110386, 0.00112389, 0.001091155, 0.00105652,
0.001030636, 0.001106515, 0.00109062, 0.001030305, 0.00108161,
0.00112294, 0.001052327, 0.00107416, 0.001091, 0.001057725,
0.00107489, 0.0010597, 0.001047792, 0.000995212, 0.001092055,
0.00106338, 0.001078475, 0.00110247, 0.00111765, 0.00113914,
0.001073185, 0.001091145, 0.001040767, 0.00106448, 0.00105502,
0.00108874, 0.00117407, 0.001044455, 0.00104921, 0.001136435,
0.001009874, 0.00106717, 0.001055338, 0.001157375, 0.001061175,
0.000983892, 0.001094945, 0.001018795, 0.00107304, 0.0010772,
0.00114321, 0.00111869, 0.0010709, 0.00116752, 0.001175765,
0.001113535, 0.001123455, 0.001081295, 0.001084425, 0.00107189,
0.001030513, 0.001043751, 0.001157355, 0.001039899, 0.00116496
), T3 = c(0.001076605, 0.001113025, 0.00115085, 0.00115274,
0.001005614, 0.00111759, 0.00107761, 0.00111791, 0.001033532,
0.001038104, 0.001059563, 0.001027819, 0.001120055, 0.00108158,
0.001099325, 0.001086375, 0.001109065, 0.001077765, 0.00109264,
0.00116222, 0.00112626, 0.001091765, 0.00113837, 0.00104618,
0.00109727, 0.001055565, 0.001115175, 0.000986792, 0.00107968,
0.00106097, 0.001067105, 0.001083625, 0.00109082, 0.00114355,
0.001099115, 0.001125253, 0.001131355, 0.001104175, 0.001104315,
0.00103858, 0.001072123, 0.00109497, 0.00107783, 0.00107379,
0.00114186, 0.00110761, 0.001102845, 0.001090495, 0.00105551,
0.00108908, 0.001082845, 0.0010599, 0.001042808, 0.00108644,
0.00106482, 0.00111119, 0.001077005, 0.001183845, 0.001134605,
0.00107317, 0.00112268, 0.00108716, 0.00108437, 0.0010827,
0.00111043, 0.001177305, 0.00110218, 0.00103996, 0.00111301,
0.00100762, 0.00106678, 0.001030939, 0.001161045, 0.001080915,
0.001053775, 0.001072078, 0.00103878, 0.00112049, 0.001085025,
0.001165745, 0.00114263, 0.00109784, 0.001187105, 0.001194925,
0.001139195, 0.0011009, 0.00110112, 0.00107563, 0.001055985,
0.00100656, 0.001022506, 0.00114974, 0.00105716, 0.00113243
)), row.names = c(NA, -94L), class = c("tbl_df", "tbl", "data.frame"
))
看起来像:
DF
# A tibble: 94 x 5
ID Sex T1 T2 T3
<int> <fct> <dbl> <dbl> <dbl>
1 38623 Female 0.00103 0.00103 0.00108
2 38806 Female 0.00114 0.00111 0.00111
3 39593 Female 0.00113 0.00116 0.00115
4 39820 Female 0.00113 0.00112 0.00115
5 39951 Male 0.000986 0.000978 0.00101
6 40286 Female 0.00107 0.00108 0.00112
7 43762 Female 0.00110 0.00110 0.00108
8 52577 Female 0.00109 0.00106 0.00112
9 54153 Male 0.00103 0.00103 0.00103
10 57445 Female 0.00104 0.00105 0.00104
# ... with 84 more rows
每个时间点 ( T1
, T2
, T3
) 代表在该访问中为每个受试者 ( ID
) 收集的生理测量值。
我正在尝试对截距和斜率的变化进行建模,特别是为了测量跨时间点的个体间差异。
我的模型:
linear.lcm <- "
# Define the Latent Variables
int =~ 1*T1 + 1*T2 + 1*T3
slp =~ 0*T1 + 1*T2 + 2*T3
# Define Factor Means
int ~ 1
slp ~ 1
# Define Factor (Co)Variances
int ~~ int
int ~~ slp
slp ~~ slp
# Define Indicator Residual Variances
T1 ~~ T1
T2 ~~ T2
T3 ~~ T3
"
用于缩放小值的标准化函数(归功于此站点的答案):
#normalize
normalize = function(a,x){
((a-min(a))/(max(a)-min(a)))+x
}
拟合模型:
#lcm model
lcm <- lavaan::growth(linear.lcm,
data = normalize(DF[,3:5],1),
estimator = "MLR",
missing = "FIML")
但是,我收到警告:
Warning message:
In lav_object_post_check(object) :
lavaan WARNING: some estimated ov variances are negative
我可以看到T1
方差是负的。这似乎不正确,如果能帮助我纠正我的模型,我将不胜感激。
summary(lcm, fit.measures = FALSE, estimates= TRUE,
standardize = TRUE, rsquare = TRUE)