Learn R Programming

adlift (version 0.8-2)

UndoPointsUpdatemp: UndoPointsUpdatemp

Description

This function undoes the update lifting step in the multiple observation inverse transform.

Usage

UndoPointsUpdatemp(X, coeff, nbrs, newnbrs, index, remove, r, N, pointsin,
 gamweights, lengths, lengthrem)

Arguments

X
the vector of grid values.
coeff
the vector of detail and scaling coefficients at that step of the transform.
nbrs
the indices (into X) of the neighbours to be used in the lifting step.
newnbrs
as nbrs, but repeated according to the multiple point structure of the grid.
index
the indices into pointsin of nbrs, the neighbours of remove, the point to be added.
remove
the index (into X) of the point to be added.
r
the index into pointsin of the added point, remove.
N
length(pointsin).
pointsin
The indices of gridpoints still to be added.
gamweights
the prediction weights obtained from the regression in the prediction step of the transform.
lengths
the vector of interval lengths at the present step of the transform.
lengthrem
the interval length associated to the point to be added.

Value

  • coeffvector of (modified) detail and scaling coefficients to be used later in the transform.
  • lengthsvector of interval lengths after inverting the update step of the transform.
  • alphathe weights used to modify lengths and coeff.

Details

This procedure uses minimum norm update coefficients to invert the update step of the transform. The prediction weights are used to change the interval lengthsm before the update weights are used to modify coefflist.

See Also

AdaptNeighmp, AdaptPredmp, CubicPredmp, invtnpmp, LinearPredmp, PointsUpdatemp, QuadPredmp

Examples

Run this code
#read in data with multiple values...

mcdata()

short<-adjustx(times,accel,"mean")
X<-short$sepx
coeff<-short$sepx
g<-short$g

coefflist<-list()
for (i in 1:length(g)){
coefflist[[i]]<-accel[g[[i]]]
}

I<-intervals(X,"reflect")
l<-lengthintervals(X,I$intervals,neighbours=2,closest=TRUE)
lengths<-l$lengths

#work out neighbours of point to be removed (31)

out<-getnbrs(X,31,order(X),2,TRUE)
nbrs<-out$n

nbrs

newnbrs<-NULL
for (i in 1:length(nbrs)){
newnbrs<-c(newnbrs,rep(nbrs[i],times=length(g[[nbrs[i]]])))
}

#work out repeated neighbours using g...
newnbrs

p<-AdaptNeighmp(order(X),X,coefflist,coeff,nbrs,newnbrs,31,TRUE,2,"ave",g)

nbrs<-p$newinfo[[3]]
newnbrs<-NULL
for (i in 1:length(nbrs)){
newnbrs<-c(newnbrs,rep(nbrs[i],times=length(g[[nbrs[i]]])))
}
coefflist[[31]]<-p$results[[6]][31]

u<-PointsUpdatemp(X,coefflist,p$newinfo[[3]],newnbrs,p$newinfo[[4]],31,order(X),p$results[[4]],
lengths,"add")

p2<-setdiff(order(X),31)
a<-which(order(X)==31)
l2<-lengths[setdiff(1:length(X), a)]
#
#remove the lifted coefficient
#
#now undo the update step...
#
undo<-UndoPointsUpdatemp(X,coeff,newnbrs,p$newinfo[[3]],p$newinfo[[4]],31,a,length(X)-1,p2,
p$results[[4]],l2,lengths[a])
#

Run the code above in your browser using DataLab