【问题标题】:Equivalent R script for repeated measures SAS script, nested design用于重复测量的等效 R 脚本 SAS 脚本,嵌套设计
【发布时间】:2016-04-22 13:59:44
【问题描述】:

我在将 SAS 脚本转换为相应的 R 脚本时遇到问题。

该模型是基于处理 (trt) 的响应 (resp) 的重复测量分析,图 (plot) 嵌套在处理中。

SAS 代码:

data data_set;
input trt $ plot time resp;
datalines;
Burn    1   1   27
Burn    1   9   25
Burn    1   12  18
Burn    1   15  21
Burn    2   1   5
Burn    2   9   15
Burn    2   12  10
Burn    2   15  12
...
Unburn  1   1   57
Unburn  1   9   46
Unburn  1   12  49
Unburn  1   15  51
Unburn  2   1   43
Unburn  2   9   59
Unburn  2   12  59
Unburn  2   15  60

proc mixed data = data_set;
class trt plot time;
model resp = trt time trt*time / ddfm = kr;
repeated time / subject = trt(plot) type = vc rcorr;
run;

尝试使用 R 代码(从 CSV 文件加载数据集):

library(nlme)

data.set <- read.csv( "data_set.csv" )
data.set$plot <- factor( data.set$plot )
data.set$time <- factor( data.set$time )

model1 <- lme( resp ~ trt + time + trt:time, data = data.set, random = ~1 | plot )

这可行,但不是所需的模型。我尝试过的其他尝试通常会导致错误:

Error in getGroups.data.frame(dataMix, groups) : 
  invalid formula for groups

基本上我已经离开这里了......

问题 1:如何在 R 中指定与 SAS 中已经指定的模型相同的模型?

问题 2:我希望能够更改协方差矩阵以复制在 SAS 中完成的其他工作。我相信我知道如何使用 lme 函数的相关参数来做到这一点。但如果我错了,请纠正我。

提前致谢。

【问题讨论】:

  • 它需要一些分组的数据框作为输入。尝试lme(mpg ~ wt, data = mtcars) 也会给出同样的错误。当您查看帮助页面中的示例并执行class(Orthodont) 时,您会发现它不是一个直接的数据框。

标签: r sas


【解决方案1】:

R 中模型的规范在逻辑上应该是:

model1 <- lme( resp ~ trt + time + trt:time, data = data.set, random = ~1 | trt:plot )

假设情节嵌套在每个编码的治疗中,或者情节和治疗之间存在相互作用。但是,如果这样指定,则会生成上述警告:

getGroups.data.frame(dataMix, groups) 中的错误:公式无效 团体用

遇到的问题与使用这种交互所引入的关卡(我认为)有关。无论具体问题如何,都可以通过创建组合治疗图预测变量来解决问题:

data.set$trtplot <- with( data.set, factor( paste( trt, plot, sep = "." ) ) )

然后进行如下分析:

model1 <- lme( resp ~ trt + time + trt:time, data = data.set, random = ~ 1 | trtplot )

为了完整起见,这可以很容易地如下所示,其中添加了每个预测变量以及交互:

model1 <- lme( resp ~ trt * time, data = data.set, random = ~ 1 | trtplot )

这与指定Compound Symmetry (CS) 协方差结构时在SAS 中获得的结果相匹配(尽管 AIC 标准不同 - 不知道为什么)。因此与上面指定Variance Components (VC) 协方差结构的 SAS 代码略有不同,但这只是在 SAS 代码中更改结构类型的问题。

至于比较不同的协方差结构,这似乎更具挑战性。我想研究的协方差结构是:

  • 复合对称 (CS) - 完成
  • 方差分量(VC)
  • 非结构化(联合国)
  • 空间力量 (SP)

欢迎提出任何想法!

【讨论】:

    猜你喜欢
    • 2015-06-29
    • 2014-03-04
    • 2010-10-16
    • 2021-08-21
    • 2017-01-19
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 2020-07-11
    相关资源
    最近更新 更多