Description Usage Arguments Details Author(s) See Also Examples

View source: R/recombine_combine.R

Mean coefficient recombination – Calculate the weighted average of parameter estimates for a model fit to each subset

1 |

`...` |
additional attributes to define the combiner (currently only used internally) |

`combMeanCoef`

is passed to the argument `combine`

in `recombine`

This method is designed to calculate the mean of each model coefficient, where the same model has been fit to
subsets via a transformation. The mean is a weighted average of each coefficient, where the weights are the
number of observations in each subset. In particular, `drLM`

and `drGLM`

functions should be
used to add the transformation to the ddo that will be recombined using `combMeanCoef`

.

Ryan Hafen

`divide`

, `recombine`

, `rrDiv`

, `combCollect`

, `combDdo`

, `combDdf`

, `combRbind`

, `combMean`

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 | ```
# Create an irregular number of observations for each species
indexes <- sort(c(sample(1:50, 40), sample(51:100, 37), sample(101:150, 46)))
irisIrr <- iris[indexes,]
# Create a distributed data frame using the irregular iris data set
bySpecies <- divide(irisIrr, by = "Species")
# Fit a linear model of Sepal.Length vs. Sepal.Width for each species
# using 'drLM()' (or we could have used 'drGLM()' for a generlized linear model)
lmTrans <- function(x) drLM(Sepal.Length ~ Sepal.Width, data = x)
bySpeciesFit <- addTransform(bySpecies, lmTrans)
# Average the coefficients from the linear model fits of each species, weighted
# by the number of observations in each species
out1 <- recombine(bySpeciesFit, combine = combMeanCoef)
out1
# A more concise (and readable) way to do it
bySpecies %>%
addTransform(lmTrans) %>%
recombine(combMeanCoef)
# The following illustrates an equivalent, but more tedious approach
lmTrans2 <- function(x) t(c(coef(lm(Sepal.Length ~ Sepal.Width, data = x)), n = nrow(x)))
res <- recombine(addTransform(bySpecies, lmTrans2), combine = combRbind)
colnames(res) <- c("Species", "Intercept", "Sepal.Width", "n")
res
out2 <- c("(Intercept)" = with(res, sum(Intercept * n) / sum(n)),
"Sepal.Width" = with(res, sum(Sepal.Width * n) / sum(n)))
# These are the same
identical(out1, out2)
``` |

datadr documentation built on May 30, 2017, 5:46 a.m.

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.