Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Math::GSL::Fit(3)     User Contributed Perl Documentation    Math::GSL::Fit(3)

NAME
       Math::GSL::Fit -	Least-squares functions	for a general linear model
       with one- or two-parameter regression

SYNOPSIS
	   use Math::GSL::Fit qw/:all/;

DESCRIPTION
       The functions in	this module perform least-squares fits to a general
       linear model, y = X c where y is	a vector of n observations, X is an n
       by p matrix of predictor	variables, and the elements of the vector c
       are the p unknown best-fit parameters which are to be estimated.

       Here is a list of all the functions in this module :

       gsl_fit_linear($x, $xstride, $y,	$ystride, $n)
	   This	function computes the best-fit linear regression coefficients
	   (c0,c1) of the model	Y = c_0	+ c_1 X	for the	dataset	($x, $y), two
	   vectors (in form of arrays) of length $n with strides $xstride and
	   $ystride. The errors	on y are assumed unknown so the	variance-
	   covariance matrix for the parameters	(c0, c1) is estimated from the
	   scatter of the points around	the best-fit line and returned via the
	   parameters (cov00, cov01, cov11). The sum of	squares	of the
	   residuals from the best-fit line is returned	in sumsq. Note:	the
	   correlation coefficient of the data can be computed using
	   gsl_stats_correlation (see Correlation), it does not	depend on the
	   fit.	The function returns the following values in this order	: 0 if
	   the operation succeeded, 1 otherwise, c0, c1, cov00,	cov01, cov11
	   and sumsq.

       gsl_fit_wlinear($x, $xstride, $w, $wstride, $y, $ystride, $n)
	   This	function computes the best-fit linear regression coefficients
	   (c0,c1) of the model	Y = c_0	+ c_1 X	for the	weighted dataset ($x,
	   $y),	two vectors (in	form of	arrays)	of length $n with strides
	   $xstride and	$ystride. The vector (also in the form of an array)
	   $w, of length $n and	stride $wstride, specifies the weight of each
	   datapoint. The weight is the	reciprocal of the variance for each
	   datapoint in	y. The covariance matrix for the parameters (c0, c1)
	   is computed using the weights and returned via the parameters
	   (cov00, cov01, cov11). The weighted sum of squares of the residuals
	   from	the best-fit line, \chi^2, is returned in chisq. The function
	   returns the following values	in this	order :	0 if the operation
	   succeeded, 1	otherwise, c0, c1, cov00, cov01, cov11 and sumsq.

       gsl_fit_linear_est($x, $c0, $c1,	$cov00,	$cov01,	$cov11)
	   This	function uses the best-fit linear regression coefficients $c0,
	   $c1 and their covariance $cov00, $cov01, $cov11 to compute the
	   fitted function y and its standard deviation	y_err for the model Y
	   = c_0 + c_1 X at the	point $x. The function returns the following
	   values in this order	: 0 if the operation succeeded,	1 otherwise, y
	   and y_err.

       gsl_fit_mul($x, $xstride, $y, $ystride, $n)
	   This	function computes the best-fit linear regression coefficient
	   c1 of the model Y = c_1 X for the datasets ($x, $y),	two vectors
	   (in form of arrays) of length $n with strides $xstride and
	   $ystride. The errors	on y are assumed unknown so the	variance of
	   the parameter c1 is estimated from the scatter of the points	around
	   the best-fit	line and returned via the parameter cov11. The sum of
	   squares of the residuals from the best-fit line is returned in
	   sumsq.  The function	returns	the following values in	this order : 0
	   if the operation succeeded, 1 otherwise, c1,	cov11 and sumsq.

       gsl_fit_wmul($x,	$xstride, $w, $wstride,	$y, $ystride, $n)
	   This	function computes the best-fit linear regression coefficient
	   c1 of the model Y = c_1 X for the weighted datasets ($x, $y), two
	   vectors (in form of arrays) of length $n with strides $xstride and
	   $ystride. The vector	(also in the form of an	array) $w, of length
	   $n and stride $wstride, specifies the weight	of each	datapoint. The
	   weight is the reciprocal of the variance for	each datapoint in y.
	   The variance	of the parameter c1 is computed	using the weights and
	   returned via	the parameter cov11. The weighted sum of squares of
	   the residuals from the best-fit line, \chi^2, is returned in	chisq.
	   The function	returns	the following values in	this order : 0 if the
	   operation succeeded,	1 otherwise, c1, cov11 and sumsq.

       gsl_fit_mul_est($x, $c1,	$cov11)
	   This	function uses the best-fit linear regression coefficient $c1
	   and its covariance $cov11 to	compute	the fitted function y and its
	   standard deviation y_err for	the model Y = c_1 X at the point $x.
	   The function	returns	the following values in	this order : 0 if the
	   operation succeeded,	1 otherwise, y and y_err.

       For more	informations on	the functions, we refer	you to the GSL offcial
       documentation: <http://www.gnu.org/software/gsl/manual/html_node/>

EXAMPLES
       This example shows how to use the function gsl_fit_linear. It's
       important to see	that the array passed to to function must be an	array
       reference, not a	simple array. Also when	you use	strides, you need to
       initialize all the value	in the range used, otherwise you will get
       warnings.

	   my @norris_x	= (0.2,	337.4, 118.2, 884.6, 10.1, 226.5, 666.3, 996.3,
			       448.6, 777.0, 558.2, 0.4, 0.6, 775.5, 666.9, 338.0,
			       447.5, 11.6, 556.0, 228.1, 995.8, 887.6,	120.2, 0.3,
			       0.3, 556.8, 339.1, 887.2, 999.0,	779.0, 11.1, 118.3,
			       229.2, 669.1, 448.9, 0.5	) ;
	   my @norris_y	= ( 0.1, 338.8,	118.1, 888.0, 9.2, 228.1, 668.5, 998.5,
			       449.1, 778.9, 559.2, 0.3, 0.1, 778.1, 668.8, 339.3,
			       448.9, 10.8, 557.7, 228.3, 998.0, 888.8,	119.6, 0.3,
			       0.6, 557.6, 339.3, 888.0, 998.5,	778.9, 10.2, 117.6,
			       228.9, 668.4, 449.2, 0.2);
	   my $xstride = 2;
	   my $wstride = 3;
	   my $ystride = 5;
	   my ($x, $w, $y);
	   for my $i (0	.. 175)
	   {
	       $x->[$i]	= 0;
	       $w->[$i]	= 0;
	       $y->[$i]	= 0;
	   }

	   for my $i (0	.. 35)
	   {
	       $x->[$i*$xstride] = $norris_x[$i];
	       $w->[$i*$wstride] = 1.0;
	       $y->[$i*$ystride] = $norris_y[$i];
	   }
	   my ($status,	@results) = gsl_fit_linear($x, $xstride, $y, $ystride, 36);

AUTHORS
       Jonathan	"Duke" Leto <jonathan@leto.net>	and Thierry Moisan
       <thierry.moisan@gmail.com>

COPYRIGHT AND LICENSE
       Copyright (C) 2008-2011 Jonathan	"Duke" Leto and	Thierry	Moisan

       This program is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

perl v5.24.1			  2017-07-02		     Math::GSL::Fit(3)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | AUTHORS | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Math::GSL::Fit&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help