I have several datasets of two variables, y and time. Datapoints are objects subject to physical wear, and wear-rates are (roughly) constant over the life of the objects. y is defined as the proportion of the object's mass that has been lost to wear.
At a certain amount of wear, the objects fail and become unobservable. I expect the failure point to be fairly consistent in terms of y - i.e., I expect most objects to fail when they have lost a given proportion of their mass, +/- a negligible amount.
I wish to estimate two parameters as accurately as possible:
1) The mean rate at which objects lose mass to wear
2) The proportion of mass loss at which objects fail and become unobservable
For large datasets, a very coarse method to estimate these parameters would be:
for 1): trim the dataset by time, keeping only arbitrarily 'young' objects. Assume that no wear-related failures have occurred in the population of young objects, and fit a linear regression between mass and time to estimate mean wear-rate.
for 2): estimate the amount of wear at which objects experience wear-rated failure as ~ max(y)
However, this method is likely to return useless estimates for smaller datasets and in datasets where the wear-rate is very slow or the sampled time-range is narrow (i.e., where max(y) is not determined by wear-related failures but by normal wear with few or no failures).
I briefly considered fitting a piecewise regression model with 1) estimated as the slope of the first segment and 2) estimated as the y value at the break-point, but the assumptions of piecewise regression are not met by my datasets - there are not two linear processes forming distinct sections, though the existence of only slow-wearing objects could generate a very similar pattern in the data.
Is there a better way that I could estimate these parameters?
I have written a simulation of the processes underlying my dataset for illustration. Here's an example dataset affected by wear-related loss, with a lowess smoother line (f = 0.1) in red:
In this case, wear-related failure occurred when the objects had 55% of their original mass remaining. Because wear-related failure occurs to the fastest-wearing objects first, this creates an elbow in the smoothed line. Before the elbow, the slope is a good approximation of the mean wear-rate for all objects (parameter 1), and after the elbow, the slope flattens fairly dramatically just above the wear-related failure point (parameter 2). This was why I initially considered a piecewise model to estimate the parameters, though the problems with using a piecewise approach are clear in this figure (most notably, the estimates of Parameter 2 would be substantially upwardly-biased).
The following R code generates the data and figure:
points <- 1000 time <- runif(points, 0, 20000) ## anything up to 20,000 days wearRates <- rnorm(points, (0.022/365), (0.0022/365)) ## typical wear-rates wear <- 1-(time*wearRates) losspoint <- 0.55 ## failure when 55% of initial mass remains observable <- wear > losspoint allPoints <- data.frame(time, wear, observable) data <- subset(allPoints, observable == TRUE) with(data, plot.default(wear ~ time, ylim = c(0,1), ylab="Proportion mass remaining")) lines(lowess(data$time, data$wear, f = 0.1), type = "l", col=2, lwd = 2)