nparLD
nparLD
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.
Installation
You can install the development version locally with:
devtools::install()Basic example
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)Weighted and unweighted relative effects
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.
Hypothesis types
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 replicates
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.
Classical longitudinal designs
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)