Significance testing of slopes with replicates I've made replicate measurements of a parameter (fluorescence) which is expected to increase with time, and I'm having a hard time understanding how to test for significance of the slope of the parameter vs. time (using a linear least squares model).
Intuitively, it makes sense to me to combine all time-fluorescence pairs for each replicate into a grand dataset, and look at the significance of the slope of that fit. However, the intercept of the parameter is expected to differ between replicates due to an instrumental artifact. It's not clear to me whether it is legitimate to combine the data for each replicate due to the expected difference in intercepts. Many thanks for any help.
to put this in R terms:
t1 <- 1:10
f1 <- rnorm(10)
t2 <- 1:10
f2 <- rnorm(10)
t3 <- 1:10
f3 <- rnorm(10)

Is it legitimate to look at the significance of the slope of
model <- lm(c(f1, f2, f3) ~ c(t1, t2, t3))

Or should I be doing something different?
 A: It's not legitimate to just fit a line through the whole thing for two reasons:


*

*even if you had only one replicate, you will have autocorrelation in the residuals over time.  Observation at $t_n$ is related to the observation at $t_{n-1}$ so you can't treat them as independent.  There is actually less information in each observation than if they were independent.  So you need a model that takes this into account.

*as it happens, you have three replicates.  The intercept and the slope are likely to vary for each replicate.  You could address this by allowing an interaction of slope and intercept with a fixed factor for replicate, but better is just to treat this as a source of grouped randomness.  
The lme() function in Pinheiro and Bates' library(nlme) can solve both of these problems for you (although working out the exact way to treat the residuals can be quite an involved issue).
In terms of how the data should be structured, I think it's best to have three columns - one for which replicate you have, and one each for the time and for the actual measurement.    As well as being a good format to fit a model to, this is also a good format for drawing plots easily using ggplot2.

So something like this.
library(ggplot2)
library(nlme)

t1 <- 1:10
f1 <- rnorm(10,13,1) + t1 * rnorm(10,3,1)
t2 <- 1:10
f2 <- rnorm(10,14,2) + t1 * rnorm(10,2,.5)
t3 <- 1:10
f3 <- rnorm(10,14,1)  + t1 * rnorm(10,4, 1.5)
fALL <- c(f1, f2, f3)
tALL <- c(t1, t2, t3)
replicate <- rep(c("One", "Two", "Three"), rep(10,3))
fluoro <- data.frame(fALL, tALL, replicate)
rm(f1, f2, f3, t1, t2, t3, replicate) # clean up
fluoro

p <- ggplot(fluoro, aes(x=tALL, y=fALL, color=replicate))
# couple of different versions of the plots
p + geom_line()
p + geom_smooth(method="lm") + geom_point()

 # example only - this may be the wrong error structure
model <- lme(fALL ~ tALL, data=fluoro, random=~1|replicate, correlation=corAR1())

A: If you want to include a different intercept for each of the three sequences of values, you can try 
n <- factor(rep(1:3, each=10))
lm( c(f1, f2, f3) ~ c(t1, t2, t3) + n )

