Posted by Kate on Wednesday, October 3, 2012 at 12:15pm.
I need to create some type of formula that will allow me to interpolate values at specific points in a data set. My data is something like this: I have a list of times, and there are values associated with those times like this:
1 100 103 105
2 103 101 107
3 102 104 108
4.5 107 107 105
7 105 106 104
I need to correct the times (and the corresponding values) so that each timestamp is one second apart. My professor said that the best way to do this would be with a weighted average.
I'm finding it difficult to find a formula that seems correct. I tried solving for the correct time value, ie:
4 = ((3+4.5)/2)x
Where x= the unknown weight, 4 is the corrected timestamp value, and 3 and 4.5 are the known time values. This gives me an X of 16/15. This process works when I know what the value should be (as with the timestamps), but I don't know what the interpolated reading values should be. I thought that maybe once I found the "weight" from the timestamps I could use it to interpolate the readings, but this doesn't seem to provide a reasonable answer. (ie, plugging in 16/15 for x in the equation ((102+107)/2)x provides a value of 111.47, which doesn't make sense). I also thought about multiplying the average by some sort of percent difference from the target value, but this doesn't seem to work either.
The dataset I have is very large so ideally I'd like to find a formula that I can use in a program to do the calculations for me, rather than doing each calculation by hand. Any help or insight would be appreciated.
- Math - weighted average? - Steve, Wednesday, October 3, 2012 at 2:59pm
if you understand interpolation, and you seem to, just think of it this way.
If the value you want is, say, 2/3 of the way from one known value to the next, the readings will also be 2/3 of the way from one value to the next.
so, if you want to place values at 1-unit intervals, you need to step through the given timestamps and whenever you find two timestamps greater than one unit apart, interpolate.
3 and 4.5 are greater than 1 unit apart, so, since 4 is 2/3 of the way between 3 and 4.5, you will generate values 2/3 of the way between those at 3, and those at 4.5.
Since 7 is more than 1 unit away from 4.5, you need to generate data points for times of 5 and 6.
5 is 1/5 of the way from 4 to 7.5
6 is 3/5 of the way.
so, given x-values and y-values,
if xn+1 - xn > 1,
for each number xk between xn and xn+1,
yk = yn + (xk-xn)/(xn+1-xn) * (yn+1-yn)
- Math - weighted average? - Steve, Wednesday, October 3, 2012 at 3:01pm
small oops. 5 is 2/7 of the way from 4 to 7.5, and 6 is 4/7, and 7 is 6/7.
- Math - weighted average? - Kate, Thursday, October 4, 2012 at 1:14pm
This made a lot of sense, thank you for responding! It was able to incorporate it into my program and it seems to work.
Answer This Question
More Related Questions
- math - 4. For Questions 4-7, use the following data: The number of file ...
- statistics - Job Sat. INTR. EXTR. Benefits 5.2 5.5 6.8 1.4 5.1 5.5 5.5 5.4 5.8 5...
- Business - A frequency distribution is obtained by A. listing the values in sets...
- Math - Assume a data set is normally distributed with mean 11 and standard ...
- Math - Assume a data set is normally distributed with mean 182 and standard ...
- math - 10. For questions 10-13, use the following data: 13 29 41 60 89 14 26 53...
- college math - 10. For questions 10-13, use the following data: 13 29 41 60 89 ...
- math question - hi, i have a math question that i need help with: when data are ...
- Math - In Example 2, find the percent of the total and the number of degrees in ...
- c++ - 1. Create a class called Faculty that includes three pieces of information...