nparLD provides nonparametric methods for the analysis
of longitudinal and repeated-measures data in factorial experiments. The
package implements procedures for hypotheses in marginal distribution
functions and in unweighted relative marginal effects. It supports
crossed factorial designs, missing observations, dependent replicate
measurements, rank- and pseudo-rank-based inference, Wald-type and
ANOVA-type statistics, multiple contrast procedures, and simultaneous
confidence intervals.
You can install the development version locally with:
devtools::install()library(nparLD)
set.seed(123)
T <- 4
n <- c(10, 10, 10)
N <- sum(T * n)
y <- rnorm(N)
times <- c(rep(1:T, n[1]), rep(1:T, n[2]), rep(1:T, n[3]))
grp <- c(rep(1, n[1] * T), rep(2, n[2] * T), rep(3, n[3] * T))
subjects <- c(
sort(rep(1:n[1], T)),
sort(rep((n[1] + 1):(n[1] + n[2]), T)),
sort(rep((n[1] + n[2] + 1):(n[1] + n[2] + n[3]), T))
)
data <- data.frame(times, grp, subjects, y)
fit <- nparLD(
y ~ grp * times,
data = data,
subject = "subjects",
hypothesis = "H0p",
contrast = list("grp:times")
)
fit
plot(fit)
plot(fit$MCTP)The package distinguishes between weighted and unweighted relative marginal effects.
Weighted effects are based on the sample-size weighted reference distribution. They describe relative positions with respect to the empirical distribution obtained by pooling the marginal samples according to their observed sample sizes. Weighted effects are useful as descriptive summaries and correspond to ordinary rank-based estimators.
Unweighted effects are based on an equally weighted reference
distribution over the factorial cells. Each cell contributes equally to
the reference distribution, independently of its sample size. These
effects are the inferential target for hypotheses in relative marginal
effects, selected by hypothesis = "H0p", and are estimated
using pseudo-ranks.
Consequently, tests of hypotheses in relative marginal effects are
performed for unweighted effects. Weighted effects are reported
descriptively, but they are not used as the target of H0p
tests because their interpretation depends on the sample-size allocation
across cells.
````markdown The following example illustrates how the two effect concepts are requested.
data(panic2)
fit_weighted <- nparLD(
resp ~ group * time,
data = panic2,
subject = "subject",
effect = "weighted",
hypothesis = "H0F"
)
fit_unweighted <- nparLD(
resp ~ group * time,
data = panic2,
subject = "subject",
effect = "unweighted",
hypothesis = "H0F"
)
fit_weighted
fit_unweightedThe first analysis reports weighted effects as descriptive summaries
together with tests in marginal distribution functions. The second
analysis targets unweighted relative marginal effects and therefore
provides the appropriate effect scale for H0p.
Use hypothesis = "H0F" to test hypotheses in marginal
distribution functions. These tests compare marginal distribution
functions either using classical ranks with the argument
effect="weighted" or using pseudo-ranks using the argument
effect = "unweighted".
Use hypothesis = "H0p" to test hypotheses in unweighted
relative marginal effects. These effects describe the relative position
of each marginal distribution with respect to a common unweighted
reference distribution and are useful for interpretation, contrasts,
simultaneous confidence intervals, and plots.
Dependent replicate measurements can be specified with the
replicate argument.
datensatz2 <- datensatz[rep(seq_len(nrow(datensatz)), each = 3), ]
datensatz2$rep <- rep(1:3, times = nrow(datensatz))
datensatz2$y <- rnorm(nrow(datensatz2))
fit_rep <- nparLD(
y ~ grp * times,
data = datensatz2,
subject = "subjekte",
replicate = "rep",
hypothesis = "H0p",
cell.weights = "subjects"
)
fit_repFor relative marginal effects, cell.weights = "subjects"
targets a typical subject-condition cell, while
cell.weights = "observations" targets a typical replicate
observation.
Earlier versions of nparLD used design-specific
functions such as ld.f1(), f1.ld.f1(), or
f2.ld.f1(). In the redesigned package, these designs are
specified through one general formula interface.
Typical examples are:
| Classical design | Formula in the redesigned interface | Example |
|---|---|---|
LD-F1 |
resp ~ time |
one repeated-measures factor |
F1-LD-F1 |
resp ~ group * time |
one whole-plot and one repeated-measures factor |
LD-F2 |
resp ~ time1 * time2 |
two repeated-measures factors |
F1-LD-F2 |
resp ~ group * time1 * time2 |
one whole-plot and two repeated-measures factors |
F2-LD-F1 |
resp ~ group1 * group2 * time |
two whole-plot and one repeated-measures factor |
For example, the shoulder data correspond to an F2-LD-F1
design:
data(shoulder)
fit <- nparLD(
resp ~ group1 * group2 * time,
data = shoulder,
subject = "subject",
hypothesis = "H0p",
contrast = list("group1:time")
)
fit
plot(fit)
plot(fit$MCTP)