-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathOutput GAMLSS fitted centile tables
93 lines (82 loc) · 4.1 KB
/
Output GAMLSS fitted centile tables
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#The following creates GAMLSS fitted centile curves for BMI, height and weight from LMS smoothed data
library(gamlss)
library(VGAM)
library(foreign)
library(lubridate)
setwd("c:/Users/mqbpjhr4/Documents")
alldata<-read.table("LMStableedited.csv",header=TRUE, sep=",")
alldata<-subset(alldata,!is.na(alldata$BMI),)
length(alldata$ChildID) #44 records removed
alldata$ChildID<-as.factor(alldata$ChildID)
levels(alldata$ChildID) #63339 children
alldata$PostcodeDecile<-ceiling(alldata$PostcodeDecile)
alldata<-alldata[floor(alldata$ageattest/52.12)<12&floor(alldata$ageattest/52.12)>3,]
alldata2<-alldata[order(alldata$ChildID,alldata$AssessmentDate),]
d<-duplicated(alldata2[,c(1,4)])
alldata2<-alldata2[!d,]
length(alldata$ChildID)-length(alldata2$ChildID) #134 duplicate entries removed
alldata<-alldata2
alldata$DateOfBirth<-(as.Date(paste(alldata$DateOfBirth,"-01",sep="")))
alldata$AssessmentDate<-as.Date(paste(alldata$AssessmentDate,"-01",sep=""))
alldata$assyr<-year(as.POSIXlt(alldata$AssessmentDate, format="%Y-%m-%d"))
attach(alldata)
alldata$ChildID<-as.factor(alldata$ChildID)
alldata$SchoolCode<-as.factor(alldata$SchoolCode)
alldata$IsAccountRegistered<-as.factor(alldata$IsAccountRegistered)
alldata$ageattest<-as.integer(alldata$ageattest)
alldata<-alldata[!alldata$AcademicYear=="2011/2012"&!alldata$AcademicYear=="2012/2013",] #Insufficient data from these years
alldata$AcademicYear <- droplevels(alldata$AcademicYear)
#BMI centiles- girls
girls<- subset(alldata, alldata$Gender == "F")[,c(9,13)]
girls$ageattest<-floor(girls$ageattest/4.34524) #Age in months
row.names(girls) <- NULL
m1 <- lms(BMI,ageattest,data=girls, cent=c(3,10,25,50,75,90,97))
girlsbmicentiles<-centiles.pred(m1, xname="ageattest", xvalues=seq(49,138,1), cent=c(3,10,25,50,75,90,97))
a<-table(girls$ageattest)
girlsbmicentiles<-merge(girlsbmicentiles,a,all.xx=TRUE)
write.csv(girlsbmicentiles,file="girlslmsbmi.csv")
#Weight centiles
girls2<- subset(alldata, alldata$Gender == "F")[,c(8,13)]
girls2$ageattest<-floor(girls2$ageattest/4.34524) #Age in months
row.names(girls2) <- NULL
w1 <- lms(WeightKG,ageattest,data=girls2, cent=c(3,10,25,50,75,90,97))
girlswcentiles<-centiles.pred(w1, xname="ageattest", xvalues=seq(49,138,1), cent=c(3,10,25,50,75,90,97))
b<-table(girls2$ageattest)
girlswcentiles<-merge(girlswcentiles,b,all.xx=TRUE)
write.csv(girlswcentiles,file="girlslmsweight.csv
#Height centiles
girls3<- subset(alldata, alldata$Gender == "F")[,c(7,13)]
girls3$ageattest<-floor(girls3$ageattest/4.34524) #Age in months
row.names(girls3) <- NULL
h1 <- lms(HeightCM,ageattest,data=girls3, cent=c(3,10,25,50,75,90,97))
girlshcentiles<-centiles.pred(h1, xname="ageattest", xvalues=seq(49,138,1), cent=c(3,10,25,50,75,90,97))
c<-table(girls32$ageattest)
girlshcentiles<-merge(girlshcentiles,c,all.xx=TRUE)
write.csv(girlshcentiles,file="girlslmsheight.csv")
#BMI centiles- boys
boys<- subset(alldata, alldata$Gender == "M")[,c(9,13)]
boys$ageattest<-floor(boys$ageattest/4.34524)
row.names(boys) <- NULL
m2 <- lms(BMI,ageattest,data=boys, cent=c(3,10,25,50,75,90,97))
boysbmicentiles<-centiles.pred(m2, xname="ageattest", xvalues=seq(49,138,1), cent=c(3,10,25,50,75,90,97))
d<-table(girls2$ageattest)
boysbmicentiles<-merge(boysbmicentiles,d,all.xx=TRUE)
write.csv(boysbmicentiles,file="boyslmsbmi.csv
#Weight centiles
boys2<- subset(alldata, alldata$Gender == "M")[,c(8,13)]
boys2$ageattest<-floor(boys2$ageattest/4.34524)
row.names(boys2) <- NULL
w2 <- lms(WeightKG,ageattest,data=boys2, cent=c(3,10,25,50,75,90,97))
boyswcentiles<-centiles.pred(w2, xname="ageattest", xvalues=seq(49,138,1), cent=c(3,10,25,50,75,90,97))
e<-table(boys2$ageattest)
boyswcentiles<-merge(boyswcentiles,e,all.xx=TRUE)
write.csv(boyswcentiles,file="boyslmsweight.csv")
#Height centiles
boys3<- subset(alldata, alldata$Gender == "M")[,c(7,13)]
boys3$ageattest<-floor(boys3$ageattest/4.34524)
row.names(boys3) <- NULL
h2 <- lms(HeightCM,ageattest,data=boys3, cent=c(3,10,25,50,75,90,97))
boyshcentiles<-centiles.pred(h2, xname="ageattest", xvalues=seq(49,138,1), cent=c(3,10,25,50,75,90,97))
f<-table(boys3$ageattest)
boyshcentiles<-merge(boyshcentiles,f,all.xx=TRUE)
write.csv(boyshcentiles,file="boyslmsheight.csv")