Multiple regression: Difference between revisions

Content added Content deleted
m (→‎{{header|R}}: use QR instead of the normal equations)
(Added Perl example)
Line 1,173: Line 1,173:


y*pseudoinv(X)</lang>
y*pseudoinv(X)</lang>

=={{header|Perl}}==
<lang perl>use strict;
use warnings;
use Statistics::Regression;

my @y = (52.21, 53.12, 54.48, 55.84, 57.20, 58.57, 59.93, 61.29, 63.11, 64.47, 66.28, 68.10, 69.92, 72.19, 74.46);
my @x = ( 1.47, 1.50, 1.52, 1.55, 1.57, 1.60, 1.63, 1.65, 1.68, 1.70, 1.73, 1.75, 1.78, 1.80, 1.83);

my @model = ('const', 'X', 'X**2');
my $reg = Statistics::Regression->new( '', [@model] );
$reg->include( $y[$_], [ 1.0, $x[$_], $x[$_]**2 ]) for 0..@y-1;
my @coeff = $reg->theta();

printf "%-6s %8.3f\n", $model[$_], $coeff[$_] for 0..@model-1;</lang>
{{out}}
<pre>const 128.813
X -143.162
X**2 61.960</pre>


=={{header|Perl 6}}==
=={{header|Perl 6}}==