用R做latent growth modeling(潛變量增長模型)

今天上午不是很忙歌憨,貼一個之前用R做的latent growth modeling(潛變量增長模型)。項目背景是給100多個學生做了12次的干預墩衙,想看一下有沒有什么因素對干預效果有影響务嫡。

沒有時間加太多注釋甲抖,大家將就著看一下吧。 根本方法還是用lavaan定義model心铃,這次是把截距 i 和 斜率 s 設定為潛變量准谚,用 不同時間點的測量結果做估計。

教學視頻的話可以看這里

之前寫過一個用R做結構方程模型 的帖子去扣,是我所有文章里閱讀量最高的(已經(jīng)快3000了V巍),如果這個文章閱讀量很高的話愉棱,應該說明大家很需要這方面的教學唆铐,我會考慮再寫一篇稍微詳細一點文章介紹一下步驟。不過對于沒有R基礎的同學奔滑,我還是建議稍微學一下R艾岂,這樣看到下邊的代碼應該就已經(jīng)知道怎么做自己的分析了。

Linear regression and latent growth modeling

Hanchao

June 18, 2018

# 這里有個很重要的一次向加載很多個package的包档押,可以作為一個常用模板
pacman::p_load(readxl,haven,
dplyr,tidyr, purrr, broom,
ggplot2, corrplot, semPlot,
psych,lavaan, mice) 
ggplot(minilit,aes(x=Attend_Percentage,y=WARL_Change,color=Gender))+
  geom_point(alpha=0.8,position="jitter")+
  geom_smooth(method="lm")
image.png
ml_orig <- read_excel("C:/Users/houh1/OneDrive - The University of Melbourne/MiniLit/MiniLit_Path_Data_Clean_20180109 for R analysis.xlsx",sheet = 3)

ml_long <- ml_orig %>%
  gather(time,WARL_score,c(11:23))

ml_long$time <- factor(ml_long$time, levels=c("T0","T1",    "T2",   "T3",   "T4",   
                                              "T5", "T6",   "T7",   "T8",   
                                              "T9", "T10",  "T11",  "T12")
                       )
ml_long <- mutate(ml_long,time_num=as.numeric(time)) #long data to plot

ml_long %>%
  ggplot(aes(x=time,y=WARL_score))+
    geom_boxplot()
## Warning: Removed 547 rows containing non-finite values (stat_boxplot).
image.png
ml_long %>%
  filter(!is.na(WARL_score) & WARL == "Y")%>%
  ggplot(aes(x=time_num,y=WARL_score))+
    geom_point(alpha=0.5)+
    geom_smooth(method="lm",se=FALSE)+
    facet_wrap(~RCT_ID)
image.png
ml_long %>%
  filter(!is.na(WARL_score) & WARL == "Y")%>%
  ggplot(aes(x=time_num,y=WARL_score,color= factor(RCT_ID)))+
 # geom_point(alpha=0.5)+
  geom_smooth(method="lm",se=FALSE,size=0.2,show.legend = FALSE)
image.png
ml_model_use <- ml_orig %>%
  filter(WARL=="Y")%>%
  select(10:23,54)

cor(ml_model_use$Attend_Percentage,ml_model_use$TS_Student_Engage, use="complete.obs")
## [1] 0.2046037
summary(ml_model_use)
##  Attend_Percentage       T0              T1              T2       
##  Min.   :0.08333   Min.   : 0.00   Min.   : 1.00   Min.   : 3.00  
##  1st Qu.:0.73148   1st Qu.: 8.00   1st Qu.:13.25   1st Qu.:17.00  
##  Median :0.79630   Median :12.00   Median :18.50   Median :21.00  
##  Mean   :0.78895   Mean   :11.38   Mean   :20.85   Mean   :23.97  
##  3rd Qu.:0.86730   3rd Qu.:15.00   3rd Qu.:26.75   3rd Qu.:30.00  
##  Max.   :0.98058   Max.   :17.00   Max.   :52.00   Max.   :54.00  
##                                    NA's   :1       NA's   :5      
##        T3              T4              T5              T6       
##  Min.   : 5.00   Min.   : 5.00   Min.   :10.00   Min.   : 6.00  
##  1st Qu.:17.00   1st Qu.:21.00   1st Qu.:23.50   1st Qu.:22.00  
##  Median :25.00   Median :27.00   Median :33.00   Median :31.00  
##  Mean   :24.79   Mean   :29.02   Mean   :34.96   Mean   :32.16  
##  3rd Qu.:30.00   3rd Qu.:34.00   3rd Qu.:43.50   3rd Qu.:42.00  
##  Max.   :51.00   Max.   :62.00   Max.   :75.00   Max.   :76.00  
##  NA's   :32      NA's   :2       NA's   :68      NA's   :18     
##        T7              T8              T9             T10       
##  Min.   : 6.00   Min.   : 9.00   Min.   :12.00   Min.   : 9.00  
##  1st Qu.:27.00   1st Qu.:30.00   1st Qu.:31.00   1st Qu.:29.50  
##  Median :33.00   Median :37.00   Median :37.00   Median :42.00  
##  Mean   :35.82   Mean   :38.71   Mean   :36.39   Mean   :43.14  
##  3rd Qu.:42.00   3rd Qu.:46.50   3rd Qu.:42.75   3rd Qu.:54.75  
##  Max.   :99.00   Max.   :92.00   Max.   :69.00   Max.   :90.00  
##                  NA's   :1       NA's   :29      NA's   :21     
##       T11             T12        TS_Student_Engage
##  Min.   :15.00   Min.   : 8.00   Min.   :3.000    
##  1st Qu.:29.25   1st Qu.:31.00   1st Qu.:3.167    
##  Median :43.00   Median :41.00   Median :3.500    
##  Mean   :43.74   Mean   :43.83   Mean   :3.524    
##  3rd Qu.:53.00   3rd Qu.:55.00   3rd Qu.:4.000    
##  Max.   :88.00   Max.   :93.00   Max.   :4.000    
##  NA's   :37      NA's   :19      NA's   :30
# Missing value imputation
imp <- mice(ml_model_use)
ml_cpl <- complete(imp)
ml_cpl <- ml_cpl %>%
  filter(Attend_Percentage >0.5)
model1 <- ' i =~ 1*T0+1*T1+1*T2+1*T3+1*T4+1*T5+1*T6+1*T7+1*T8+1*T9+1*T10+1*T11+1*T12
           s =~ 0*T0+   1*T1+   2*T2+   3*T3+   4*T4+   5*T5+   6*T6+   7*T7+   8*T8+   9*T9+   10*T10+ 11*T11+ 12*T12
'

model_var <- ' i =~ 1*T0+1*T1+1*T2+1*T3+1*T4+1*T5+1*T6+1*T7+1*T8+1*T9+1*T10+1*T11+1*T12
           s =~ 0*T0+   1*T1+   2*T2+   3*T3+   4*T4+   5*T5+   6*T6+   7*T7+   8*T8+   9*T9+   10*T10+ 11*T11+ 12*T12
            i ~ Attend_Percentage + TS_Student_Engage
            s ~ Attend_Percentage + TS_Student_Engage
          '
fit1 <- growth(model1, data=ml_cpl)
fit_var <- growth(model_var, data=ml_cpl)
summary(fit1,fit.measures=T)
## lavaan (0.6-1) converged normally after  86 iterations
## 
##   Number of observations                            93
## 
##   Estimator                                         ML
##   Model Fit Test Statistic                     598.147
##   Degrees of freedom                                86
##   P-value (Chi-square)                           0.000
## 
## Model test baseline model:
## 
##   Minimum Function Test Statistic             1932.696
##   Degrees of freedom                                78
##   P-value                                        0.000
## 
## User model versus baseline model:
## 
##   Comparative Fit Index (CFI)                    0.724
##   Tucker-Lewis Index (TLI)                       0.750
## 
## Loglikelihood and Information Criteria:
## 
##   Loglikelihood user model (H0)              -3985.910
##   Loglikelihood unrestricted model (H1)      -3686.837
## 
##   Number of free parameters                         18
##   Akaike (AIC)                                8007.821
##   Bayesian (BIC)                              8053.407
##   Sample-size adjusted Bayesian (BIC)         7996.585
## 
## Root Mean Square Error of Approximation:
## 
##   RMSEA                                          0.253
##   90 Percent Confidence Interval          0.234  0.272
##   P-value RMSEA <= 0.05                          0.000
## 
## Standardized Root Mean Square Residual:
## 
##   SRMR                                           1.118
## 
## Parameter Estimates:
## 
##   Information                                 Expected
##   Information saturated (h1) model          Structured
##   Standard Errors                             Standard
## 
## Latent Variables:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   i =~                                                
##     T0                1.000                           
##     T1                1.000                           
##     T2                1.000                           
##     T3                1.000                           
##     T4                1.000                           
##     T5                1.000                           
##     T6                1.000                           
##     T7                1.000                           
##     T8                1.000                           
##     T9                1.000                           
##     T10               1.000                           
##     T11               1.000                           
##     T12               1.000                           
##   s =~                                                
##     T0                0.000                           
##     T1                1.000                           
##     T2                2.000                           
##     T3                3.000                           
##     T4                4.000                           
##     T5                5.000                           
##     T6                6.000                           
##     T7                7.000                           
##     T8                8.000                           
##     T9                9.000                           
##     T10              10.000                           
##     T11              11.000                           
##     T12              12.000                           
## 
## Covariances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##   i ~~                                                
##     s                 1.417    0.841    1.684    0.092
## 
## Intercepts:
##                    Estimate  Std.Err  z-value  P(>|z|)
##    .T0                0.000                           
##    .T1                0.000                           
##    .T2                0.000                           
##    .T3                0.000                           
##    .T4                0.000                           
##    .T5                0.000                           
##    .T6                0.000                           
##    .T7                0.000                           
##    .T8                0.000                           
##    .T9                0.000                           
##    .T10               0.000                           
##    .T11               0.000                           
##    .T12               0.000                           
##     i                19.140    0.991   19.309    0.000
##     s                 2.099    0.088   23.964    0.000
## 
## Variances:
##                    Estimate  Std.Err  z-value  P(>|z|)
##    .T0              111.412   17.079    6.523    0.000
##    .T1               18.699    3.450    5.419    0.000
##    .T2               13.536    2.547    5.315    0.000
##    .T3               12.306    2.232    5.512    0.000
##    .T4               14.522    2.463    5.896    0.000
##    .T5               53.567    8.129    6.590    0.000
##    .T6               24.247    3.857    6.287    0.000
##    .T7               23.761    3.841    6.186    0.000
##    .T8               46.793    7.290    6.419    0.000
##    .T9               18.008    3.290    5.474    0.000
##    .T10              33.597    5.700    5.895    0.000
##    .T11              40.386    6.916    5.839    0.000
##    .T12              41.140    7.335    5.609    0.000
##     i                85.001   13.409    6.339    0.000
##     s                 0.552    0.105    5.257    0.000
semPaths(fit_var)
image.png
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末澳盐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子令宿,更是在濱河造成了極大的恐慌叼耙,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粒没,死亡現(xiàn)場離奇詭異筛婉,居然都是意外死亡,警方通過查閱死者的電腦和手機癞松,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門爽撒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人响蓉,你說我怎么就攤上這事硕勿。” “怎么了枫甲?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵源武,是天一觀的道長。 經(jīng)常有香客問我想幻,道長粱栖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任脏毯,我火速辦了婚禮闹究,結果婚禮上,老公的妹妹穿的比我還像新娘食店。我一直安慰自己渣淤,他們只是感情好赏寇,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著砂代,像睡著了一般蹋订。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刻伊,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音椒功,去河邊找鬼捶箱。 笑死,一個胖子當著我的面吹牛动漾,可吹牛的內(nèi)容都是我干的丁屎。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼旱眯,長吁一口氣:“原來是場噩夢啊……” “哼晨川!你這毒婦竟也來了?” 一聲冷哼從身側響起删豺,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤共虑,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后呀页,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體妈拌,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年蓬蝶,在試婚紗的時候發(fā)現(xiàn)自己被綠了尘分。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡丸氛,死狀恐怖培愁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缓窜,我是刑警寧澤定续,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站雹洗,受9級特大地震影響香罐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜时肿,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一庇茫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧螃成,春花似錦旦签、人聲如沸查坪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偿曙。三九已至,卻和暖如春羔巢,著一層夾襖步出監(jiān)牢的瞬間望忆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工竿秆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留启摄,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓幽钢,卻偏偏與公主長得像歉备,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子匪燕,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容