lmeHyperframe: Fits a set of mixed effects models to a hyperframe object

Description Usage Arguments Author(s) Examples

View source: R/RepSppFunctions_new.R

Description

Fits a mixed effects model to a given hyperframe object with K function (K) and weights (wts) elements.

kfunclme and refit.lmek are internally called by lmeHyperframe.

Usage

1
2
3
4
5
6
7
8
9
lmeHyperframe(hyper, r, fixed, random, correlation = NULL, correction =
"border", weights.type, computeK=TRUE, minsamp = NA, printwarnings =
TRUE)

kfuncLme(k, dat, weights, fixed, random, correlation, na.action = na.omit)
refit.lmek(mod, res.r)

## S3 method for class 'kfunctionlme'
print(x, ...)

Arguments

hyper

Hyperframe object created with spatstat(as.hyperframe). Must K and wts elements.

r

Distances at which to model K. Should include 0

fixed

RHS of the fixed effects formula in quotes, without a tilda (e.g. "x1 + x2")

random

RHS of the random effects formula in quotes (e.g. "1|group")

correlation

The correlation argument for models - sent to nlme::lme and must be accepted by nlme::lme.

correction

The edge correction which must correspond to an option in spatstat::Kest

weights.type

The regression weights. Must be one of "nx", "nx_A", "nx2", "nx2_A", "sqrtnxny", "nxny", "nxny_A", "sqrtnxny_A"

computeK

Should K be computed internally. Defaults to TRUE

minsamp

The minimum number of points, after edge corrections, for a case to be included. Cases with fewer points will be excluded and row names returned as an attribute.

printwarnings

Should warnings about case or distance exclusion be reported. Defaults to TRUE

k

A vector corresponding the K(r) for all cases at a given distance r

dat

Data including the covariates used in the fixed and random parts of the model.

weights

The model weights passed to lme.

na.action

How to deal with NAs in the data set. Defaults to na.omit.

mod

An lme model at each distance. Used internally by refit.lmek

res.r

Vector of residuals. Used internally by refit.lmek

x

Object to be printed.

Author(s)

Robert Bagchi Maintainer: Robert Bagchi <[email protected]>

Examples

 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
##---- Should be DIRECTLY executable !! ----
##-- ==>  Define data, use random,
##--	or do  help(data=index)  for the standard data sets.

## The function is currently defined as
function (hyper, r, fixed, random, correlation = NULL, correction = "border", 
    weights.type, minsamp = 10, printwarnings = TRUE) 
{
    if (min(r) > 0) 
        r <- c(0, r)
    if (!all(c("pppx") %in% names(hyper))) {
        stop("hyperframe object must include 'pppx' element")
    }
    hyper$K <- with.hyperframe(hyper, Kest(pppx, r = r, correction = correction, 
        ratio = TRUE))
    hyper$wts <- with.hyperframe(hyper, list(kfunc.weights.calc(pppx, 
        r = K$r, correction = correction, type = weights.type)))
    sp.keep <- sapply(with.hyperframe(hyper, list(kfunc.weights.calc(pppx, 
        r = K$r, correction = correction, type = "nx"))), function(x) all(unlist(x[r]) >= 
        minsamp))
    removed.species <- row.names(hyper)[!sp.keep]
    if (printwarnings) 
        warning(paste("Removed", length(removed.species), "species with insufficient numbers"))
    hyper <- hyper[sp.keep, ]
    dist.keep <- (apply(sapply(hyper$K, function(K) K[[correction]]), 
        1, function(x) var(x)) > 0)
    if (printwarnings) 
        warning(paste("Not modelling K at distances ", paste(r[!dist.keep], 
            collapse = ", "), "due to zero variance"))
    modr <- match(r[dist.keep], r)
    kmods <- sapply(modr, function(i) {
        kfuncLme(k = sapply(hyper$K, function(k) k[[correction]][i]), 
            dat = as.data.frame(hyper, warn = FALSE), fixed = fixed, 
            random = random, correlation = correlation, weights = sapply(hyper$wts, 
                function(w) unlist(w)[i]))
    }, simplify = FALSE)
    names(kmods) <- r[dist.keep]
    return(kmods)
  }

robertbagchi/ReplicatedPointPatterns documentation built on May 25, 2017, 5:19 a.m.