You could use the summation convention built into mgcv:gam for this. See
?linear.functional.terms
for details, but here is some example code, both for the exact match,
you describe, and a noisy version. best, Simon
library(mgcv)
f2 <- function(x) 0.2*x^11*(10*(1-x))^6+10*(10*x)^3*(1-x)^10 ## test func
x <- (1:1000-.5)/1000 ## quadrature points
f <- f2(x) ## function values at x
X <- matrix(x,20,1000,byrow=TRUE)
L <- X*0
for (i in 1:20) L[i,1:50+(i-1)*50] <- 1/50
y <- L%*%f ## average function values in 20 intervals
## estimate f from average values, using summation convention
## in gam. Basically smooth is evaluated at each value in X
## to give a matrix s(X) and then rowSums(s(X)*L) is predictor
## for y ...
b <- gam(y~s(X,by=L,fx=TRUE,k=20))
plot(b,shift=coef(b)[1]) ## estimate
lines(x,f,col=2) ## truth
## noisy version...
y <- y + rnorm(10)*.1 ## add noise to averages
b <- gam(y~s(X,by=L),method="REML")
plot(b,shift=coef(b)[1]) ## estimate
lines(x,f,col=2) ## truth
On 04/12/2012 02:45 PM, Michael Haenlein wrote:
Dear all,
This is probably more related to statistics than to [R] but I hope someone
can give me an idea how to solve it nevertheless:
Assume I have a variable y that is a function of x: y=f(x). I know the
average value of y for different intervals of x. For example, I know that
in the interval[0;x1] the average y is y1, in the interval [x1;x2] the
average y is y2 and so forth.
I would like to find a line of minimum curvature so that the average values
of y in each interval correspond to y1, y2, ...
My idea was to use (cubic) splines. But the problem I have seems somewhat
different to what is usually done with splines. As far as I understand it,
splines help to find a curve that passes a set of given points. But I don't
have any points, I only have average values of y per interval.
If you have any suggestions on how to solve this, I'd love to hear them.
Thanks very much in advance,
Michael
[[alternative HTML version deleted]]
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.