The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
With the psfmi
package you can pool logistic regression
models by using
the following pooling methods: RR (Rubin’s Rules), D1, D2, D3 and MPR
(Median R Rule).
You can also use forward or backward selection from the pooled model.
This vignette show you examples of how to apply these procedures.
library(psfmi)
pool_lr <- psfmi_lr(data=lbpmilr, nimp=5, impvar="Impnr",
formula = Chronic ~ Gender + Smoking +
Function + JobControl + JobDemands + SocialSupport,
method="D1")
pool_lr$RR_model
#> $`Step 1 - no variables removed -`
#> term estimate std.error statistic df p.value
#> 1 (Intercept) -0.02145084 2.49485297 -0.008598036 104.09644 0.993156301
#> 2 Gender -0.35445151 0.41807427 -0.847819477 141.28927 0.397972465
#> 3 Smoking 0.07565036 0.34084592 0.221948835 147.74179 0.824660215
#> 4 Function -0.14188458 0.04337897 -3.270815252 132.02927 0.001368147
#> 5 JobControl 0.00690354 0.02053384 0.336203110 88.93815 0.737509628
#> 6 JobDemands 0.00227508 0.03872846 0.058744401 103.72259 0.953268722
#> 7 SocialSupport 0.04434046 0.05750883 0.771019941 126.70867 0.442130487
#> OR lower.EXP upper.EXP
#> 1 0.9787776 0.006951596 137.8108760
#> 2 0.7015581 0.306989710 1.6032584
#> 3 1.0785854 0.549958398 2.1153353
#> 4 0.8677214 0.796369271 0.9454664
#> 5 1.0069274 0.966670925 1.0488604
#> 6 1.0022777 0.928182101 1.0822882
#> 7 1.0453382 0.932895897 1.1713332
Back to Examples
Pooling Logistic regression models over 5 imputed datasets with backward selection using a p-value of 0.05 and as method D1 and forcing the predictor “Smoking” in the models during backward selection.
library(psfmi)
pool_lr <- psfmi_lr(data=lbpmilr, nimp=5, impvar="Impnr",
formula = Chronic ~ Gender + Smoking +
Function + JobControl + JobDemands + SocialSupport,
keep.predictors = "Smoking", method="D1", p.crit=0.05,
direction="BW")
#> Removed at Step 1 is - JobDemands
#> Removed at Step 2 is - JobControl
#> Removed at Step 3 is - SocialSupport
#> Removed at Step 4 is - Gender
#>
#> Selection correctly terminated,
#> No more variables removed from the model
pool_lr$RR_model_final
#> $`Step 5`
#> term estimate std.error statistic df p.value OR
#> 1 (Intercept) 1.20696975 0.48230894 2.5024827 138.9717 0.01349142 3.3433381
#> 2 Smoking 0.06427314 0.33804675 0.1901309 151.8086 0.84946055 1.0663836
#> 3 Function -0.14058914 0.04225212 -3.3273866 121.6357 0.00115993 0.8688462
#> lower.EXP upper.EXP
#> 1 1.2883439 8.6761852
#> 2 0.5468337 2.0795610
#> 3 0.7991282 0.9446467
pool_lr$multiparm_final
#> $`Step 5`
#> p-values D1 F-statistic
#> Smoking 0.8492075865 0.03614977
#> Function 0.0009162863 11.07150131
pool_lr$predictors_out
#> Gender Smoking Function JobControl JobDemands SocialSupport
#> Step 1 0 0 0 0 1 0
#> Step 2 0 0 0 1 0 0
#> Step 3 0 0 0 0 0 1
#> Step 4 1 0 0 0 0 0
#> Removed 1 0 0 1 1 1
Back to Examples
Pooling Logistic regression models over 5 imputed datasets with backward selection using a p-value of 0.05 and as method D1 and forcing the predictor “Smoking” in the models during backward selection.
library(psfmi)
pool_lr <- psfmi_lr(data=lbpmilr, nimp=5, impvar="Impnr",
formula = Chronic ~ Gender + Smoking +
Function + JobControl + JobDemands + SocialSupport,
keep.predictors = "Smoking", method="MPR", p.crit=0.05,
direction="BW")
#> Removed at Step 1 is - JobDemands
#> Removed at Step 2 is - JobControl
#> Removed at Step 3 is - SocialSupport
#> Removed at Step 4 is - Gender
#>
#> Selection correctly terminated,
#> No more variables removed from the model
pool_lr$RR_model_final
#> $`Step 5`
#> term estimate std.error statistic df p.value OR
#> 1 (Intercept) 1.20696975 0.48230894 2.5024827 138.9717 0.01349142 3.3433381
#> 2 Smoking 0.06427314 0.33804675 0.1901309 151.8086 0.84946055 1.0663836
#> 3 Function -0.14058914 0.04225212 -3.3273866 121.6357 0.00115993 0.8688462
#> lower.EXP upper.EXP
#> 1 1.2883439 8.6761852
#> 2 0.5468337 2.0795610
#> 3 0.7991282 0.9446467
pool_lr$multiparm_final
#> $`Step 5`
#> p-value MPR
#> Smoking 0.8734388519
#> Function 0.0003502948
pool_lr$predictors_out
#> Gender Smoking Function JobControl JobDemands SocialSupport
#> Step 1 0 0 0 0 1 0
#> Step 2 0 0 0 1 0 0
#> Step 3 0 0 0 0 0 1
#> Step 4 1 0 0 0 0 0
#> Removed 1 0 0 1 1 1
Back to Examples
Pooling Logistic regression models over 5 imputed datasets with BS using a p-value of 0.05 and as method D2. Several interaction terms, including a categorical predictor, are part of the selection procedure.
library(psfmi)
pool_lr <- psfmi_lr(data=lbpmilr, nimp=5, impvar="Impnr",
formula = Chronic ~ Gender + Smoking +
Function + JobControl + factor(Carrying) +
factor(Satisfaction) +
factor(Carrying):Smoking + Gender:Smoking,
method="D2", p.crit=0.05,
direction="BW")
#> Removed at Step 1 is - JobControl
#> Removed at Step 2 is - factor(Satisfaction)
#> Removed at Step 3 is - Gender*Smoking
#> Removed at Step 4 is - Gender
#> Removed at Step 5 is - Smoking*factor(Carrying)
#> Removed at Step 6 is - Smoking
#> Removed at Step 7 is - Function
#>
#> Selection correctly terminated,
#> No more variables removed from the model
pool_lr$RR_model_final
#> $`Step 8`
#> term estimate std.error statistic df p.value
#> 1 (Intercept) -1.582393 0.3773100 -4.193880 151.2668 4.652717e-05
#> 2 factor(Carrying)2 1.391554 0.4709708 2.954650 144.1330 3.657304e-03
#> 3 factor(Carrying)3 2.248897 0.4750324 4.734198 151.4269 5.010441e-06
#> OR lower.EXP upper.EXP
#> 1 0.2054828 0.09750312 0.4330445
#> 2 4.0210931 1.58510710 10.2006922
#> 3 9.4772792 3.70747175 24.2264342
pool_lr$multiparm_final
#> $`Step 8`
#> p-values D2 F-statistic
#> factor(Carrying) 1.251841e-05 11.29016
pool_lr$predictors_out
#> Gender Smoking Function JobControl factor(Carrying)
#> Step 1 0 0 0 1 0
#> Step 2 0 0 0 0 0
#> Step 3 0 0 0 0 0
#> Step 4 1 0 0 0 0
#> Step 5 0 0 0 0 0
#> Step 6 0 1 0 0 0
#> Step 7 0 0 1 0 0
#> Removed 1 1 1 1 0
#> factor(Satisfaction) Smoking*factor(Carrying) Gender*Smoking
#> Step 1 0 0 0
#> Step 2 1 0 0
#> Step 3 0 0 1
#> Step 4 0 0 0
#> Step 5 0 1 0
#> Step 6 0 0 0
#> Step 7 0 0 0
#> Removed 1 1 1
Back to Examples
Same as above but now forcing several predictors, including interaction terms, in the model during BS.
library(psfmi)
pool_lr <- psfmi_lr(data=lbpmilr, nimp=5, impvar="Impnr",
formula = Chronic ~ Gender + Smoking +
Function + JobControl + factor(Carrying) + factor(Satisfaction) +
factor(Carrying):Smoking + Gender:Smoking,
keep.predictors = c("Smoking*Carrying", "JobControl"), method="D1",
p.crit=0.05, direction="BW")
#> Removed at Step 1 is - Gender*Smoking
#> Removed at Step 2 is - Gender
#> Removed at Step 3 is - factor(Satisfaction)
#> Removed at Step 4 is - Function
pool_lr$RR_model_final
#> $`Step 5`
#> term estimate std.error statistic df
#> 1 (Intercept) -0.810522255 1.3650185 -0.5937812 55.33263
#> 2 Smoking -1.796541680 1.1699026 -1.5356336 65.48650
#> 3 JobControl -0.004625312 0.0216596 -0.2135455 58.16427
#> 4 factor(Carrying)2 0.723452199 0.6214600 1.1641171 107.17663
#> 5 factor(Carrying)3 1.534813529 0.5908820 2.5974958 107.09227
#> 6 Smoking:factor(Carrying)2 2.093737680 1.3149790 1.5922214 66.01171
#> 7 Smoking:factor(Carrying)3 2.370029492 1.3934064 1.7008889 51.83267
#> p.value OR lower.EXP upper.EXP
#> 1 0.55507827 0.4446258 0.02884811 6.852861
#> 2 0.12944599 0.1658715 0.01604000 1.715297
#> 3 0.83164826 0.9953854 0.95315370 1.039488
#> 4 0.24696141 2.0615378 0.60139911 7.066751
#> 5 0.01071096 4.6404601 1.43831227 14.971624
#> 6 0.11611271 8.1151905 0.58760877 112.075110
#> 7 0.09495675 10.6977078 0.65294658 175.268475
pool_lr$multiparm_final
#> $`Step 5`
#> p-values D1 F-statistic
#> Smoking 0.313723002 1.1877289
#> JobControl 0.831291534 0.0456017
#> factor(Carrying) 0.000903194 4.7060389
#> Smoking*factor(Carrying) 0.188926654 1.6841757
pool_lr$predictors_out
#> Gender Smoking Function JobControl factor(Carrying)
#> Step 1 0 0 0 0 0
#> Step 2 1 0 0 0 0
#> Step 3 0 0 0 0 0
#> Step 4 0 0 1 0 0
#> Removed 1 0 1 0 0
#> factor(Satisfaction) Smoking*factor(Carrying) Gender*Smoking
#> Step 1 0 0 1
#> Step 2 0 0 0
#> Step 3 1 0 0
#> Step 4 0 0 0
#> Removed 1 0 1
Back to Examples
Pooling Logistic regression models over 5 imputed datasets with BS using a p-value of 0.05 and as method D1. A spline predictor and interaction term are part of the selection procedure.
library(psfmi)
pool_lr <- psfmi_lr(data=lbpmilr, nimp=5, impvar="Impnr",
formula = Chronic ~ Gender + Smoking +
JobControl + factor(Carrying) + factor(Satisfaction) +
factor(Carrying):Smoking + rcs(Function, 3),
method="D1",
p.crit=0.05, direction="BW")
#> Removed at Step 1 is - JobControl
#> Removed at Step 2 is - Gender
#> Removed at Step 3 is - rcs(Function,3)
#> Removed at Step 4 is - factor(Satisfaction)
#> Removed at Step 5 is - Smoking*factor(Carrying)
#> Removed at Step 6 is - Smoking
#>
#> Selection correctly terminated,
#> No more variables removed from the model
pool_lr$RR_model_final
#> $`Step 7`
#> term estimate std.error statistic df p.value
#> 1 (Intercept) -1.582393 0.3773100 -4.193880 151.2668 4.652717e-05
#> 2 factor(Carrying)2 1.391554 0.4709708 2.954650 144.1330 3.657304e-03
#> 3 factor(Carrying)3 2.248897 0.4750324 4.734198 151.4269 5.010441e-06
#> OR lower.EXP upper.EXP
#> 1 0.2054828 0.09750312 0.4330445
#> 2 4.0210931 1.58510710 10.2006922
#> 3 9.4772792 3.70747175 24.2264342
pool_lr$multiparm_final
#> $`Step 7`
#> p-values D1 F-statistic
#> factor(Carrying) 2.257078e-05 10.8085
pool_lr$predictors_out
#> Gender Smoking JobControl factor(Carrying) factor(Satisfaction)
#> Step 1 0 0 1 0 0
#> Step 2 1 0 0 0 0
#> Step 3 0 0 0 0 0
#> Step 4 0 0 0 0 1
#> Step 5 0 0 0 0 0
#> Step 6 0 1 0 0 0
#> Removed 1 1 1 0 1
#> rcs(Function,3) Smoking*factor(Carrying)
#> Step 1 0 0
#> Step 2 0 0
#> Step 3 1 0
#> Step 4 0 0
#> Step 5 0 1
#> Step 6 0 0
#> Removed 1 1
Back to Examples
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.