Love Umesi
2022-Jan-26 02:07 UTC
[R] Need help with writing survey design for multilevel analysis
Hello,
I am new in using R, and I need to run a multilevel analysis (on two
levels) using Cox frailty survival model on a survey data (Nigeria
Demographic and Health Survey Data).
My problem is how to write the design weight using the two weights needed
and apply them to the analysis.
I have identified the needed variables for the survey design, which are :
psu/cluster=~v021
individual-level weight=~wt1_1
cluster-level weigh=~wt2_1
strata/stratum=~v022
Please can someone help me with the survey design (svydesign) code and how
to include it and the weights in a model.
I have tried to generate a minimum reproducible data
To view the minimum reproducible data: datapasta::df_paste (head(rcom2018,
10)[, c('pid', 'study_time', 'died', 'v021',
'v022', 'wt2_1', 'wt1_1',
'v024', 'v025', 'mat_edu')])
I understand I have to use svycoxph in the model. Please how do I include
survey design and account for the 2 weights in the gamma frailty model
below?
Frailty1 <- coxph (Surv(study_time, died) ~ factor(v024) + factor(mat_edu)
+ v025 + frailty(v021,distribution="gamma"), data=rcom2018)
Really looking forward to your help as my project is hanging on this.
Many thanks.
Love Umesi
library(survey)#> Warning: package 'survey' was built under R version
4.0.5#> Loading required package: grid#> Loading required package:
Matrix#> Loading required package: survival#> Warning: package
'survival' was built under R version 4.0.5#> #> Attaching package:
'survey'#> The following object is masked from
'package:graphics':#>
#> dotchart
library(survival)
rcom1 <- data.frame(
pid = c(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),
study_time = c(13,9,17,
31,39,22,24,0,23,12,9,35,18,20,60,
18,5,46,26,54,37,51,31,55,27,15,39,6,
29,0,9,40,23,12,35,56,14,40,57,42,
5,42,39,39,54,19,52,42,7,28),
died = c(0,0,0,0,
0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0),
v021 = c(1,1,1,1,
1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,
3,3,3,3,3,3,3,3,3,3,3,3,3,4,4),
v022 = c("1","1",
"1","1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1",
"1"),
v012 = c(40,37,27,
27,24,32,35,35,34,20,28,28,26,24,24,
25,26,26,26,26,28,27,25,25,27,26,
26,21,21,31,36,36,27,23,32,32,33,33,
33,28,25,37,33,34,33,28,28,29,33,33),
wt2_1
c(401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031,
401.200012207031,401.200012207031,
401.200012207031,401.200012207031,401.200012207031),
wt1_1 c(2.5074667930603,2.5074667930603,2.5074667930603,
2.5074667930603,2.5074667930603,2.5074667930603,
2.5074667930603,2.5074667930603,2.5074667930603,
2.5074667930603,2.5074667930603,
2.5074667930603,2.5074667930603,2.5074667930603,
2.5074667930603,5.1194109916687,5.1194109916687,
5.1194109916687,5.1194109916687,5.1194109916687,
5.1194109916687,5.1194109916687,
5.1194109916687,5.1194109916687,5.1194109916687,
5.1194109916687,5.1194109916687,5.1194109916687,
5.1194109916687,5.1194109916687,5.1194109916687,
5.1194109916687,5.1194109916687,
5.1194109916687,2.40910983085632,2.40910983085632,
2.40910983085632,2.40910983085632,2.40910983085632,
2.40910983085632,2.40910983085632,
2.40910983085632,2.40910983085632,2.40910983085632,
2.40910983085632,2.40910983085632,2.40910983085632,
2.40910983085632,1.06203985214233,
1.06203985214233),
v024 = c("1","1",
"1","1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1",
"1"),
v025 = c("1","1",
"1","1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1","1",
"1","1","1","1","1","1","1","1","1",
"1"),
mat_edu = c("5","5",
"5","4","4","5","4","4","4","4","4","4",
"5","5","5","5","5","5","4","4","5",
"4","4","4","5","3","3","4","4","5",
"5","5","5","4","2","2","0","0","0","5",
"5","0","1","5","5","3","3","5","5",
"5")
)
Frailty1 <- coxph (Surv(study_time, died) ~ factor(v024) +
factor(mat_edu) + v025 + frailty(v021,distribution="gamma"),
data=rcom1)#> Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 +
isOF[nn]]): contrasts can be applied only to factors with 2 or more
levels
[[alternative HTML version deleted]]
Jim Lemon
2022-Jan-28 02:47 UTC
[R] Need help with writing survey design for multilevel analysis
Hi Love, I'm not entirely on top of your question, but perhaps if you look at this: https://cran.r-project.org/web/packages/pricesensitivitymeter/vignettes/using-weighted-data.html it will get you started. Feel free to repost if this doesn't solve your problem. Jim On Wed, Jan 26, 2022 at 8:18 PM Love Umesi <yugohlav at gmail.com> wrote:> > Hello, > > I am new in using R, and I need to run a multilevel analysis (on two > levels) using Cox frailty survival model on a survey data (Nigeria > Demographic and Health Survey Data). > > My problem is how to write the design weight using the two weights needed > and apply them to the analysis. > > I have identified the needed variables for the survey design, which are : > > psu/cluster=~v021 > individual-level weight=~wt1_1 > cluster-level weigh=~wt2_1 > strata/stratum=~v022 > > Please can someone help me with the survey design (svydesign) code and how > to include it and the weights in a model. > > I have tried to generate a minimum reproducible data > > To view the minimum reproducible data: datapasta::df_paste (head(rcom2018, > 10)[, c('pid', 'study_time', 'died', 'v021', 'v022', 'wt2_1', 'wt1_1', > 'v024', 'v025', 'mat_edu')]) > > > I understand I have to use svycoxph in the model. Please how do I include > survey design and account for the 2 weights in the gamma frailty model > below? > > Frailty1 <- coxph (Surv(study_time, died) ~ factor(v024) + factor(mat_edu) > + v025 + frailty(v021,distribution="gamma"), data=rcom2018) > > > Really looking forward to your help as my project is hanging on this. > > Many thanks. > > Love Umesi > > library(survey)#> Warning: package 'survey' was built under R version > 4.0.5#> Loading required package: grid#> Loading required package: > Matrix#> Loading required package: survival#> Warning: package > 'survival' was built under R version 4.0.5#> #> Attaching package: > 'survey'#> The following object is masked from 'package:graphics':#> > #> dotchart > library(survival) > > > rcom1 <- data.frame( > pid = c(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), > study_time = c(13,9,17, > 31,39,22,24,0,23,12,9,35,18,20,60, > 18,5,46,26,54,37,51,31,55,27,15,39,6, > 29,0,9,40,23,12,35,56,14,40,57,42, > 5,42,39,39,54,19,52,42,7,28), > died = c(0,0,0,0, > 0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, > 0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, > 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), > v021 = c(1,1,1,1, > 1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2, > 2,2,2,2,2,2,2,2,2,2,2,2,2,2,3, > 3,3,3,3,3,3,3,3,3,3,3,3,3,4,4), > v022 = c("1","1", > "1","1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1", > "1"), > v012 = c(40,37,27, > 27,24,32,35,35,34,20,28,28,26,24,24, > 25,26,26,26,26,28,27,25,25,27,26, > 26,21,21,31,36,36,27,23,32,32,33,33, > 33,28,25,37,33,34,33,28,28,29,33,33), > wt2_1 > c(401.200012207031,401.200012207031,401.200012207031, > 401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031, > 401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031, > 401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031, > 401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031, > 401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031, > 401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031, > 401.200012207031,401.200012207031, > > 401.200012207031,401.200012207031,401.200012207031), > wt1_1 > c(2.5074667930603,2.5074667930603,2.5074667930603, > > 2.5074667930603,2.5074667930603,2.5074667930603, > > 2.5074667930603,2.5074667930603,2.5074667930603, > 2.5074667930603,2.5074667930603, > > 2.5074667930603,2.5074667930603,2.5074667930603, > > 2.5074667930603,5.1194109916687,5.1194109916687, > > 5.1194109916687,5.1194109916687,5.1194109916687, > 5.1194109916687,5.1194109916687, > > 5.1194109916687,5.1194109916687,5.1194109916687, > > 5.1194109916687,5.1194109916687,5.1194109916687, > > 5.1194109916687,5.1194109916687,5.1194109916687, > 5.1194109916687,5.1194109916687, > > 5.1194109916687,2.40910983085632,2.40910983085632, > > 2.40910983085632,2.40910983085632,2.40910983085632, > 2.40910983085632,2.40910983085632, > > 2.40910983085632,2.40910983085632,2.40910983085632, > > 2.40910983085632,2.40910983085632,2.40910983085632, > 2.40910983085632,1.06203985214233, > 1.06203985214233), > v024 = c("1","1", > "1","1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1", > "1"), > v025 = c("1","1", > "1","1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1","1", > "1","1","1","1","1","1","1","1","1", > "1"), > mat_edu = c("5","5", > "5","4","4","5","4","4","4","4","4","4", > "5","5","5","5","5","5","4","4","5", > "4","4","4","5","3","3","4","4","5", > "5","5","5","4","2","2","0","0","0","5", > "5","0","1","5","5","3","3","5","5", > "5") > ) > > Frailty1 <- coxph (Surv(study_time, died) ~ factor(v024) + > factor(mat_edu) + v025 + frailty(v021,distribution="gamma"), > data=rcom1)#> Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + > isOF[nn]]): contrasts can be applied only to factors with 2 or more > levels > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.