hzTransitionProbabilities: Horizon Transition Probabilities

View source: R/hzTransitionProbabilities.R

hzTransitionProbabilitiesR Documentation

Horizon Transition Probabilities

Description

Functions for creating and working with horizon (sequence) transition probability matrices.

See the following tutorials for some ideas:

Usage

hzTransitionProbabilities(
  x,
  name = GHL(x, required = TRUE),
  loopTerminalStates = FALSE
)

mostLikelyHzSequence(mc, t0, maxIterations = 10)

Arguments

x

a SoilProfileCollection object.

name

A horizon level attribute in x that names horizons.

loopTerminalStates

should terminal states loop back to themselves?

This is useful when the transition probability matrix will be used to initialize a markovchain object. See examples below.

mc

Passed to markovchain conditionalDistribution()

t0

Passed to markovchain conditionalDistribution()

maxIterations

Maximum number of iterations. Default: 10

Value

A square matrix of transition probabilities. See examples.

The function genhzTableToAdjMat() returns a square adjacency matrix. See examples.

The function mostLikelyHzSequence() returns the most likely sequence of horizons, given a markovchain object initialized from horizon transition probabilities and an initial state, t0. See examples.

Note

These functions are still experimental and subject to change.

Author(s)

D.E. Beaudette

See Also

generalize.hz()

Examples


data(sp4)
depths(sp4) <- id ~ top + bottom

# horizon transition probabilities: row -> col transitions
(tp <- hzTransitionProbabilities(sp4, 'name'))


## Not run: 
## plot TP matrix with functions from sharpshootR package
library(sharpshootR)
par(mar=c(0,0,0,0), mfcol=c(1,2))
plotSPC(sp4, name = 'name', name.style = 'center-center')
plotSoilRelationGraph(tp, graph.mode = 'directed', edge.arrow.size=0.5)

## demonstrate genhzTableToAdjMat usage
data(loafercreek, package='soilDB')

# convert contingency table -> adj matrix / TP matrix
tab <- table(loafercreek$hzname, loafercreek$genhz)
m <- genhzTableToAdjMat(tab)

# plot
par(mar=c(0,0,0,0), mfcol=c(1,1))
plotSoilRelationGraph(m, graph.mode = 'directed', edge.arrow.size=0.5)


## demonstrate markovchain integration
library(markovchain)
tp.loops <- hzTransitionProbabilities(sp4, 'name', loopTerminalStates = TRUE)

# init new markovchain from TP matrix
mc <- new("markovchain", states=dimnames(tp.loops)[[1]], transitionMatrix = tp.loops)

# simple plot
plot(mc, edge.arrow.size=0.5)

# check absorbing states
absorbingStates(mc)

# steady-state:
steadyStates(mc)

## End(Not run)


aqp documentation built on Oct. 19, 2024, 5:06 p.m.