[R] bowed linear approximations

Evans, Richard K. (GRC-H000) richard.k.evans at nasa.gov
Tue Sep 26 16:01:14 CEST 2017


My apologies for the typos in the code. 
Here is a corrected version you can copy/paste in R to see the issue.

freq <- c(2, 3, 5, 10, 50, 100, 200, 300, 500, 750, 1000, 1300, 1800, 2450, 2900, 3000, 4000, 5000, 6000, 7000, 8200, 9300, 10000, 11000, 18000, 26500, 33000, 40000); 
mag <- c(1.9893038, 1.5088071, 1.1851947, 0.9444483, 0.7680123, 0.7458169, 0.7069638, 0.6393066, 0.6261539, 0.6263381, 0.7053774, 0.6900626, 0.6953527, 0.7843036, 0.9056359, 0.8867276, 0.8937421, 0.9492288, 0.9629118, 1.1972268, 1.0010515, 0.9945838, 1.0564356, 0.8733333, 1.1666667, 1.5366667, 1.4666667, 1.3166667);
plot(freq,mag,type="b",log="x");
for(i in 1:200){
xx <- exp(runif(1,log(min(freq)),log(max(freq)) ));
yy <- approx(freq,mag,xout=xx, method = "linear");
points(xx,yy$y,col=rgb(1,0,0));
}

For completeness, I have been puzzling over why the approximated points don't lie linearly over the original data set (especially prominent  in the bow between freq=10 and 50). Once I realized (and concurred with) why this bow exists, I have been struggling with how to make these approximations as expected.. In my original post, I think I oversimplified it too much by implying that my application was just 2 data points.

Are your suggestions still valid do you think?
-Rich


More information about the R-help mailing list