如何设置重复测量数据以使用 nlme() 进行分析?

机器算法验证 r 混合模式 重复测量 数据集 lme4-nlme
2022-04-09 18:36:22

我正在尝试R从使用SPSS. 过去,我为我的重复测量方差分析设置了宽格式数据SPSS我需要如何设置我的数据才能运行nlme()数据是平衡的。它具有试验类型的受试者内变量(3 个水平),每个变量测量 8 次,以及一个具有 2 个水平的受试者间因素。将运行 2 次单独的分析;一个以响应时间为 DV,另一个以准确性为 DV。我知道数据必须是长格式,但我不确定应该如何排列这些列。应该 1 列是主题 ID,另一列是试验类型,另一列是时间,然后 1 列是 DV?这有关系吗?任何正确方向的观点将不胜感激。谢谢。

3个回答

是的,您需要设置数据,以便每个分组因子、因变量和协变量对应于一列,并且每一行都包含一个观察值(即长格式):您在模型公式中输入的随机和固定部分的所有内容都有成为数据集中的一列。

您可以使用reshape将数据从宽格式转换为长格式并返回。

如果您正在过渡到 R 并做很多混合模型,请尝试获取 Pinheiro/Bates “S 和 S-PLUS 中的混​​合效果模型”的副本,它是来自编写nlme大量工作的人的综合参考例子。

如果您直接来自 SPSS 文件,那么 reshape 不太可能对您有所帮助,因为您不仅需要以不同的方式设置它,而且您可能需要与在 SPSS 中使用的数据不同的数据。在标准重复测量分析中,您将每个主题的每个单独条件的平均值输入到分析中,但对于 nlme,您输入每个单独的数据点。您必须返回原始数据文件。如果它们在每行和每列都有一个数据点来识别每个点的状况,那么您基本上可以将每个文件连接在一起,一路识别单独的主题。在这种情况下,类似下面的东西会起作用

fList <- list.files('myDataF/')
dList <- lapply(fList, function(f) {x <- read.table(paste('myDataF', f, sep = '/'), header = TRUE)
    x$subj <- f
    return(x)})
myData <- do.call(rbind, dList)

(如果您知道每个文件中的行数完全相同,这可能会更简单)

NLME 依赖于“单变量”而不是“多变量”数据结构。请参阅下面的描述,从我在此处对另一个问题的回答中复制而来:

R中的数据操作用于功能数据分析

至于如何将数据转换为 R 格式并转换为其中一种格式,我们需要更多地了解输入文件的外观和格式。但是,这里有一些关于格式化类型的一般提示用于在任何系统中进行分析的数据。

Singer(应用纵向数据分析)提出了两种用于纵向数据统计分析的普遍有用的布局:人级(多变量)结构或人周期(单变量)结构。出于多种原因,后者通常是优选的。

人级数据结构(或多变量格式)包含每个观察单位(例如人)的一行数据和每个测量周期的变量。年龄不会包含在数据集中,并且会隐含在您的时间因素的水平中(例如,在重复测量方差分析中)。这种结构自然会导致摘要不太有意义,效率低于预期,并且无法解释您的不等间距观察(观察之间的不同年龄间隔)或随时间变化的协变量。

该数据设置可能看起来像这样......

Mutlivariate
    ID  Gender  height1 height2 height3 height4 height5
    1   Boy     76.2   74.6   78.2   77.7     76
    2   Boy     80.4   78.0   81.8   80.5     80
    3   Boy     83.3   82.0   85.4   83.3     83
    4   Girl    96.0   94.9   97.1   98.6     96
    5   Girl    87.7   90.0   89.6   90.3     89
    6   Girl    85.7   86.9   87.9   87.0     86

更可取的布局通常是人周期布局(或单变量格式),其中每个人都有记录他们被观察的每次时间。人周期数据集有许多优点。首先,它会导致更自然的数据摘要,例如按组、按时间或按组获取平均值,并且时间现在是直截了当的。其次,数据集将容纳时间维度中不等间隔的条目,例如您在此处。此外,如果您有它们,您可以为任何其他人口统计协变量添加列,这些列可能会随着时间的推移而有所不同。此外,这种格式的数据是为现代分析技术(如多级建模)准备的。最后,单变量数据结构与数据库设计和规范化的良好实践一致,

单变量布局看起来像这样......

Univariate
    ID  Age Gender  Height
    1   1   Boy     76.2
    1   1.5 Boy     74.6
    1   3   Boy     78.2
    1   5   Boy     77.7
    2   1   Girl    80.4
    2   1.5 Girl    81.8
    2   3   Girl    80.5
    2   5   Girl    80
    3   1   Boy     115.8
    3   1.5 Boy     112.3
    3   3   Boy     111.0
    3   5   Boy     104.1