HLM建模,混合模型的理解和領悟

2021-09-11 07:58:32 字數 4274 閱讀 8433

hlm很厲害,但其實就是納入考慮了組間的變異,和mixed model是比較像的,所以導致網上的很多資料都將兩者混為一談。但我覺得還是hlm對分組的限制更顯著,mixed model更像是線性和hlm之間的一種模型。

hlm有自己的一套軟體和操作,安裝包可見附件。

我是用r實現的,整個過程和mixed model的建立非常相近,主要是需要考慮組間的變異。

具體r**可見:

setwd("c:/users/jack/desktop/mission/bmi_hlm")

library(readxl)

mydata <- as.data.frame(read_excel("mydata_new_rcs.xlsx"))

names(mydata)<-c('id','age_week','weight_gain','bmi_group','age1','age2','age3','age4')

#delete the outliers

mydata<-mydata[mydata$weight_gain<39,]#丟去8個異常值

#if need to create the dependant variable

for (i in 1:nrow(mydata)) else if (mydata[i,4]==2) else if (mydata[i,4]==3)

}#build up the model

library(lme4)

model3.1 = lmer(weight_gain ~ age1+age2+age3+age4+ (1|id) +(1+age1|bmi_group)+(1+age2|bmi_group)+(1+age3|bmi_group)+(1+age4|bmi_group), data=mydata,reml=false)

coef(model3.1)

rcs_data <- unique(mydata[c(2,5,6,7,8)])

for (i in 1:nrow(rcs_data))

#bmi 1

plot(mydata$age_week[mydata$bmi_group==1], mydata$weight_gain[mydata$bmi_group==1], col = "red")

points(rcs_data$age_week, rcs_data$mean1, col = "blue", cex = 1.5)

#group1 

group1<-mydata[mydata$bmi_group==1,]

#quantiles

table1<-data.frame(matrix(na,ncol = 5))

for (gtage in sort(unique(group1$age_week)))

#sdresult_sd<-matrix(ncol = 2)

result_sd <- c()

for (gtage in sort(unique(group1$age_week)))

temp_sd<-sqrt(temp_sum/length(group1$weight_gain[group1$age_week==gtage]))

result_sd<-c(result_sd,temp_sd)

}#result1

result1<-as.data.frame(cbind(sort(unique(group1$age_week)),result_sd,na))

i = 1

for (gtage in sort(unique(group1$age_week)))

names(result1)<-c('age','sd','mean')

#group2

group2<-mydata[mydata$bmi_group==2,]

#nas.data.frame(table(group2$age_week))

#quantiles

table2<-data.frame(matrix(na,ncol = 5))

for (gtage in sort(unique(group2$age_week)))

#mean

rcs_data[order(rcs_data$age_week),c(1,7)]

#sdresult_sd2 <- c()

for (gtage in sort(unique(group2$age_week)))

temp_sd<-sqrt(temp_sum/length(group2$weight_gain[group2$age_week==gtage]))

result_sd2<-c(result_sd2,temp_sd)

}as.data.frame(result_sd2)

#result2

result2<-as.data.frame(cbind(sort(unique(group2$age_week)),result_sd2,na))

i = 1

for (gtage in sort(unique(group2$age_week)))

names(result2)<-c('age','sd','mean')

#group3

group3<-mydata[mydata$bmi_group==3,]

#nas.data.frame(table(group3$age_week))

#quantiles

table3<-data.frame(matrix(na,ncol = 5))

for (gtage in sort(unique(group3$age_week)))

#mean

rcs_data[order(rcs_data$age_week),c(1,8)]

#sdresult_sd3 <- c()

for (gtage in sort(unique(group3$age_week)))

temp_sd<-sqrt(temp_sum/length(group3$weight_gain[group3$age_week==gtage]))

result_sd3<-c(result_sd3,temp_sd)

}as.data.frame(result_sd3)

#result3

result3<-as.data.frame(cbind(sort(unique(group3$age_week)),result_sd3,na))

i = 1

for (gtage in sort(unique(group3$age_week)))

names(result3)<-c('age','sd','mean')

#get the quantiles for group1

a=qnorm(p = 0.03,mean = result1$mean,sd = result1$sd)

b=qnorm(p = 0.1,mean = result1$mean,sd = result1$sd)

c=qnorm(p = 0.5,mean = result1$mean,sd = result1$sd)

d=qnorm(p = 0.9,mean = result1$mean,sd = result1$sd)

e=qnorm(p = 0.97,mean = result1$mean,sd = result1$sd)

cbind(a,b,c,d,e)

a=qnorm(p = 0.03,mean = result2$mean,sd = result2$sd)

b=qnorm(p = 0.1,mean = result2$mean,sd = result2$sd)

c=qnorm(p = 0.5,mean = result2$mean,sd = result2$sd)

d=qnorm(p = 0.9,mean = result2$mean,sd = result2$sd)

e=qnorm(p = 0.97,mean = result2$mean,sd = result2$sd)

cbind(a,b,c,d,e)

a=qnorm(p = 0.03,mean = result3$mean,sd = result3$sd)

b=qnorm(p = 0.1,mean = result3$mean,sd = result3$sd)

c=qnorm(p = 0.5,mean = result3$mean,sd = result3$sd)

d=qnorm(p = 0.9,mean = result3$mean,sd = result3$sd)

e=qnorm(p = 0.97,mean = result3$mean,sd = result3$sd)

cbind(a,b,c,d,e)

高斯混合模型的理解

背景相減法進行建模時涉及到了背景模型的建立問題,許多 以及在opencv裡都提供了基於高斯混合模型進行背景更新的方法,無奈涉及到了太多的概率論的東西,大四小白完全看不懂,只能大概理解,下面是找到的幾篇挺有幫助的部落格。高斯混合模型 gmm 及其em演算法的理解 深度理解高斯混合模型 gmm 這篇部落...

模型訓練和模型擬合的幾點理解

模型訓練和模型擬合的幾點理解,歡迎大牛指點 對於我們日常工作,拿到乙個挖掘專案,一般都是先走一遍標準化的資料流程,效果好大家歡喜,效果不好各種調參。這裡有幾點想說 1 在開始挖掘專案之前,是否有評估挖掘專案的可行性?2 挖掘專案可行,現有的資料是否可以支撐專案的開展?3 如何判斷現有資料可支撐需求呢...

3模型大小 混合精度對模型訓練和推理的影響

計算機使用0 1來標識資訊,每個0或每個1代表乙個bit。資訊一般會以下面的三種形式表示 1 字串 字串的最小單元是char,每個char佔8個bit,也就是1個byte。比如字串 abc 這三個字元組成的串占用的儲存空間 儲存空間 1x3 3 bytes 24 bits 2 整數整數包括int4 ...