Multiple regression: Difference between revisions
Content added Content deleted
m (→{{header|R}}: use QR instead of the normal equations) |
SqrtNegInf (talk | contribs) (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}}== |