# How-to: (Linear ...) regression in Sage

Suppose I have the following set of points r = [(1,2),(3.45,4),(6,5),(4,3)]. How do I implement in Sage a (linear) regression with "bord tools"?

How-to: (Linear ...) regression in Sage

7

It turns out that this has even showed up on Stack Overflow.

Luckily, that page refers to the function I had completely forgotten about - `find_fit`

.

```
sage: find_fit?
String Form: <function find_fit at 0x10bee5cf8>
Namespace: Interactive
File: /Applications/MathApps/sage/local/lib/python2.6/site-packages/sage/numerical/optimize.py
Definition: find_fit(data, model, initial_guess=None, parameters=None, variables=None, solution_dict=False)
Docstring:
Finds numerical estimates for the parameters of the function model
to give a best fit to data.
```

So this might work, and looks decent.

```
sage: R = [[1,2],[3.45,4],[6,5],[4,3]]
sage: var('a,b')
(a, b)
sage: model(x) = a*x+b
sage: find_fit(R,model)
[a == 0.56881365890949054, b == 1.445160655902004]
sage: points(R)+plot(model(a=find_fit(R,model)[0].rhs(),b=find_fit(R,model)[1].rhs()),(x,0,10),color='red')
```

If you are serious about your needs, though, you should probably use some of the tools in Scipy or R (numerous YouTube videos on this, though for reason I can't watch them right now.

1

See also the answers to http://ask.sagemath.org/question/348/plotting-and-fitting

3

```
mydata = [[1,3],[2,7],[3,13],[4,24]]
var('a,b,c')
mymodel(x) = a*x^2 + b*x + c
myfit = find_fit(mydata,mymodel,solution_dict=True)
myfit
points(mydata,color='purple') + plot(
mymodel(
a=myfit[a],
b=myfit[b],
c=myfit[c]
),
(x,0,4,),
color='red'
)
```

0

answered
**
2017-10-06 09:44:29 -0500
**

This post is a wiki. Anyone with karma >750 is welcome to improve it.

Any way to find the Correlation Coefficient r and the Coefficient of Determination r^2 using find_fit()? TIA, AJG calcpage@gmail.com http://shadowfaxrant.blogspot.com http://www.youtube.com/calcpage2009 (www.youtube.com/calcpage2009)

Asked: **
2011-03-15 08:42:53 -0500
**

Seen: **5,487 times**

Last updated: **Aug 04 '12**

SEND+MORE=MONEY (one more time)

Interactivelinearprogramming gives the wrong answer

Linear programming displaying Latex formated equations

Checking what the span is for a vector

The annulus problem in linear programming

SEND+MORE=MONEY (Milp programming)

Yet another linear combination

Finding the matrix of a linear affine transformation and its inverse

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.

Can you clarify 'bord tools'? I'm not familiar with this phrase.

I don't know what "bord tools" means, but you can do all kinds of regression analysis, including linear regression, using the Sage interface to R. There are experts lurking here that I'm sure can give you an example.

I bet it is a translation from French: "avec les outils du bord". It means : using only what already exists in Sage.