≥18 to 24 young adults

# 加载必要的包
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

≥18 to 24 young adults 分析

# 加载必要的包
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

middle-aged adults (≥24 to 55 years)

# 加载必要的包
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

≥55 older adults

# 加载必要的包
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

中度抑郁(10-39 分)

# 加载必要的包
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()`).