# 加载必要的包
library(readxl)
library(mmrm)
## Warning: package 'mmrm' was built under R version 4.4.3
library(ggplot2)
?mmrm
# 读取数据
admadrs <- read_excel("/Users/qiujiahui/Desktop/≥18 to 24 young adults.xlsx",
sheet = "Sheet1", col_names = TRUE,
col_types = NULL, na = "", skip = 0)
head(admadrs)
## # A tibble: 6 × 49
## USUBJID ASEQ ADY AVISIT AVISITN APHASE APHASEN PHADY TRT01A TRT01AN TRT02A
## <chr> <dbl> <dbl> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <chr>
## 1 5413541… 269 1 Basel… 20000 DOUBL… 1 1 Dummy… 1 Esket…
## 2 5413541… 270 2 Day 2… 20002 DOUBL… 1 2 Dummy… 1 Esket…
## 3 5413541… 271 8 Day 8… 20008 DOUBL… 1 8 Dummy… 1 Esket…
## 4 5413541… 272 15 Day 1… 20015 DOUBL… 1 15 Dummy… 1 Esket…
## 5 5413541… 273 22 Day 2… 20022 DOUBL… 1 22 Dummy… 1 Esket…
## 6 5413541… 274 29 Day 2… 20028 DOUBL… 1 29 Dummy… 1 Esket…
## # ℹ 38 more variables: TRT02AN <dbl>, TRTSEQA <chr>, TRTSEQAN <dbl>,
## # PARAMCD <chr>, PARAMN <dbl>, PARAM <chr>, PARAMTYP <chr>, AVAL <dbl>,
## # AVALC <chr>, BASE <dbl>, CHG <dbl>, PCHG <dbl>, DTYPE <chr>, ANL01FL <chr>,
## # ANL02FL <chr>, ABLFL <chr>, VISIT <chr>, VISITNUM <dbl>, QSSEQ <lgl>,
## # QSCAT <lgl>, QSDTC <chr>, QSORRES <lgl>, SAFFL <chr>, FASFL <chr>,
## # RANDFL <chr>, RL2FL <chr>, OLFL <chr>, OBSFL <chr>, AGE <dbl>, AGEU <chr>,
## # SEX <chr>, RACE <chr>, COUNTRY <chr>, ETHNIC <chr>, SITEID <chr>, …
# 删除重复的时间点
admadrs <- admadrs[!duplicated(admadrs[c("USUBJID", "AVISIT")]), ]
# 将相关列转换为因子
admadrs$USUBJID <- factor(admadrs$USUBJID)
admadrs$AVISITN <- factor(admadrs$AVISITN)
admadrs$ADY <- as.factor(admadrs$ADY)
admadrs$SITEID <- as.factor(admadrs$SITEID)
admadrs$TRTSEQA <- as.factor(admadrs$TRTSEQA)
admadrs$BASE <- as.numeric(admadrs$BASE)
# 将 TRT01A 转换为因子,并重新编码参考水平
admadrs$TRT01A <- as.factor(admadrs$TRT01A)
admadrs$TRT01A <- relevel(admadrs$TRT01A, ref = "Dummy A")
#admadrs$AVISITN <- relevel(admadrs$AVISITN, ref = "")
# 对数值型变量进行归一化处理
str(admadrs$BASE)
## num [1:229] 41 41 41 41 41 41 41 39 39 39 ...
# 拟合模型
fit <- mmrm(
formula = AVAL ~ AVISITN:TRT01A + TRT01A+ SEX + RACE + SITEID + us(AVISITN | USUBJID),
data = admadrs
)
# 查看模型结果
model_summary <- summary(fit)
print(model_summary)
## mmrm fit
##
## Formula:
## AVAL ~ AVISITN:TRT01A + TRT01A + SEX + RACE + SITEID + us(AVISITN |
## USUBJID)
## Data: admadrs (used 229 observations from 34 subjects with maximum 7
## timepoints)
## Covariance: unstructured (28 variance parameters)
## Method: Satterthwaite
## Vcov Method: Asymptotic
## Inference: REML
##
## Model selection criteria:
## AIC BIC logLik deviance
## 1175.6 1218.3 -559.8 1119.6
##
## Coefficients:
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 44.9893 7.2246 2.0680 6.227 0.022879 *
## TRT01ADummy B -24.9522 8.0462 0.6880 -3.101 0.281154
## TRT01ADummy C -8.6995 7.3241 0.4920 -1.188 0.564387
## SEXM 7.5813 2.9768 8.4130 2.547 0.033017 *
## RACEBLACK OR AFRICAN AMERICAN 24.0615 6.3087 7.9270 3.814 0.005222 **
## RACEMULTIPLE 7.6987 6.8969 7.7970 1.116 0.297526
## RACEWHITE -17.0576 5.5983 7.2220 -3.047 0.017969 *
## SITEIDUS10002 20.2749 5.1504 8.4910 3.937 0.003838 **
## SITEIDUS10004 30.2072 7.4800 8.1920 4.038 0.003565 **
## SITEIDUS10009 -22.2589 6.4294 6.9070 -3.462 0.010743 *
## SITEIDUS10014 -22.1630 8.3722 7.2920 -2.647 0.031880 *
## SITEIDUS10033 5.9684 4.2740 7.1520 1.396 0.204387
## SITEIDUS10036 -0.4732 5.6417 7.2310 -0.084 0.935428
## SITEIDUS10043 21.9050 7.4800 8.1920 2.928 0.018561 *
## SITEIDUS10049 49.2296 7.4800 8.1920 6.582 0.000155 ***
## SITEIDUS10051 27.2922 5.0515 7.1090 5.403 0.000956 ***
## SITEIDUS10055 -5.3076 5.0515 7.1090 -1.051 0.327798
## SITEIDUS10056 -74.5498 9.7790 3.2870 -7.623 0.003380 **
## SITEIDUS10057 22.2913 4.1870 7.2950 5.324 0.000957 ***
## SITEIDUS10058 25.8352 5.6457 8.2380 4.576 0.001679 **
## SITEIDUS10062 5.0881 4.2131 7.1820 1.208 0.265425
## SITEIDUS10068 -15.5636 5.6417 7.2310 -2.759 0.027262 *
## SITEIDUS10069 38.6358 6.4079 7.6370 6.029 0.000376 ***
## SITEIDUS10070 24.2643 4.8604 7.9980 4.992 0.001064 **
## SITEIDUS10075 6.8137 4.2740 7.1520 1.594 0.154001
## SITEIDUS10076 18.9028 5.2518 8.1210 3.599 0.006817 **
## TRT01ADummy A:AVISITN20002 -20.0887 4.1978 5.2370 -4.786 0.004379 **
## TRT01ADummy B:AVISITN20002 -13.7000 4.9331 5.0990 -2.777 0.038211 *
## TRT01ADummy C:AVISITN20002 -12.1000 4.9331 5.0990 -2.453 0.056779 .
## TRT01ADummy A:AVISITN20008 -12.2857 3.2264 30.0330 -3.808 0.000645 ***
## TRT01ADummy B:AVISITN20008 -8.0186 3.8480 30.7460 -2.084 0.045582 *
## TRT01ADummy C:AVISITN20008 -10.3597 3.8529 30.3040 -2.689 0.011545 *
## TRT01ADummy A:AVISITN20015 -12.4570 3.2233 30.3160 -3.865 0.000546 ***
## TRT01ADummy B:AVISITN20015 -8.2000 3.8047 30.0470 -2.155 0.039279 *
## TRT01ADummy C:AVISITN20015 -8.7619 3.8340 30.8010 -2.285 0.029337 *
## TRT01ADummy A:AVISITN20022 -11.3416 3.7424 25.3540 -3.031 0.005556 **
## TRT01ADummy B:AVISITN20022 -9.6000 4.4192 25.1630 -2.172 0.039452 *
## TRT01ADummy C:AVISITN20022 -11.3860 4.4500 25.5110 -2.559 0.016806 *
## TRT01ADummy A:AVISITN20028 -13.7857 3.5395 30.9720 -3.895 0.000490 ***
## TRT01ADummy B:AVISITN20028 -10.5000 4.1880 30.9720 -2.507 0.017628 *
## TRT01ADummy C:AVISITN20028 -12.4296 4.1883 30.9810 -2.968 0.005741 **
## TRT01ADummy A:AVISITN20999 -14.0714 3.4952 31.0000 -4.026 0.000340 ***
## TRT01ADummy B:AVISITN20999 -10.5000 4.1355 31.0000 -2.539 0.016354 *
## TRT01ADummy C:AVISITN20999 -12.6000 4.1355 31.0000 -3.047 0.004696 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Covariance estimate:
## 20000 20002 20008 20015 20022 20028 20999
## 20000 261.2100 35.2455 129.3106 165.8608 200.2186 186.7011 179.4456
## 20002 35.2455 52.6372 3.1147 17.4515 30.5763 45.1622 45.7830
## 20008 129.3106 3.1147 143.1420 163.2564 199.8757 177.7588 170.4382
## 20015 165.8608 17.4515 163.2564 215.2691 261.0064 232.5147 223.4998
## 20022 200.2186 30.5763 199.8757 261.0064 334.5190 296.5411 285.0355
## 20028 186.7011 45.1622 177.7588 232.5147 296.5411 287.5876 277.8682
## 20999 179.4456 45.7830 170.4382 223.4998 285.0355 277.8682 268.7079
# 加载必要的包
library(emmeans)
## mmrm() registered as emmeans extension
## Welcome to emmeans.
## Caution: You lose important information if you filter this package's results.
## See '? untidy'
library(ggplot2)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
############## 年龄组分析 ##############
cat("\n### 年龄组分析 ###\n")
##
## ### 年龄组分析 ###
# 重新计算边际均值
emm_young <- emmeans(fit, ~ AVISITN | TRT01A)
print(emm_young)
## TRT01A = Dummy A:
## AVISITN emmean SE df lower.CL upper.CL
## 20000 60.28 6.80 1.78 27.29 93.3
## 20002 40.19 5.62 7.39 27.05 53.3
## 20008 46.58 8.40 3.53 21.96 71.2
## 20015 48.18 8.40 3.53 23.56 72.8
## 20022 47.99 6.15 2.42 25.48 70.5
## 20028 52.26 7.88 3.05 27.39 77.1
## 20999 49.92 7.92 3.29 25.93 73.9
##
## TRT01A = Dummy B:
## AVISITN emmean SE df lower.CL upper.CL
## 20000 35.32 5.35 0.42 -2432.33 2503.0
## 20002 2.78 8.25 2.15 -30.49 36.0
## 20008 12.86 4.75 12.08 2.53 23.2
## 20015 13.62 7.76 1.28 -46.17 73.4
## 20022 9.25 8.31 2.36 -21.78 40.3
## 20028 14.87 5.89 1.35 -26.39 56.1
## 20999 14.46 6.66 1.16 -47.00 75.9
##
## TRT01A = Dummy C:
## AVISITN emmean SE df lower.CL upper.CL
## 20000 51.58 6.17 0.74 -138.01 241.2
## 20002 23.29 8.40 2.30 -8.70 55.3
## 20008 26.53 8.74 2.60 -3.91 57.0
## 20015 28.09 6.03 7.85 14.13 42.1
## 20022 28.79 8.13 2.18 -3.61 61.2
## 20028 29.49 8.09 2.12 -3.55 62.5
## 20999 28.62 7.27 2.62 3.46 53.8
##
## Results are averaged over the levels of: SEX, RACE, SITEID
## Confidence level used: 0.95
# 基线和时间点设置
baseline_level <- "0" # 假设基线是0,请调整为实际值
# 获取AVISITN的水平
avisitn_levels <- levels(admadrs$AVISITN)
time_points <- avisitn_levels[avisitn_levels != baseline_level]
# 如果AVISITN是数值而不是因子
if(length(avisitn_levels) == 0) {
cat("AVISITN似乎不是因子或没有水平,尝试获取唯一值...\n")
avisitn_values <- sort(unique(admadrs$AVISITN))
avisitn_values <- as.character(avisitn_values)
baseline_level <- as.character(min(as.numeric(avisitn_values)))
time_points <- avisitn_values[avisitn_values != baseline_level]
}
cat("基线:", baseline_level, "\n")
## 基线: 0
cat("比较时间点:", time_points, "\n")
## 比较时间点: 20000 20002 20008 20015 20022 20028 20999
# 执行对比分析
tryCatch({
# 对每个治疗组,计算各时间点与基线的对比
comparisons_young <- contrast(emm_young, method = "revpairwise", by = "TRT01A")
cat("\n年轻成人组的时间点比较:\n")
print(comparisons_young)
# 保存结果
results_young <- as.data.frame(comparisons_young)
results_young$AgeGroup <- "Young Adults (18-24)"
}, error = function(e) {
cat("年轻成人组的对比分析出错:", conditionMessage(e), "\n")
results_young <- data.frame()
})
##
## 年轻成人组的时间点比较:
## TRT01A = Dummy A:
## contrast estimate SE df t.ratio p.value
## AVISITN20002 - AVISITN20000 -20.089 4.20 5.24 -4.786 0.0353
## AVISITN20008 - AVISITN20000 -13.700 4.93 5.10 -2.777 0.2412
## AVISITN20008 - AVISITN20002 6.389 6.48 5.16 0.986 0.9379
## AVISITN20015 - AVISITN20000 -12.100 4.93 5.10 -2.453 0.3311
## AVISITN20015 - AVISITN20002 7.989 6.48 5.16 1.233 0.8568
## AVISITN20015 - AVISITN20008 1.600 6.98 5.10 0.229 1.0000
## AVISITN20022 - AVISITN20000 -12.286 3.23 30.03 -3.808 0.0103
## AVISITN20022 - AVISITN20002 7.803 3.71 2.98 2.102 0.5040
## AVISITN20022 - AVISITN20008 1.414 5.89 9.75 0.240 1.0000
## AVISITN20022 - AVISITN20015 -0.186 5.89 9.75 -0.032 1.0000
## AVISITN20028 - AVISITN20000 -8.019 3.85 30.75 -2.084 0.3867
## AVISITN20028 - AVISITN20002 12.070 5.69 14.86 2.120 0.3902
## AVISITN20028 - AVISITN20008 5.681 4.38 2.94 1.297 0.8237
## AVISITN20028 - AVISITN20015 4.081 6.26 11.85 0.652 0.9931
## AVISITN20028 - AVISITN20022 4.267 5.02 30.46 0.850 0.9772
## AVISITN20999 - AVISITN20000 -10.360 3.85 30.30 -2.689 0.1358
## AVISITN20999 - AVISITN20002 9.729 5.70 14.84 1.707 0.6218
## AVISITN20999 - AVISITN20008 3.340 6.26 11.84 0.534 0.9976
## AVISITN20999 - AVISITN20015 1.740 4.38 2.94 0.397 0.9990
## AVISITN20999 - AVISITN20022 1.926 5.03 30.30 0.383 0.9997
## AVISITN20999 - AVISITN20028 -2.341 5.44 30.56 -0.430 0.9994
##
## TRT01A = Dummy B:
## contrast estimate SE df t.ratio p.value
## AVISITN20002 - AVISITN20000 -32.546 6.25 18.71 -5.205 0.0009
## AVISITN20008 - AVISITN20000 -22.462 6.25 11.98 -3.595 0.0428
## AVISITN20008 - AVISITN20002 10.084 8.84 15.56 1.141 0.9055
## AVISITN20015 - AVISITN20000 -21.700 6.62 13.32 -3.276 0.0664
## AVISITN20015 - AVISITN20002 10.846 9.11 16.63 1.191 0.8881
## AVISITN20015 - AVISITN20008 0.762 7.49 3.51 0.102 1.0000
## AVISITN20022 - AVISITN20000 -26.071 6.36 30.70 -4.097 0.0047
## AVISITN20022 - AVISITN20002 6.474 3.83 3.43 1.692 0.6569
## AVISITN20022 - AVISITN20008 -3.610 8.92 27.70 -0.405 0.9996
## AVISITN20022 - AVISITN20015 -4.371 9.19 28.04 -0.476 0.9990
## AVISITN20028 - AVISITN20000 -20.448 5.69 39.03 -3.595 0.0144
## AVISITN20028 - AVISITN20002 12.098 8.45 32.85 1.431 0.7812
## AVISITN20028 - AVISITN20008 2.014 4.82 4.30 0.418 0.9990
## AVISITN20028 - AVISITN20015 1.252 5.75 6.29 0.218 1.0000
## AVISITN20028 - AVISITN20022 5.623 8.54 34.19 0.659 0.9940
## AVISITN20999 - AVISITN20000 -20.860 5.65 38.59 -3.691 0.0112
## AVISITN20999 - AVISITN20002 11.686 8.43 32.11 1.387 0.8048
## AVISITN20999 - AVISITN20008 1.602 5.14 5.04 0.312 0.9998
## AVISITN20999 - AVISITN20015 0.840 4.75 3.68 0.177 1.0000
## AVISITN20999 - AVISITN20022 5.212 8.51 34.05 0.612 0.9960
## AVISITN20999 - AVISITN20028 -0.412 3.89 29.99 -0.106 1.0000
##
## TRT01A = Dummy C:
## contrast estimate SE df t.ratio p.value
## AVISITN20002 - AVISITN20000 -28.289 5.67 14.91 -4.993 0.0024
## AVISITN20008 - AVISITN20000 -25.042 6.19 11.03 -4.044 0.0230
## AVISITN20008 - AVISITN20002 3.247 6.84 3.54 0.474 0.9978
## AVISITN20015 - AVISITN20000 -23.486 7.44 24.63 -3.155 0.0556
## AVISITN20015 - AVISITN20002 4.803 9.35 22.73 0.513 0.9984
## AVISITN20015 - AVISITN20008 1.556 9.68 20.08 0.161 1.0000
## AVISITN20022 - AVISITN20000 -22.786 5.29 38.09 -4.310 0.0020
## AVISITN20022 - AVISITN20002 5.503 4.19 4.84 1.313 0.8232
## AVISITN20022 - AVISITN20008 2.256 5.53 5.64 0.408 0.9993
## AVISITN20022 - AVISITN20015 0.700 9.13 32.88 0.077 1.0000
## AVISITN20028 - AVISITN20000 -22.090 5.20 38.63 -4.249 0.0023
## AVISITN20028 - AVISITN20002 6.199 4.48 5.66 1.383 0.7940
## AVISITN20028 - AVISITN20008 2.952 4.65 3.49 0.635 0.9900
## AVISITN20028 - AVISITN20015 1.396 9.08 32.50 0.154 1.0000
## AVISITN20028 - AVISITN20022 0.696 3.58 30.81 0.194 1.0000
## AVISITN20999 - AVISITN20000 -22.960 7.52 30.95 -3.054 0.0622
## AVISITN20999 - AVISITN20002 5.329 9.41 33.37 0.566 0.9974
## AVISITN20999 - AVISITN20008 2.082 9.74 29.99 0.214 1.0000
## AVISITN20999 - AVISITN20015 0.526 3.70 3.52 0.142 1.0000
## AVISITN20999 - AVISITN20022 -0.174 9.19 33.31 -0.019 1.0000
## AVISITN20999 - AVISITN20028 -0.870 9.14 33.29 -0.095 1.0000
##
## Results are averaged over the levels of: SEX, RACE, SITEID
## P value adjustment: tukey method for comparing a family of 7 estimates
# 加载必要的包
library(readxl)
library(mmrm)
library(ggplot2)
?mmrm
# 读取数据
admadrs <- read_excel("/Users/qiujiahui/Desktop/≥24 to 55 middle-aged adults.xlsx",
sheet = "Sheet1", col_names = TRUE,
col_types = NULL, na = "", skip = 0)
head(admadrs)
## # A tibble: 6 × 49
## USUBJID ASEQ ADY AVISIT AVISITN APHASE APHASEN PHADY TRT01A TRT01AN TRT02A
## <chr> <dbl> <dbl> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <chr>
## 1 5413541… 257 1 Basel… 20000 DOUBL… 1 1 Dummy… 1 Esket…
## 2 5413541… 258 3 Day 2… 20002 DOUBL… 1 3 Dummy… 1 Esket…
## 3 5413541… 259 8 Day 8… 20008 DOUBL… 1 8 Dummy… 1 Esket…
## 4 5413541… 260 15 Day 1… 20015 DOUBL… 1 15 Dummy… 1 Esket…
## 5 5413541… 261 22 Day 2… 20022 DOUBL… 1 22 Dummy… 1 Esket…
## 6 5413541… 262 29 Day 2… 20028 DOUBL… 1 29 Dummy… 1 Esket…
## # ℹ 38 more variables: TRT02AN <dbl>, TRTSEQA <chr>, TRTSEQAN <dbl>,
## # PARAMCD <chr>, PARAMN <dbl>, PARAM <chr>, PARAMTYP <chr>, AVAL <dbl>,
## # AVALC <chr>, BASE <dbl>, CHG <dbl>, PCHG <dbl>, DTYPE <chr>, ANL01FL <chr>,
## # ANL02FL <chr>, ABLFL <chr>, VISIT <chr>, VISITNUM <dbl>, QSSEQ <lgl>,
## # QSCAT <lgl>, QSDTC <chr>, QSORRES <lgl>, SAFFL <chr>, FASFL <chr>,
## # RANDFL <chr>, RL2FL <chr>, OLFL <chr>, OBSFL <chr>, AGE <dbl>, AGEU <chr>,
## # SEX <chr>, RACE <chr>, COUNTRY <chr>, ETHNIC <chr>, SITEID <chr>, …
# 删除重复的时间点
admadrs <- admadrs[!duplicated(admadrs[c("USUBJID", "AVISIT")]), ]
# 将相关列转换为因子
admadrs$USUBJID <- factor(admadrs$USUBJID)
admadrs$AVISITN <- factor(admadrs$AVISITN)
admadrs$ADY <- as.factor(admadrs$ADY)
admadrs$SITEID <- as.factor(admadrs$SITEID)
admadrs$TRTSEQA <- as.factor(admadrs$TRTSEQA)
admadrs$BASE <- as.numeric(admadrs$BASE)
# 将 TRT01A 转换为因子,并重新编码参考水平
admadrs$TRT01A <- as.factor(admadrs$TRT01A)
admadrs$TRT01A <- relevel(admadrs$TRT01A, ref = "Dummy A")
#admadrs$AVISITN <- relevel(admadrs$AVISITN, ref = "")
# 对数值型变量进行归一化处理
str(admadrs$BASE)
## num [1:2111] 46 46 46 46 46 46 46 35 35 35 ...
# 拟合模型
fit <- mmrm(
formula = AVAL ~ AVISITN:TRT01A + TRT01A+ SEX + RACE + SITEID + us(AVISITN | USUBJID),
data = admadrs
)
# 查看模型结果
model_summary <- summary(fit)
print(model_summary)
## mmrm fit
##
## Formula:
## AVAL ~ AVISITN:TRT01A + TRT01A + SEX + RACE + SITEID + us(AVISITN |
## USUBJID)
## Data: admadrs (used 2111 observations from 314 subjects with maximum 7
## timepoints)
## Covariance: unstructured (28 variance parameters)
## Method: Satterthwaite
## Vcov Method: Asymptotic
## Inference: REML
##
## Model selection criteria:
## AIC BIC logLik deviance
## 12543.2 12648.2 -6243.6 12487.2
##
## Coefficients:
## Estimate Std. Error df
## (Intercept) 42.311310 2.238752 261.390000
## TRT01ADummy B -0.006346 0.831064 262.250000
## TRT01ADummy C 1.004851 0.816017 262.070000
## SEXM -1.194137 0.708164 260.880000
## RACEBLACK OR AFRICAN AMERICAN -4.479282 2.032083 260.580000
## RACEMULTIPLE -7.716767 3.017986 261.300000
## RACENATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER -7.885717 6.016080 260.460000
## RACENOT REPORTED 1.245938 3.787970 260.490000
## RACEUNKNOWN 6.802663 6.043465 260.480000
## RACEWHITE -2.568260 1.743838 260.610000
## SITEIDUS10002 -1.229250 2.303060 260.930000
## SITEIDUS10004 -8.259568 3.117919 260.680000
## SITEIDUS10006 -5.217838 2.401312 260.780000
## SITEIDUS10009 -7.337370 2.831870 260.460000
## SITEIDUS10013 -1.301813 2.529395 260.470000
## SITEIDUS10014 -2.164237 2.316054 261.870000
## SITEIDUS10015 -2.365394 2.387982 260.800000
## SITEIDUS10016 -9.687602 4.208657 265.640000
## SITEIDUS10017 -7.016326 2.642858 261.160000
## SITEIDUS10019 -1.605386 3.592191 260.510000
## SITEIDUS10020 -5.378596 2.498574 260.450000
## SITEIDUS10021 -4.516705 2.241566 260.450000
## SITEIDUS10023 -17.500610 5.744222 260.450000
## SITEIDUS10025 -4.712102 2.848193 260.440000
## SITEIDUS10027 -2.723972 5.763110 260.450000
## SITEIDUS10029 -4.292839 2.110008 260.770000
## SITEIDUS10030 -4.871831 2.060533 260.670000
## SITEIDUS10031 -6.015102 2.867839 260.450000
## SITEIDUS10033 -10.006951 5.730897 260.440000
## SITEIDUS10034 2.584925 3.499009 260.440000
## SITEIDUS10036 6.698268 2.291114 260.440000
## SITEIDUS10039 -0.324884 5.730897 260.440000
## SITEIDUS10040 0.077301 3.586388 260.810000
## SITEIDUS10041 1.934426 4.188029 260.450000
## SITEIDUS10043 -5.783299 2.404540 261.010000
## SITEIDUS10044 -7.558272 3.508111 260.470000
## SITEIDUS10045 -3.119892 5.726605 260.440000
## SITEIDUS10046 -0.717153 3.091655 260.700000
## SITEIDUS10049 -1.400071 3.101434 260.440000
## SITEIDUS10051 -8.382997 2.404467 260.440000
## SITEIDUS10053 0.811133 6.291341 260.620000
## SITEIDUS10055 -2.505617 2.525041 260.610000
## SITEIDUS10056 -12.803234 2.404337 260.990000
## SITEIDUS10057 -6.875626 2.839711 260.460000
## SITEIDUS10058 -3.191790 2.515040 260.730000
## SITEIDUS10062 -2.280351 1.802554 260.580000
## SITEIDUS10068 -2.129153 2.162851 260.440000
## SITEIDUS10069 -1.174156 5.749691 260.440000
## SITEIDUS10070 -4.561324 1.714523 260.640000
## SITEIDUS10071 -10.093485 2.831872 260.460000
## SITEIDUS10074 -6.235129 2.102104 261.070000
## SITEIDUS10075 -0.563992 1.910193 260.950000
## SITEIDUS10076 -11.052956 3.111970 260.440000
## TRT01ADummy A:AVISITN20002 -10.879023 0.809133 305.330000
## TRT01ADummy B:AVISITN20002 -10.050397 1.136961 307.150000
## TRT01ADummy C:AVISITN20002 -11.261574 1.122712 310.860000
## TRT01ADummy A:AVISITN20008 -6.885949 0.766938 303.980000
## TRT01ADummy B:AVISITN20008 -6.278107 1.072511 302.750000
## TRT01ADummy C:AVISITN20008 -7.107383 1.060691 308.260000
## TRT01ADummy A:AVISITN20015 -8.370742 0.808546 303.030000
## TRT01ADummy B:AVISITN20015 -6.237795 1.128268 299.590000
## TRT01ADummy C:AVISITN20015 -7.610302 1.113896 304.470000
## TRT01ADummy A:AVISITN20022 -9.320062 0.899035 309.190000
## TRT01ADummy B:AVISITN20022 -7.839063 1.257391 307.550000
## TRT01ADummy C:AVISITN20022 -8.631991 1.237156 310.070000
## TRT01ADummy A:AVISITN20028 -9.264671 0.898314 308.930000
## TRT01ADummy B:AVISITN20028 -8.226598 1.258466 309.020000
## TRT01ADummy C:AVISITN20028 -9.167322 1.234789 308.870000
## TRT01ADummy A:AVISITN20999 -9.376635 0.898109 309.030000
## TRT01ADummy B:AVISITN20999 -8.333333 1.257976 308.900000
## TRT01ADummy C:AVISITN20999 -9.320988 1.234461 308.900000
## t value Pr(>|t|)
## (Intercept) 18.900 < 2e-16 ***
## TRT01ADummy B -0.008 0.993913
## TRT01ADummy C 1.231 0.219274
## SEXM -1.686 0.092944 .
## RACEBLACK OR AFRICAN AMERICAN -2.204 0.028379 *
## RACEMULTIPLE -2.557 0.011126 *
## RACENATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER -1.311 0.191089
## RACENOT REPORTED 0.329 0.742481
## RACEUNKNOWN 1.126 0.261361
## RACEWHITE -1.473 0.142022
## SITEIDUS10002 -0.534 0.593971
## SITEIDUS10004 -2.649 0.008564 **
## SITEIDUS10006 -2.173 0.030687 *
## SITEIDUS10009 -2.591 0.010109 *
## SITEIDUS10013 -0.515 0.607218
## SITEIDUS10014 -0.934 0.350933
## SITEIDUS10015 -0.991 0.322828
## SITEIDUS10016 -2.302 0.022119 *
## SITEIDUS10017 -2.655 0.008422 **
## SITEIDUS10019 -0.447 0.655311
## SITEIDUS10020 -2.153 0.032264 *
## SITEIDUS10021 -2.015 0.044935 *
## SITEIDUS10023 -3.047 0.002552 **
## SITEIDUS10025 -1.654 0.099247 .
## SITEIDUS10027 -0.473 0.636854
## SITEIDUS10029 -2.035 0.042912 *
## SITEIDUS10030 -2.364 0.018795 *
## SITEIDUS10031 -2.097 0.036919 *
## SITEIDUS10033 -1.746 0.081966 .
## SITEIDUS10034 0.739 0.460719
## SITEIDUS10036 2.924 0.003765 **
## SITEIDUS10039 -0.057 0.954836
## SITEIDUS10040 0.022 0.982820
## SITEIDUS10041 0.462 0.644543
## SITEIDUS10043 -2.405 0.016862 *
## SITEIDUS10044 -2.155 0.032117 *
## SITEIDUS10045 -0.545 0.586353
## SITEIDUS10046 -0.232 0.816748
## SITEIDUS10049 -0.451 0.652058
## SITEIDUS10051 -3.486 0.000574 ***
## SITEIDUS10053 0.129 0.897514
## SITEIDUS10055 -0.992 0.321968
## SITEIDUS10056 -5.325 2.18e-07 ***
## SITEIDUS10057 -2.421 0.016151 *
## SITEIDUS10058 -1.269 0.205544
## SITEIDUS10062 -1.265 0.206977
## SITEIDUS10068 -0.984 0.325823
## SITEIDUS10069 -0.204 0.838347
## SITEIDUS10070 -2.660 0.008289 **
## SITEIDUS10071 -3.564 0.000434 ***
## SITEIDUS10074 -2.966 0.003295 **
## SITEIDUS10075 -0.295 0.768035
## SITEIDUS10076 -3.552 0.000454 ***
## TRT01ADummy A:AVISITN20002 -13.445 < 2e-16 ***
## TRT01ADummy B:AVISITN20002 -8.840 < 2e-16 ***
## TRT01ADummy C:AVISITN20002 -10.031 < 2e-16 ***
## TRT01ADummy A:AVISITN20008 -8.978 < 2e-16 ***
## TRT01ADummy B:AVISITN20008 -5.854 1.25e-08 ***
## TRT01ADummy C:AVISITN20008 -6.701 9.86e-11 ***
## TRT01ADummy A:AVISITN20015 -10.353 < 2e-16 ***
## TRT01ADummy B:AVISITN20015 -5.529 7.03e-08 ***
## TRT01ADummy C:AVISITN20015 -6.832 4.56e-11 ***
## TRT01ADummy A:AVISITN20022 -10.367 < 2e-16 ***
## TRT01ADummy B:AVISITN20022 -6.234 1.49e-09 ***
## TRT01ADummy C:AVISITN20022 -6.977 1.83e-11 ***
## TRT01ADummy A:AVISITN20028 -10.313 < 2e-16 ***
## TRT01ADummy B:AVISITN20028 -6.537 2.59e-10 ***
## TRT01ADummy C:AVISITN20028 -7.424 1.11e-12 ***
## TRT01ADummy A:AVISITN20999 -10.440 < 2e-16 ***
## TRT01ADummy B:AVISITN20999 -6.624 1.55e-10 ***
## TRT01ADummy C:AVISITN20999 -7.551 4.92e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Covariance estimate:
## 20000 20002 20008 20015 20022 20028 20999
## 20000 31.9712 24.5100 23.7899 22.3903 21.4149 22.8890 22.4863
## 20002 24.5100 116.5754 79.2251 77.7430 76.9810 83.2311 83.7215
## 20008 23.7899 79.2251 104.5349 85.8862 86.7337 89.3423 89.5672
## 20015 22.3903 77.7430 85.8862 111.3849 101.4960 102.0276 101.4148
## 20022 21.4149 76.9810 86.7337 101.4960 132.6714 121.4837 121.3574
## 20028 22.8890 83.2311 89.3423 102.0276 121.4837 137.2556 136.3373
## 20999 22.4863 83.7215 89.5672 101.4148 121.3574 136.3373 136.4368
# 加载必要的包
library(readxl)
library(mmrm)
library(ggplot2)
?mmrm
# 读取数据
admadrs <- read_excel("/Users/qiujiahui/Desktop/≥55 older adults.xlsx",
sheet = "Sheet1", col_names = TRUE,
col_types = NULL, na = "", skip = 0)
head(admadrs)
## # A tibble: 6 × 49
## USUBJID ASEQ ADY AVISIT AVISITN APHASE APHASEN PHADY TRT01A TRT01AN TRT02A
## <chr> <dbl> <dbl> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <chr>
## 1 5413541… 269 1 Basel… 20000 DOUBL… 1 1 Dummy… 1 Esket…
## 2 5413541… 270 2 Day 2… 20002 DOUBL… 1 2 Dummy… 1 Esket…
## 3 5413541… 271 8 Day 8… 20008 DOUBL… 1 8 Dummy… 1 Esket…
## 4 5413541… 272 16 Day 1… 20015 DOUBL… 1 16 Dummy… 1 Esket…
## 5 5413541… 273 23 Day 2… 20022 DOUBL… 1 23 Dummy… 1 Esket…
## 6 5413541… 274 30 Day 2… 20028 DOUBL… 1 30 Dummy… 1 Esket…
## # ℹ 38 more variables: TRT02AN <dbl>, TRTSEQA <chr>, TRTSEQAN <dbl>,
## # PARAMCD <chr>, PARAMN <dbl>, PARAM <chr>, PARAMTYP <chr>, AVAL <dbl>,
## # AVALC <chr>, BASE <dbl>, CHG <dbl>, PCHG <dbl>, DTYPE <chr>, ANL01FL <chr>,
## # ANL02FL <chr>, ABLFL <chr>, VISIT <chr>, VISITNUM <dbl>, QSSEQ <lgl>,
## # QSCAT <lgl>, QSDTC <chr>, QSORRES <lgl>, SAFFL <chr>, FASFL <chr>,
## # RANDFL <chr>, RL2FL <chr>, OLFL <chr>, OBSFL <chr>, AGE <dbl>, AGEU <chr>,
## # SEX <chr>, RACE <chr>, COUNTRY <chr>, ETHNIC <chr>, SITEID <chr>, …
# 删除重复的时间点
admadrs <- admadrs[!duplicated(admadrs[c("USUBJID", "AVISIT")]), ]
# 将相关列转换为因子
admadrs$USUBJID <- factor(admadrs$USUBJID)
admadrs$AVISITN <- factor(admadrs$AVISITN)
admadrs$ADY <- as.factor(admadrs$ADY)
admadrs$SITEID <- as.factor(admadrs$SITEID)
admadrs$TRTSEQA <- as.factor(admadrs$TRTSEQA)
admadrs$BASE <- as.numeric(admadrs$BASE)
# 将 TRT01A 转换为因子,并重新编码参考水平
admadrs$TRT01A <- as.factor(admadrs$TRT01A)
admadrs$TRT01A <- relevel(admadrs$TRT01A, ref = "Dummy A")
#admadrs$AVISITN <- relevel(admadrs$AVISITN, ref = "")
# 对数值型变量进行归一化处理
str(admadrs$BASE)
## num [1:911] 42 42 42 42 42 42 42 41 41 41 ...
# 拟合模型
fit <- mmrm(
formula = AVAL ~ AVISITN:TRT01A + TRT01A+ SEX + RACE + SITEID + us(AVISITN | USUBJID),
data = admadrs
)
# 查看模型结果
model_summary <- summary(fit)
print(model_summary)
## mmrm fit
##
## Formula:
## AVAL ~ AVISITN:TRT01A + TRT01A + SEX + RACE + SITEID + us(AVISITN |
## USUBJID)
## Data: admadrs (used 911 observations from 134 subjects with maximum 7
## timepoints)
## Covariance: unstructured (28 variance parameters)
## Method: Satterthwaite
## Vcov Method: Asymptotic
## Inference: REML
##
## Model selection criteria:
## AIC BIC logLik deviance
## 5288.8 5369.9 -2616.4 5232.8
##
## Coefficients:
## Estimate Std. Error df
## (Intercept) 40.2269 7.4396 85.6900
## TRT01ADummy B -1.3432 1.6476 88.5600
## TRT01ADummy C -1.0067 1.5881 88.3500
## SEXM -2.1106 1.2972 85.8600
## RACEBLACK OR AFRICAN AMERICAN -4.3946 7.8015 85.6700
## RACEMULTIPLE -2.1858 11.4559 85.5600
## RACENATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 4.7862 9.6484 85.5700
## RACENOT REPORTED -11.1705 11.5874 85.5800
## RACEWHITE -2.9707 7.1652 85.5700
## SITEIDUS10002 9.2870 6.4467 85.4900
## SITEIDUS10005 0.8175 6.3538 85.4900
## SITEIDUS10006 -0.3132 3.9104 85.5400
## SITEIDUS10008 -7.8356 3.4918 86.7300
## SITEIDUS10009 3.2901 3.9534 85.5600
## SITEIDUS10013 -0.6802 3.2010 85.5800
## SITEIDUS10015 -5.5236 3.4287 85.5700
## SITEIDUS10019 -1.1170 3.0280 85.5700
## SITEIDUS10020 -12.5943 6.2881 85.4700
## SITEIDUS10021 1.7154 3.8993 85.5000
## SITEIDUS10023 -1.8582 6.3663 85.2900
## SITEIDUS10025 6.0976 6.3870 85.4800
## SITEIDUS10027 -10.5007 6.3538 85.4900
## SITEIDUS10029 3.7315 3.4280 85.5500
## SITEIDUS10030 2.2993 3.0383 85.6100
## SITEIDUS10031 4.7694 6.3951 85.5100
## SITEIDUS10033 1.8069 3.4310 85.5400
## SITEIDUS10034 -1.7977 4.8215 85.5600
## SITEIDUS10036 8.2852 6.9493 85.6000
## SITEIDUS10040 11.4753 6.4467 85.4900
## SITEIDUS10041 1.0206 3.4729 86.0400
## SITEIDUS10043 0.9262 3.4737 87.4900
## SITEIDUS10045 -5.4381 3.8663 85.5300
## SITEIDUS10046 1.4028 6.3951 85.5100
## SITEIDUS10049 -1.7983 6.2881 85.4700
## SITEIDUS10051 -1.0768 3.1592 85.6000
## SITEIDUS10055 -4.2714 4.0119 85.5700
## SITEIDUS10056 2.9868 4.6470 85.4900
## SITEIDUS10057 1.9484 6.3938 85.5400
## SITEIDUS10058 -8.8309 3.4709 85.5100
## SITEIDUS10062 -2.9905 3.3352 85.9400
## SITEIDUS10068 -1.2945 3.1528 85.5600
## SITEIDUS10069 0.1813 6.3951 85.5100
## SITEIDUS10070 -12.3287 3.5103 85.5600
## SITEIDUS10071 3.3426 6.3951 85.5100
## SITEIDUS10073 -5.7096 6.3397 84.6800
## SITEIDUS10074 -2.0191 3.8796 85.5000
## SITEIDUS10075 -1.5208 2.3948 85.6900
## SITEIDUS10076 -4.3572 4.8331 85.5300
## TRT01ADummy A:AVISITN20002 -11.2447 1.1720 132.7100
## TRT01ADummy B:AVISITN20002 -10.1250 1.7127 129.9600
## TRT01ADummy C:AVISITN20002 -9.0625 1.7127 129.9600
## TRT01ADummy A:AVISITN20008 -7.1190 1.0689 125.8400
## TRT01ADummy B:AVISITN20008 -6.0312 1.5703 124.0500
## TRT01ADummy C:AVISITN20008 -8.2453 1.5782 125.8000
## TRT01ADummy A:AVISITN20015 -5.6340 1.1494 129.7800
## TRT01ADummy B:AVISITN20015 -6.6641 1.6939 128.8600
## TRT01ADummy C:AVISITN20015 -6.9062 1.6863 127.2100
## TRT01ADummy A:AVISITN20022 -8.2733 1.2456 130.9000
## TRT01ADummy B:AVISITN20022 -8.8402 1.8414 130.8800
## TRT01ADummy C:AVISITN20022 -9.7390 1.8466 132.1200
## TRT01ADummy A:AVISITN20028 -8.9232 1.1786 131.0600
## TRT01ADummy B:AVISITN20028 -5.6533 1.7430 131.0300
## TRT01ADummy C:AVISITN20028 -8.6337 1.7427 130.9300
## TRT01ADummy A:AVISITN20999 -8.8571 1.1762 131.0000
## TRT01ADummy B:AVISITN20999 -5.7187 1.7397 131.0000
## TRT01ADummy C:AVISITN20999 -8.5312 1.7397 131.0000
## t value Pr(>|t|)
## (Intercept) 5.407 5.70e-07 ***
## TRT01ADummy B -0.815 0.417121
## TRT01ADummy C -0.634 0.527772
## SEXM -1.627 0.107401
## RACEBLACK OR AFRICAN AMERICAN -0.563 0.574698
## RACEMULTIPLE -0.191 0.849136
## RACENATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER 0.496 0.621122
## RACENOT REPORTED -0.964 0.337752
## RACEWHITE -0.415 0.679471
## SITEIDUS10002 1.441 0.153353
## SITEIDUS10005 0.129 0.897920
## SITEIDUS10006 -0.080 0.936350
## SITEIDUS10008 -2.244 0.027380 *
## SITEIDUS10009 0.832 0.407598
## SITEIDUS10013 -0.212 0.832223
## SITEIDUS10015 -1.611 0.110865
## SITEIDUS10019 -0.369 0.713116
## SITEIDUS10020 -2.003 0.048359 *
## SITEIDUS10021 0.440 0.661094
## SITEIDUS10023 -0.292 0.771084
## SITEIDUS10025 0.955 0.342426
## SITEIDUS10027 -1.653 0.102064
## SITEIDUS10029 1.089 0.279425
## SITEIDUS10030 0.757 0.451273
## SITEIDUS10031 0.746 0.457835
## SITEIDUS10033 0.527 0.599797
## SITEIDUS10034 -0.373 0.710189
## SITEIDUS10036 1.192 0.236460
## SITEIDUS10040 1.780 0.078624 .
## SITEIDUS10041 0.294 0.769572
## SITEIDUS10043 0.267 0.790371
## SITEIDUS10045 -1.407 0.163195
## SITEIDUS10046 0.219 0.826893
## SITEIDUS10049 -0.286 0.775581
## SITEIDUS10051 -0.341 0.734053
## SITEIDUS10055 -1.065 0.290008
## SITEIDUS10056 0.643 0.522115
## SITEIDUS10057 0.305 0.761316
## SITEIDUS10058 -2.544 0.012748 *
## SITEIDUS10062 -0.897 0.372418
## SITEIDUS10068 -0.411 0.682410
## SITEIDUS10069 0.028 0.977443
## SITEIDUS10070 -3.512 0.000712 ***
## SITEIDUS10071 0.523 0.602540
## SITEIDUS10073 -0.901 0.370353
## SITEIDUS10074 -0.520 0.604104
## SITEIDUS10075 -0.635 0.527110
## SITEIDUS10076 -0.902 0.369836
## TRT01ADummy A:AVISITN20002 -9.594 < 2e-16 ***
## TRT01ADummy B:AVISITN20002 -5.912 2.81e-08 ***
## TRT01ADummy C:AVISITN20002 -5.291 5.01e-07 ***
## TRT01ADummy A:AVISITN20008 -6.660 7.64e-10 ***
## TRT01ADummy B:AVISITN20008 -3.841 0.000195 ***
## TRT01ADummy C:AVISITN20008 -5.225 7.03e-07 ***
## TRT01ADummy A:AVISITN20015 -4.902 2.79e-06 ***
## TRT01ADummy B:AVISITN20015 -3.934 0.000136 ***
## TRT01ADummy C:AVISITN20015 -4.095 7.44e-05 ***
## TRT01ADummy A:AVISITN20022 -6.642 7.54e-10 ***
## TRT01ADummy B:AVISITN20022 -4.801 4.25e-06 ***
## TRT01ADummy C:AVISITN20022 -5.274 5.31e-07 ***
## TRT01ADummy A:AVISITN20028 -7.571 5.86e-12 ***
## TRT01ADummy B:AVISITN20028 -3.243 0.001499 **
## TRT01ADummy C:AVISITN20028 -4.954 2.20e-06 ***
## TRT01ADummy A:AVISITN20999 -7.530 7.32e-12 ***
## TRT01ADummy B:AVISITN20999 -3.287 0.001299 **
## TRT01ADummy C:AVISITN20999 -4.904 2.73e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Covariance estimate:
## 20000 20002 20008 20015 20022 20028 20999
## 20000 39.0120 40.9605 32.1254 31.4892 36.7205 40.0660 40.3998
## 20002 40.9605 136.7725 90.7778 82.3913 93.2325 86.3349 86.3457
## 20008 32.1254 90.7778 104.1451 89.5815 94.8563 82.7549 82.7934
## 20015 31.4892 82.3913 89.5815 114.9630 111.9321 100.6583 100.9623
## 20022 36.7205 93.2325 94.8563 111.9321 141.3374 120.0918 120.5381
## 20028 40.0660 86.3349 82.7549 100.6583 120.0918 138.2700 137.9063
## 20999 40.3998 86.3457 82.7934 100.9623 120.5381 137.9063 138.6351
# 加载必要的包
library(readxl)
library(mmrm)
library(ggplot2)
?mmrm
# 读取数据
admadrs <- read_excel("/Users/qiujiahui/Desktop/中度抑郁.xlsx",
sheet = "Sheet1", col_names = TRUE,
col_types = NULL, na = "", skip = 0)
head(admadrs)
## # A tibble: 6 × 49
## USUBJID ASEQ ADY AVISIT AVISITN APHASE APHASEN PHADY TRT01A TRT01AN TRT02A
## <chr> <dbl> <dbl> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <chr>
## 1 5413541… 257 1 Basel… 20000 DOUBL… 1 1 Dummy… 2 Esket…
## 2 5413541… 258 3 Day 2… 20002 DOUBL… 1 3 Dummy… 2 Esket…
## 3 5413541… 259 8 Day 8… 20008 DOUBL… 1 8 Dummy… 2 Esket…
## 4 5413541… 260 15 Day 1… 20015 DOUBL… 1 15 Dummy… 2 Esket…
## 5 5413541… 261 21 Day 2… 20022 DOUBL… 1 21 Dummy… 2 Esket…
## 6 5413541… 262 29 Day 2… 20028 DOUBL… 1 29 Dummy… 2 Esket…
## # ℹ 38 more variables: TRT02AN <dbl>, TRTSEQA <chr>, TRTSEQAN <dbl>,
## # PARAMCD <chr>, PARAMN <dbl>, PARAM <chr>, PARAMTYP <chr>, AVAL <dbl>,
## # AVALC <chr>, BASE <dbl>, CHG <dbl>, PCHG <dbl>, DTYPE <chr>, ANL01FL <chr>,
## # ANL02FL <chr>, ABLFL <chr>, VISIT <chr>, VISITNUM <dbl>, QSSEQ <lgl>,
## # QSCAT <lgl>, QSDTC <chr>, QSORRES <lgl>, SAFFL <chr>, FASFL <chr>,
## # RANDFL <chr>, RL2FL <chr>, OLFL <chr>, OBSFL <chr>, AGE <dbl>, AGEU <chr>,
## # SEX <chr>, RACE <chr>, COUNTRY <chr>, ETHNIC <chr>, SITEID <chr>, …
# 删除重复的时间点
admadrs <- admadrs[!duplicated(admadrs[c("USUBJID", "AVISIT")]), ]
# 将相关列转换为因子
admadrs$USUBJID <- factor(admadrs$USUBJID)
admadrs$AVISITN <- factor(admadrs$AVISITN)
admadrs$ADY <- as.factor(admadrs$ADY)
admadrs$SITEID <- as.factor(admadrs$SITEID)
admadrs$TRTSEQA <- as.factor(admadrs$TRTSEQA)
admadrs$BASE <- as.numeric(admadrs$BASE)
# 将 TRT01A 转换为因子,并重新编码参考水平
admadrs$TRT01A <- as.factor(admadrs$TRT01A)
admadrs$TRT01A <- relevel(admadrs$TRT01A, ref = "Dummy A")
#admadrs$AVISITN <- relevel(admadrs$AVISITN, ref = "")
# 对数值型变量进行归一化处理
str(admadrs$BASE)
## num [1:2323] 35 35 35 35 35 35 35 35 35 35 ...
# 拟合模型
fit <- mmrm(
formula = AVAL ~ AVISITN:TRT01A + TRT01A+ SEX + RACE + SITEID + us(AVISITN | USUBJID),
data = admadrs
)
# 查看模型结果
model_summary <- summary(fit)
print(model_summary)
## mmrm fit
##
## Formula:
## AVAL ~ AVISITN:TRT01A + TRT01A + SEX + RACE + SITEID + us(AVISITN |
## USUBJID)
## Data: admadrs (used 2323 observations from 346 subjects with maximum 7
## timepoints)
## Covariance: unstructured (28 variance parameters)
## Method: Satterthwaite
## Vcov Method: Asymptotic
## Inference: REML
##
## Model selection criteria:
## AIC BIC logLik deviance
## 13662.2 13769.9 -6803.1 13606.2
##
## Coefficients:
## Estimate Std. Error df
## (Intercept) 39.45018 4.68723 290.50000
## TRT01ADummy B 0.18460 0.62341 293.10000
## TRT01ADummy C 0.58013 0.61923 293.50000
## SEXM 0.03117 0.52266 290.70000
## RACEASIAN -3.06566 4.75538 290.30000
## RACEBLACK OR AFRICAN AMERICAN -6.51503 4.64764 290.30000
## RACEMULTIPLE -8.19489 4.95730 290.50000
## RACENATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER -5.43224 6.40792 290.30000
## RACENOT REPORTED -2.02419 5.30742 290.30000
## RACEWHITE -5.46332 4.55141 290.30000
## SITEIDUS10002 0.86786 2.06426 290.90000
## SITEIDUS10004 -3.02848 2.43136 290.30000
## SITEIDUS10005 2.28995 4.50371 290.20000
## SITEIDUS10006 -3.03471 1.86775 290.70000
## SITEIDUS10008 -7.96669 2.73271 291.50000
## SITEIDUS10009 -2.47626 1.85494 290.60000
## SITEIDUS10013 0.65094 1.73576 290.20000
## SITEIDUS10014 -0.62795 1.97778 293.20000
## SITEIDUS10015 0.63101 1.78421 290.30000
## SITEIDUS10016 -3.95500 3.30448 298.30000
## SITEIDUS10017 -2.20751 2.06213 291.40000
## SITEIDUS10019 -1.57292 2.12188 290.30000
## SITEIDUS10020 -6.53321 2.22094 290.30000
## SITEIDUS10021 -2.56690 1.88339 290.20000
## SITEIDUS10023 -7.42312 3.25893 290.40000
## SITEIDUS10025 -0.55833 2.22453 290.20000
## SITEIDUS10027 -2.83208 3.27929 290.20000
## SITEIDUS10029 -0.06630 1.63872 290.50000
## SITEIDUS10030 -1.92833 1.57189 290.60000
## SITEIDUS10031 -1.52896 2.13827 290.20000
## SITEIDUS10033 -1.92588 2.06259 290.20000
## SITEIDUS10034 1.82587 3.28705 290.20000
## SITEIDUS10039 5.65743 4.50288 290.20000
## SITEIDUS10040 -2.07869 4.50615 290.20000
## SITEIDUS10041 2.41783 2.43482 290.90000
## SITEIDUS10043 -3.49800 1.79784 291.00000
## SITEIDUS10044 -1.90748 2.73898 291.10000
## SITEIDUS10045 -0.99748 2.41877 290.20000
## SITEIDUS10046 3.67900 2.46231 290.30000
## SITEIDUS10049 1.17598 2.41851 290.20000
## SITEIDUS10051 -1.60156 1.59490 290.20000
## SITEIDUS10053 3.79277 4.90463 290.40000
## SITEIDUS10055 -0.99969 1.73996 290.30000
## SITEIDUS10056 -5.00479 1.74597 291.10000
## SITEIDUS10057 -0.08158 1.79313 290.50000
## SITEIDUS10058 -2.25458 1.67844 290.20000
## SITEIDUS10062 -0.56589 1.41183 290.50000
## SITEIDUS10068 -0.20251 1.59806 290.20000
## SITEIDUS10069 2.07440 2.73405 290.20000
## SITEIDUS10070 -2.26240 1.34098 290.40000
## SITEIDUS10071 -4.13423 2.73364 290.20000
## SITEIDUS10073 -1.87408 4.50539 290.30000
## SITEIDUS10074 -2.26059 1.59291 290.50000
## SITEIDUS10075 -0.55387 1.40383 290.40000
## SITEIDUS10076 -4.55847 1.94632 290.80000
## TRT01ADummy A:AVISITN20002 -11.09987 0.73226 338.60000
## TRT01ADummy B:AVISITN20002 -10.14402 1.04447 336.60000
## TRT01ADummy C:AVISITN20002 -9.97296 1.02718 340.30000
## TRT01ADummy A:AVISITN20008 -7.06784 0.68741 333.30000
## TRT01ADummy B:AVISITN20008 -5.94395 0.97966 330.20000
## TRT01ADummy C:AVISITN20008 -7.34406 0.96475 335.80000
## TRT01ADummy A:AVISITN20015 -7.44807 0.72847 334.40000
## TRT01ADummy B:AVISITN20015 -6.00572 1.03641 329.00000
## TRT01ADummy C:AVISITN20015 -7.04745 1.01899 334.20000
## TRT01ADummy A:AVISITN20022 -8.76629 0.78760 340.40000
## TRT01ADummy B:AVISITN20022 -8.07167 1.12262 336.40000
## TRT01ADummy C:AVISITN20022 -8.74931 1.10049 339.40000
## TRT01ADummy A:AVISITN20028 -8.98881 0.79071 340.90000
## TRT01ADummy B:AVISITN20028 -6.92140 1.13172 340.90000
## TRT01ADummy C:AVISITN20028 -9.17739 1.10568 340.90000
## TRT01ADummy A:AVISITN20999 -9.06884 0.78869 341.10000
## TRT01ADummy B:AVISITN20999 -7.02381 1.12872 340.90000
## TRT01ADummy C:AVISITN20999 -9.14773 1.10277 340.90000
## t value Pr(>|t|)
## (Intercept) 8.417 1.79e-15 ***
## TRT01ADummy B 0.296 0.76735
## TRT01ADummy C 0.937 0.34960
## SEXM 0.060 0.95248
## RACEASIAN -0.645 0.51965
## RACEBLACK OR AFRICAN AMERICAN -1.402 0.16205
## RACEMULTIPLE -1.653 0.09939 .
## RACENATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER -0.848 0.39728
## RACENOT REPORTED -0.381 0.70319
## RACEWHITE -1.200 0.23098
## SITEIDUS10002 0.420 0.67449
## SITEIDUS10004 -1.246 0.21392
## SITEIDUS10005 0.508 0.61152
## SITEIDUS10006 -1.625 0.10529
## SITEIDUS10008 -2.915 0.00383 **
## SITEIDUS10009 -1.335 0.18294
## SITEIDUS10013 0.375 0.70792
## SITEIDUS10014 -0.318 0.75109
## SITEIDUS10015 0.354 0.72385
## SITEIDUS10016 -1.197 0.23231
## SITEIDUS10017 -1.070 0.28528
## SITEIDUS10019 -0.741 0.45912
## SITEIDUS10020 -2.942 0.00353 **
## SITEIDUS10021 -1.363 0.17397
## SITEIDUS10023 -2.278 0.02347 *
## SITEIDUS10025 -0.251 0.80200
## SITEIDUS10027 -0.864 0.38851
## SITEIDUS10029 -0.040 0.96775
## SITEIDUS10030 -1.227 0.22091
## SITEIDUS10031 -0.715 0.47516
## SITEIDUS10033 -0.934 0.35122
## SITEIDUS10034 0.555 0.57900
## SITEIDUS10039 1.256 0.20998
## SITEIDUS10040 -0.461 0.64493
## SITEIDUS10041 0.993 0.32152
## SITEIDUS10043 -1.946 0.05266 .
## SITEIDUS10044 -0.696 0.48672
## SITEIDUS10045 -0.412 0.68036
## SITEIDUS10046 1.494 0.13623
## SITEIDUS10049 0.486 0.62716
## SITEIDUS10051 -1.004 0.31613
## SITEIDUS10053 0.773 0.43997
## SITEIDUS10055 -0.575 0.56604
## SITEIDUS10056 -2.866 0.00445 **
## SITEIDUS10057 -0.045 0.96375
## SITEIDUS10058 -1.343 0.18024
## SITEIDUS10062 -0.401 0.68885
## SITEIDUS10068 -0.127 0.89925
## SITEIDUS10069 0.759 0.44863
## SITEIDUS10070 -1.687 0.09265 .
## SITEIDUS10071 -1.512 0.13153
## SITEIDUS10073 -0.416 0.67774
## SITEIDUS10074 -1.419 0.15692
## SITEIDUS10075 -0.395 0.69347
## SITEIDUS10076 -2.342 0.01985 *
## TRT01ADummy A:AVISITN20002 -15.158 < 2e-16 ***
## TRT01ADummy B:AVISITN20002 -9.712 < 2e-16 ***
## TRT01ADummy C:AVISITN20002 -9.709 < 2e-16 ***
## TRT01ADummy A:AVISITN20008 -10.282 < 2e-16 ***
## TRT01ADummy B:AVISITN20008 -6.067 3.56e-09 ***
## TRT01ADummy C:AVISITN20008 -7.612 2.75e-13 ***
## TRT01ADummy A:AVISITN20015 -10.224 < 2e-16 ***
## TRT01ADummy B:AVISITN20015 -5.795 1.60e-08 ***
## TRT01ADummy C:AVISITN20015 -6.916 2.37e-11 ***
## TRT01ADummy A:AVISITN20022 -11.130 < 2e-16 ***
## TRT01ADummy B:AVISITN20022 -7.190 4.22e-12 ***
## TRT01ADummy C:AVISITN20022 -7.950 2.78e-14 ***
## TRT01ADummy A:AVISITN20028 -11.368 < 2e-16 ***
## TRT01ADummy B:AVISITN20028 -6.116 2.63e-09 ***
## TRT01ADummy C:AVISITN20028 -8.300 2.46e-15 ***
## TRT01ADummy A:AVISITN20999 -11.499 < 2e-16 ***
## TRT01ADummy B:AVISITN20999 -6.223 1.43e-09 ***
## TRT01ADummy C:AVISITN20999 -8.295 2.55e-15 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Covariance estimate:
## 20000 20002 20008 20015 20022 20028 20999
## 20000 20.0599 12.1534 13.3733 11.1446 12.3306 11.7817 11.8377
## 20002 12.1534 95.2573 58.7280 53.8440 55.3771 58.0722 58.5677
## 20008 13.3733 58.7280 86.6388 68.9246 71.1895 67.0333 67.8667
## 20015 11.1446 53.8440 68.9246 91.8151 82.6837 78.4870 78.7079
## 20022 12.3306 55.3771 71.1895 82.6837 109.0007 93.6085 93.7458
## 20028 11.7817 58.0722 67.0333 78.4870 93.6085 111.0116 110.3090
## 20999 11.8377 58.5677 67.8667 78.7079 93.7458 110.3090 110.6318
##重度抑郁(40 分及以上)
# 加载必要的包
library(readxl)
library(mmrm)
library(ggplot2)
?mmrm
# 读取数据
admadrs <- read_excel("/Users/qiujiahui/Desktop/重度抑郁.xlsx",
sheet = "Sheet1", col_names = TRUE,
col_types = NULL, na = "", skip = 0)
head(admadrs)
## # A tibble: 6 × 49
## USUBJID ASEQ ADY AVISIT AVISITN APHASE APHASEN PHADY TRT01A TRT01AN TRT02A
## <chr> <dbl> <dbl> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <chr>
## 1 5413541… 257 1 Basel… 20000 DOUBL… 1 1 Dummy… 1 Esket…
## 2 5413541… 258 3 Day 2… 20002 DOUBL… 1 3 Dummy… 1 Esket…
## 3 5413541… 259 8 Day 8… 20008 DOUBL… 1 8 Dummy… 1 Esket…
## 4 5413541… 260 15 Day 1… 20015 DOUBL… 1 15 Dummy… 1 Esket…
## 5 5413541… 261 22 Day 2… 20022 DOUBL… 1 22 Dummy… 1 Esket…
## 6 5413541… 262 29 Day 2… 20028 DOUBL… 1 29 Dummy… 1 Esket…
## # ℹ 38 more variables: TRT02AN <dbl>, TRTSEQA <chr>, TRTSEQAN <dbl>,
## # PARAMCD <chr>, PARAMN <dbl>, PARAM <chr>, PARAMTYP <chr>, AVAL <dbl>,
## # AVALC <chr>, BASE <dbl>, CHG <dbl>, PCHG <dbl>, DTYPE <chr>, ANL01FL <chr>,
## # ANL02FL <chr>, ABLFL <chr>, VISIT <chr>, VISITNUM <dbl>, QSSEQ <lgl>,
## # QSCAT <lgl>, QSDTC <chr>, QSORRES <lgl>, SAFFL <chr>, FASFL <chr>,
## # RANDFL <chr>, RL2FL <chr>, OLFL <chr>, OBSFL <chr>, AGE <dbl>, AGEU <chr>,
## # SEX <chr>, RACE <chr>, COUNTRY <chr>, ETHNIC <chr>, SITEID <chr>, …
# 删除重复的时间点
admadrs <- admadrs[!duplicated(admadrs[c("USUBJID", "AVISIT")]), ]
# 将相关列转换为因子
admadrs$USUBJID <- factor(admadrs$USUBJID)
admadrs$AVISITN <- factor(admadrs$AVISITN)
admadrs$ADY <- as.factor(admadrs$ADY)
admadrs$SITEID <- as.factor(admadrs$SITEID)
admadrs$TRTSEQA <- as.factor(admadrs$TRTSEQA)
admadrs$BASE <- as.numeric(admadrs$BASE)
# 将 TRT01A 转换为因子,并重新编码参考水平
admadrs$TRT01A <- as.factor(admadrs$TRT01A)
admadrs$TRT01A <- relevel(admadrs$TRT01A, ref = "Dummy A")
#admadrs$AVISITN <- relevel(admadrs$AVISITN, ref = "")
# 对数值型变量进行归一化处理
str(admadrs$BASE)
## num [1:865] 46 46 46 46 46 46 46 42 42 42 ...
# 拟合模型
fit <- mmrm(
formula = AVAL ~ AVISITN:TRT01A + TRT01A+ SEX + RACE + SITEID + us(AVISITN | USUBJID),
data = admadrs
)
# 查看模型结果
model_summary <- summary(fit)
print(model_summary)
## mmrm fit
##
## Formula:
## AVAL ~ AVISITN:TRT01A + TRT01A + SEX + RACE + SITEID + us(AVISITN |
## USUBJID)
## Data: admadrs (used 865 observations from 126 subjects with maximum 7
## timepoints)
## Covariance: unstructured (28 variance parameters)
## Method: Satterthwaite
## Vcov Method: Asymptotic
## Inference: REML
##
## Model selection criteria:
## AIC BIC logLik deviance
## 4884.4 4963.8 -2414.2 4828.4
##
## Coefficients:
## Estimate Std. Error df
## (Intercept) 42.082115 1.547408 84.240000
## TRT01ADummy B -0.607984 0.553077 85.620000
## TRT01ADummy C -0.053217 0.567864 85.460000
## SEXM -0.185401 0.533243 83.950000
## RACEBLACK OR AFRICAN AMERICAN -0.210669 1.646402 83.910000
## RACEMULTIPLE -0.181947 2.445762 83.910000
## RACENATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER -0.344421 2.637149 83.890000
## RACENOT REPORTED -1.294699 2.602954 83.880000
## RACEUNKNOWN -0.569368 2.821252 83.890000
## RACEWHITE 0.000996 1.380441 83.920000
## SITEIDUS10002 0.750830 1.108203 83.890000
## SITEIDUS10004 -1.883049 2.261376 83.890000
## SITEIDUS10006 -0.356822 1.394718 83.880000
## SITEIDUS10008 -0.825443 2.244622 83.400000
## SITEIDUS10009 4.268720 2.263441 83.890000
## SITEIDUS10013 2.116193 1.662395 83.880000
## SITEIDUS10014 7.262389 1.634974 83.890000
## SITEIDUS10015 1.887682 1.689442 83.880000
## SITEIDUS10019 0.232052 1.382887 83.890000
## SITEIDUS10020 -0.626756 1.398739 83.900000
## SITEIDUS10021 -0.054198 1.142230 83.890000
## SITEIDUS10025 2.718635 2.263441 83.890000
## SITEIDUS10029 0.380574 1.216730 83.900000
## SITEIDUS10030 1.370636 1.078261 83.900000
## SITEIDUS10031 -0.507529 2.261376 83.890000
## SITEIDUS10033 6.403522 2.261376 83.890000
## SITEIDUS10034 0.006377 1.431320 83.900000
## SITEIDUS10036 5.123093 0.869689 83.900000
## SITEIDUS10040 2.096954 1.529852 83.960000
## SITEIDUS10041 0.425619 1.712095 83.890000
## SITEIDUS10043 1.029982 1.225367 84.030000
## SITEIDUS10046 1.164079 1.669124 84.180000
## SITEIDUS10049 -1.021487 1.634974 83.890000
## SITEIDUS10051 -0.664412 2.268746 83.890000
## SITEIDUS10055 2.647014 1.950384 83.900000
## SITEIDUS10058 -0.411239 2.247171 83.870000
## SITEIDUS10062 0.408222 0.900795 84.190000
## SITEIDUS10068 1.896237 1.213598 83.890000
## SITEIDUS10070 0.890622 0.969384 83.970000
## SITEIDUS10071 0.148396 1.652372 83.890000
## SITEIDUS10074 1.224348 1.641996 84.130000
## SITEIDUS10075 0.635482 0.905167 84.200000
## TRT01ADummy A:AVISITN20002 -11.556739 1.447344 123.500000
## TRT01ADummy B:AVISITN20002 -10.942857 1.904572 122.540000
## TRT01ADummy C:AVISITN20002 -14.101749 2.070636 124.500000
## TRT01ADummy A:AVISITN20008 -8.229508 1.381240 122.160000
## TRT01ADummy B:AVISITN20008 -7.260417 1.831029 123.600000
## TRT01ADummy C:AVISITN20008 -10.199292 1.979208 123.860000
## TRT01ADummy A:AVISITN20015 -9.154460 1.426611 123.100000
## TRT01ADummy B:AVISITN20015 -7.629035 1.883508 123.080000
## TRT01ADummy C:AVISITN20015 -9.933333 2.028126 121.890000
## TRT01ADummy A:AVISITN20022 -10.647048 1.639976 118.050000
## TRT01ADummy B:AVISITN20022 -9.039610 2.171177 119.150000
## TRT01ADummy C:AVISITN20022 -11.538162 2.351201 120.390000
## TRT01ADummy A:AVISITN20028 -10.582344 1.587298 123.020000
## TRT01ADummy B:AVISITN20028 -9.747094 2.095651 123.060000
## TRT01ADummy C:AVISITN20028 -10.300000 2.263206 122.980000
## TRT01ADummy A:AVISITN20999 -10.590164 1.590516 123.000000
## TRT01ADummy B:AVISITN20999 -9.800000 2.099757 123.000000
## TRT01ADummy C:AVISITN20999 -10.700000 2.267997 123.000000
## t value Pr(>|t|)
## (Intercept) 27.195 < 2e-16 ***
## TRT01ADummy B -1.099 0.274729
## TRT01ADummy C -0.094 0.925556
## SEXM -0.348 0.728947
## RACEBLACK OR AFRICAN AMERICAN -0.128 0.898489
## RACEMULTIPLE -0.074 0.940875
## RACENATIVE HAWAIIAN OR OTHER PACIFIC ISLANDER -0.131 0.896402
## RACENOT REPORTED -0.497 0.620211
## RACEUNKNOWN -0.202 0.840551
## RACEWHITE 0.001 0.999426
## SITEIDUS10002 0.678 0.499940
## SITEIDUS10004 -0.833 0.407378
## SITEIDUS10006 -0.256 0.798702
## SITEIDUS10008 -0.368 0.713997
## SITEIDUS10009 1.886 0.062763 .
## SITEIDUS10013 1.273 0.206543
## SITEIDUS10014 4.442 2.70e-05 ***
## SITEIDUS10015 1.117 0.267039
## SITEIDUS10019 0.168 0.867142
## SITEIDUS10020 -0.448 0.655246
## SITEIDUS10021 -0.047 0.962268
## SITEIDUS10025 1.201 0.233090
## SITEIDUS10029 0.313 0.755221
## SITEIDUS10030 1.271 0.207187
## SITEIDUS10031 -0.224 0.822966
## SITEIDUS10033 2.832 0.005795 **
## SITEIDUS10034 0.004 0.996456
## SITEIDUS10036 5.891 7.73e-08 ***
## SITEIDUS10040 1.371 0.174125
## SITEIDUS10041 0.249 0.804281
## SITEIDUS10043 0.841 0.402985
## SITEIDUS10046 0.697 0.487462
## SITEIDUS10049 -0.625 0.533816
## SITEIDUS10051 -0.293 0.770357
## SITEIDUS10055 1.357 0.178365
## SITEIDUS10058 -0.183 0.855237
## SITEIDUS10062 0.453 0.651585
## SITEIDUS10068 1.562 0.121937
## SITEIDUS10070 0.919 0.360858
## SITEIDUS10071 0.090 0.928654
## SITEIDUS10074 0.746 0.457959
## SITEIDUS10075 0.702 0.484578
## TRT01ADummy A:AVISITN20002 -7.985 8.32e-13 ***
## TRT01ADummy B:AVISITN20002 -5.746 6.82e-08 ***
## TRT01ADummy C:AVISITN20002 -6.810 3.69e-10 ***
## TRT01ADummy A:AVISITN20008 -5.958 2.53e-08 ***
## TRT01ADummy B:AVISITN20008 -3.965 0.000123 ***
## TRT01ADummy C:AVISITN20008 -5.153 9.81e-07 ***
## TRT01ADummy A:AVISITN20015 -6.417 2.71e-09 ***
## TRT01ADummy B:AVISITN20015 -4.050 8.98e-05 ***
## TRT01ADummy C:AVISITN20015 -4.898 3.01e-06 ***
## TRT01ADummy A:AVISITN20022 -6.492 2.08e-09 ***
## TRT01ADummy B:AVISITN20022 -4.163 5.96e-05 ***
## TRT01ADummy C:AVISITN20022 -4.907 2.93e-06 ***
## TRT01ADummy A:AVISITN20028 -6.667 7.86e-10 ***
## TRT01ADummy B:AVISITN20028 -4.651 8.38e-06 ***
## TRT01ADummy C:AVISITN20028 -4.551 1.26e-05 ***
## TRT01ADummy A:AVISITN20999 -6.658 8.21e-10 ***
## TRT01ADummy B:AVISITN20999 -4.667 7.85e-06 ***
## TRT01ADummy C:AVISITN20999 -4.718 6.36e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Covariance estimate:
## 20000 20002 20008 20015 20022 20028 20999
## 20000 4.8615 7.1999 9.5082 8.8132 7.7296 7.7366 7.7860
## 20002 7.1999 136.4970 104.0091 99.7193 103.7619 100.1954 100.7365
## 20008 9.5082 104.0091 130.5322 108.6342 107.5401 106.3228 105.8630
## 20015 8.8132 99.7193 108.6342 136.1637 132.7838 126.2582 125.5094
## 20022 7.7296 103.7619 107.5401 132.7838 174.3411 157.3041 157.9642
## 20028 7.7366 100.1954 106.3228 126.2582 157.3041 164.2747 164.2165
## 20999 7.7860 100.7365 105.8630 125.5094 157.9642 164.2165 165.0247
# 加载必要的包
library(readxl)
library(ggplot2)
# 读取数据1
admadrs <- read_excel("/Users/qiujiahui/Desktop/dummy A.xlsx",
sheet = "Sheet1", col_names = TRUE,
col_types = NULL, na = "", skip = 0)
head(admadrs)
## # A tibble: 6 × 49
## USUBJID ASEQ ADY AVISIT AVISITN APHASE APHASEN PHADY TRT01A TRT01AN TRT02A
## <chr> <dbl> <dbl> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <chr>
## 1 5413541… 257 1 Basel… 20000 DOUBL… 1 1 Dummy… 1 Esket…
## 2 5413541… 258 3 Day 2… 20002 DOUBL… 1 3 Dummy… 1 Esket…
## 3 5413541… 259 8 Day 8… 20008 DOUBL… 1 8 Dummy… 1 Esket…
## 4 5413541… 260 15 Day 1… 20015 DOUBL… 1 15 Dummy… 1 Esket…
## 5 5413541… 261 22 Day 2… 20022 DOUBL… 1 22 Dummy… 1 Esket…
## 6 5413541… 262 29 Day 2… 20028 DOUBL… 1 29 Dummy… 1 Esket…
## # ℹ 38 more variables: TRT02AN <dbl>, TRTSEQA <chr>, TRTSEQAN <dbl>,
## # PARAMCD <chr>, PARAMN <dbl>, PARAM <chr>, PARAMTYP <chr>, AVAL <dbl>,
## # AVALC <chr>, BASE <dbl>, CHG <dbl>, PCHG <dbl>, DTYPE <chr>, ANL01FL <chr>,
## # ANL02FL <chr>, ABLFL <chr>, VISIT <chr>, VISITNUM <dbl>, QSSEQ <lgl>,
## # QSCAT <lgl>, QSDTC <chr>, QSORRES <lgl>, SAFFL <chr>, FASFL <chr>,
## # RANDFL <chr>, RL2FL <chr>, OLFL <chr>, OBSFL <chr>, AGE <dbl>, AGEU <chr>,
## # SEX <chr>, RACE <chr>, COUNTRY <chr>, ETHNIC <chr>, SITEID <chr>, …
# 删除重复的时间点
admadrs <- admadrs[!duplicated(admadrs[c("USUBJID", "AVISIT")]), ]
# Assuming SITEID is a factor, if not convert it to a factor
admadrs$SITEID <- as.factor(admadrs$SITEID)
options(repr.plot.width=15,repr.plot.height=15)
# Create the boxplot A
ggplot(admadrs, aes(x = SITEID, y = CHG)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Boxplot of CHG by SITEID (dummy A)", x = "SITEID", y = "CHG")+
coord_flip()
## Warning: Removed 237 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
# 读取数据2
admadrs <- read_excel("/Users/qiujiahui/Desktop/dummy B.xlsx",
sheet = "Sheet1", col_names = TRUE,
col_types = NULL, na = "", skip = 0)
head(admadrs)
## # A tibble: 6 × 49
## USUBJID ASEQ ADY AVISIT AVISITN APHASE APHASEN PHADY TRT01A TRT01AN TRT02A
## <chr> <dbl> <dbl> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <chr>
## 1 5413541… 257 1 Basel… 20000 DOUBL… 1 1 Dummy… 2 Esket…
## 2 5413541… 258 3 Day 2… 20002 DOUBL… 1 3 Dummy… 2 Esket…
## 3 5413541… 259 8 Day 8… 20008 DOUBL… 1 8 Dummy… 2 Esket…
## 4 5413541… 260 15 Day 1… 20015 DOUBL… 1 15 Dummy… 2 Esket…
## 5 5413541… 261 21 Day 2… 20022 DOUBL… 1 21 Dummy… 2 Esket…
## 6 5413541… 262 29 Day 2… 20028 DOUBL… 1 29 Dummy… 2 Esket…
## # ℹ 38 more variables: TRT02AN <dbl>, TRTSEQA <chr>, TRTSEQAN <dbl>,
## # PARAMCD <chr>, PARAMN <dbl>, PARAM <chr>, PARAMTYP <chr>, AVAL <dbl>,
## # AVALC <chr>, BASE <dbl>, CHG <dbl>, PCHG <dbl>, DTYPE <chr>, ANL01FL <chr>,
## # ANL02FL <chr>, ABLFL <chr>, VISIT <chr>, VISITNUM <dbl>, QSSEQ <lgl>,
## # QSCAT <lgl>, QSDTC <chr>, QSORRES <lgl>, SAFFL <chr>, FASFL <chr>,
## # RANDFL <chr>, RL2FL <chr>, OLFL <chr>, OBSFL <chr>, AGE <dbl>, AGEU <chr>,
## # SEX <chr>, RACE <chr>, COUNTRY <chr>, ETHNIC <chr>, SITEID <chr>, …
# 删除重复的时间点
admadrs <- admadrs[!duplicated(admadrs[c("USUBJID", "AVISIT")]), ]
# Assuming SITEID is a factor, if not convert it to a factor
admadrs$SITEID <- as.factor(admadrs$SITEID)
options(repr.plot.width=15,repr.plot.height=15)
# Create the boxplot B
ggplot(admadrs, aes(x = SITEID, y = CHG)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Boxplot of CHG by SITEID (dummy B)", x = "SITEID", y = "CHG")+
coord_flip()
## Warning: Removed 120 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
# 读取数据3
admadrs <- read_excel("/Users/qiujiahui/Desktop/dummy C.xlsx",
sheet = "Sheet1", col_names = TRUE,
col_types = NULL, na = "", skip = 0)
head(admadrs)
## # A tibble: 6 × 49
## USUBJID ASEQ ADY AVISIT AVISITN APHASE APHASEN PHADY TRT01A TRT01AN TRT02A
## <chr> <dbl> <dbl> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <chr>
## 1 5413541… 269 1 Basel… 20000 DOUBL… 1 1 Dummy… 3 Esket…
## 2 5413541… 270 2 Day 2… 20002 DOUBL… 1 2 Dummy… 3 Esket…
## 3 5413541… 271 8 Day 8… 20008 DOUBL… 1 8 Dummy… 3 Esket…
## 4 5413541… 272 15 Day 1… 20015 DOUBL… 1 15 Dummy… 3 Esket…
## 5 5413541… 273 21 Day 2… 20022 DOUBL… 1 21 Dummy… 3 Esket…
## 6 5413541… 274 28 Day 2… 20028 DOUBL… 1 28 Dummy… 3 Esket…
## # ℹ 38 more variables: TRT02AN <dbl>, TRTSEQA <chr>, TRTSEQAN <dbl>,
## # PARAMCD <chr>, PARAMN <dbl>, PARAM <chr>, PARAMTYP <chr>, AVAL <dbl>,
## # AVALC <chr>, BASE <dbl>, CHG <dbl>, PCHG <dbl>, DTYPE <chr>, ANL01FL <chr>,
## # ANL02FL <chr>, ABLFL <chr>, VISIT <chr>, VISITNUM <dbl>, QSSEQ <lgl>,
## # QSCAT <lgl>, QSDTC <chr>, QSORRES <lgl>, SAFFL <chr>, FASFL <chr>,
## # RANDFL <chr>, RL2FL <chr>, OLFL <chr>, OBSFL <chr>, AGE <dbl>, AGEU <chr>,
## # SEX <chr>, RACE <chr>, COUNTRY <chr>, ETHNIC <chr>, SITEID <chr>, …
# 删除重复的时间点
admadrs <- admadrs[!duplicated(admadrs[c("USUBJID", "AVISIT")]), ]
# Assuming SITEID is a factor, if not convert it to a factor
admadrs$SITEID <- as.factor(admadrs$SITEID)
options(repr.plot.width=15,repr.plot.height=15)
# Create the boxplot C
ggplot(admadrs, aes(x = SITEID, y = CHG)) +
geom_boxplot() +
theme_minimal() +
labs(title = "Boxplot of CHG by SITEID (dummy C)", x = "SITEID", y = "CHG")+
coord_flip()
## Warning: Removed 119 rows containing non-finite outside the scale range
## (`stat_boxplot()`).