Simultaneous linear regression with correlated changepoint estimation
tj_fit_m0.6_v1.Rd
For each pixel in a spatiotemporal raster x time datacube,estimate a linear regression model with 0/1 jumps such that the jump event is correlated within neighbouring pixels.
Usage
tj_fit_m0.6_v1(
x,
dat = NULL,
timevar = "z",
attrvar = "values",
niter = 1000,
gamma = 0,
prior_theta = list(m = c(a = 0, b = 0), S = diag(1e+05 * c(1, 1))),
prior_delta = list(m = 0, s2 = 1e+05, a = -Inf, b = Inf),
prior_sigma2 = c(shape = 2, rate = 1),
prior_k = 0.5,
verbose = FALSE,
ctrl = list(burnin = 0.5, thin_steps = 1),
keep_hist = TRUE,
cells_to_ignore = NULL,
ignore_cells_with_na = TRUE,
neighbourhood_type = "square",
neighbourhood_range = 1,
neighbourhood_scale_to_8 = TRUE,
...
)
Arguments
- x
input stars object
- dat
prepared data frame (for development, please dont use).
- niter
number of gibbs sampler interations
- gamma
interaction parameter. Multiplies the kernel-values in the neighbourhood. 0 means no spatial correlation.
- prior_theta
prior (m=vec, S=matrx) for intercept and trend parameter, same for all cells
- prior_delta
prior(m=num, s2=num>0, a=num, b=num>a) truncated normal prior for eac jump, trucate to [a,b]
- prior_k
prior jump probabilities. Either a vector (will be normalised) or a single value for the probability of jump somewhere.
- keep_hist
If TRUE, keep the mcmc trajectories of all variables. If vector of cell indices, keep history for only those (to save space). Give at least 2 cell-indices or logical, otherwise unexpected behaviour. (default: FALSE).
- neighbourhood_type
How is neighbourhood defined (default: "square")
- neighbourhood_range
How large neighbourhood (default: 1)
- neighbourhood_scale_to_8
Logical: Scale the sum of weights over full neighbhourhood to 8?
- ...
ignored
Details
We assume the datacube holds for each pixel (x-y) a series of values (`attrvar`) in time (`timevar`).
The model estimate for each series the best linear regression line such that there might be a jump of size delta after one of the time points 1...T-1. The special estimate "jump after T" means no jump is predicted.
Explanation for `neighbourhood_scale_to_8`: For comparison reasons, the original neighobuhrood was the nearest-8 adjacent pixels. Setting the parameter TRUE will scale sum over any neighbourhood to be 8, to make kernel choice and gamma more independent.