GAMLSS包——LMS生长曲线

参考来自http://psy-data.github.io/2015/theory_page6.html

具体实现是我同学的数据,数据就不贴了,主要放代码

library(dplyr) #好像没有使用到dplyr的函数,可以不载入
library(gamlss)
# 计算儿童的年龄
age=difftime(as.Date("2019-01-01"),gamdata$BIRTH,units = "days")
age=round(age/365) #取整了

# 看一下儿童年龄的范围
max(newdata$age)
min(newdata$age)
gamdata$age=age

# 将Hb1A与年龄合并成新数据集,原始集里有其他变量
dia=gamdata$tanghua
bing=cbind.data.frame(age,dia)

# 缺失值可视化,
library(VIM)
aggr(bing,prop=FALSE,numbers=TRUE)
View(bing)
newdata=na.omit(bing) #删除缺失行
newdata=newdata[newdata$dia!=999,] #删除缺失值999的行

# 模型测试
gammodel=gamlss(dia~cs(age,df=3),family = BCT,data = newdata) #对Hb1A(dia)进行了box-cox变换,这里没有对sigma,tau,nu进行设定,对mu采用了三次样条拟合cs(age,df=3)
plot(gammodel) #绘制模型最后训练的参数的残差图,QQ图等
summary(gammodel) #观测每个参数最终的形式以及他们的估计

#绘制分位数曲线
centiles(gammodel,newdata$age,cent = c(1,99)) #绘制分位数曲线,cent设置图中需要的分位数

# 输出各个年龄下的Hb1A的1,99分位数的具体数值
range(newdata$age)  #观测年龄的取值范围

newx=seq(3,17,2) 
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值