Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: Module/Algorithm to reduce data points?

by kvale (Monsignor)
on Apr 24, 2006 at 18:29 UTC ( #545345=note: print w/replies, xml ) Need Help??

in reply to Module/Algorithm to reduce data points?

If you simply want to reduce the number of points, use a decimation procedure. For example if you want to eliminate half the points, sort the points on the x or y axis and throw out the odd numbered points, keeping the even points.

If your goal is to somehow approximate the curve that these points lie upon, you want to do some sort of regression, that is, create a statistical model of the process generating the points and fit the parameters of the model. An example module that would do this in the linear case is Statistics::Regression. From the synopsis:

use Statistics::Regression; # Create regression object my $reg = Statistics::Regression->new( 3, "sample regression", [ "const", "someX", "someY" ] ); # Add data points $reg->include( 2.0, [ 1.0, 3.0, -1.0 ] ); $reg->include( 1.0, [ 1.0, 5.0, 2.0 ] ); $reg->include( 20.0, [ 1.0, 31.0, 0.0 ] ); $reg->include( 15.0, [ 1.0, 11.0, 2.0 ] ); # Print the result $reg->print(); # Prints the following: # **************************************************************** # Regression 'sample regression' # **************************************************************** # Theta[0='const']= 0.2950 # Theta[1='someX']= 0.6723 # Theta[2='someY']= 1.0688 # R^2= 0.808, N= 4 # **************************************************************** # Or, to get the values of the coefficients and R^2 my @theta = $reg->theta; my $rsq = $reg->rsq;


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://545345]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2017-09-24 15:47 GMT
Find Nodes?
    Voting Booth?
    During the recent solar eclipse, I:

    Results (274 votes). Check out past polls.