Linear Regression Model Fitting Guide
Linear Regression Model Fitting Guide
By Anqi Wu
Who is Anqi Wu
- Postdoc at Columbia with Liam Paninski and John Cunningham
- Research interests:
y = ✓1 x + ✓0
neural response linear weight contrast Intercept
y = ✓ x
x
y =✓
neural response linear weight contrast
?
We are not considering the intercept for simplicity, resulting
in a one-parameter model.
xi
Enjoy!!
Bell Curve
A Gaussian distribution function is defined by
If we generate y from x using However this is the data we observe, with noise.
y = ✓ x
2
y ⇠ N (✓x, )
y = ✓ x + ⌘ encoding model
1 1
(y ✓x)2
p(y|x, ✓) = p e 2 2
1 1
(y 8✓)2
p(y|x = 8, ✓) =p e 2 2
2⇡
2
mean(y) = 8✓
8✓ var(y) = 2
1 1
(y 2✓)2
p(y|x = 2, ✓) =p e 2 2
2⇡
2
mean(y) = 2✓
2✓ 2
var(y) =
encoding model
✓✓✓ =
= 0.5
= 2.2
1.2 <latexit sha1_base64="ma+UDoqMeaR0Nol6xlhWbd5k0II=">AAACB3icbVDLSgNBEJyNrxhfUY9eFoPgadmNil6EoBePEcwDkyXMTnqTIbOzy0yvEEI+wLtX/QVv4tXP8A/8DCfJHkxiQUNR1U13V5AIrtF1v63cyura+kZ+s7C1vbO7V9w/qOs4VQxqLBaxagZUg+ASashRQDNRQKNAQCMY3E78xhMozWP5gMME/Ij2JA85o2ikxzb2Aem161x0iiXXcaewl4mXkRLJUO0Uf9rdmKURSGSCat3y3AT9EVXImYBxoZ1qSCgb0B60DJU0Au2PpheP7ROjdO0wVqYk2lP178SIRloPo8B0RhT7etGbiP95rRTDK3/EZZIiSDZbFKbCxtievG93uQKGYmgIZYqbW23Wp4oyNCHNbdGMClAgxgUTjbcYxDKplx3vzCnfn5cqN1lIeXJEjskp8cglqZA7UiU1wogkL+SVvFnP1rv1YX3OWnNWNnNI5mB9/QJJ0Zlq</latexit>
1 (y ✓x)2
<latexit sha1_base64="1HLYojB8bxtIX8VdSbQk1zvcdq0=">AAACB3icbVDLSsNAFJ34rPVVdekmWARXIamCboSiG5cV7APbUCbTm3boZBJmboQS+gHu3eovuBO3foZ/4Gc4bbOwrQcuHM65l3vvCRLBNbrut7Wyura+sVnYKm7v7O7tlw4OGzpOFYM6i0WsWgHVILiEOnIU0EoU0CgQ0AyGtxO/+QRK81g+4CgBP6J9yUPOKBrpsYMDQHpdcSrdUtl13CnsZeLlpExy1Lqln04vZmkEEpmgWrc9N0E/owo5EzAudlINCWVD2oe2oZJGoP1sevHYPjVKzw5jZUqiPVX/TmQ00noUBaYzojjQi95E/M9rpxhe+RmXSYog2WxRmAobY3vyvt3jChiKkSGUKW5utdmAKsrQhDS3RTMqQIEYF0003mIQy6RRcbxzp3J/Ua7e5CEVyDE5IWfEI5ekSu5IjdQJI5K8kFfyZj1b79aH9TlrXbHymSMyB+vrF0g7mWk=</latexit>
<latexit sha1_base64="MNH2uR2LpvXiOeYyDoIltkSnpPA=">AAACB3icbVDLSsNAFJ34rPVVdekmWARXIamCboSiG5cV7APbUCbTm3boZBJmboQS+gHu3eovuBO3foZ/4Gc4bbOwrQcuHM65l3vvCRLBNbrut7Wyura+sVnYKm7v7O7tlw4OGzpOFYM6i0WsWgHVILiEOnIU0EoU0CgQ0AyGtxO/+QRK81g+4CgBP6J9yUPOKBrpsYMDQHrtOZVuqew67hT2MvFyUiY5at3ST6cXszQCiUxQrduem6CfUYWcCRgXO6mGhLIh7UPbUEkj0H42vXhsnxqlZ4exMiXRnqp/JzIaaT2KAtMZURzoRW8i/ue1Uwyv/IzLJEWQbLYoTIWNsT153+5xBQzFyBDKFDe32mxAFWVoQprbohkVoECMiyYabzGIZdKoON65U7m/KFdv8pAK5JickDPikUtSJXekRuqEEUleyCt5s56td+vD+py1rlj5zBGZg/X1C0afmWg=</latexit>
1
p(y|x, ✓) = p e 2 2
2⇡2⇡
mean(y) = ✓x 1 1
(
p(y|x, ✓) is=unknown
e 2 2
var(y) = 2 2⇡
L(✓|x, y) = p(y|x,
Likelihood: which ✓)leads to the Gaussian distribution
that most likely matches the data points {x, y}?
1 1
(y ✓x)2
L(✓|x, y) = p(y|x, ✓)
✓) = p e 2 2
2⇡
2⇡
<latexit sha1_base64="8Om5nnTmDn6YlI40fdeYnVx+XGU=">AAACEHicbVDLSgNBEJyNrxhfGz16WQxCBAm7UdGLEPTiMYJ5QBLC7KQ3GTL7YKZXDTE/4d2r/oI38eof+Ad+hpNkDyaxoKGo6qaaciPBFdr2t5FaWl5ZXUuvZzY2t7Z3zOxuVYWxZFBhoQhl3aUKBA+gghwF1CMJ1HcF1Nz+9div3YNUPAzucBBBy6fdgHucUdRS28xG+cHT43ETe4D00i6cHbXNnF2wJ7AWiZOQHElQbps/zU7IYh8CZIIq1XDsCFtDKpEzAaNMM1YQUdanXWhoGlAfVGs4eX1kHWqlY3mh1BOgNVH/Xgypr9TAd/WmT7Gn5r2x+J/XiNG7aA15EMUIAZsGebGwMLTGPVgdLoGhGGhCmeT6V4v1qKQMdVszKYpRARLEKKOrceaLWCTVYsE5KRRvT3Olq6SkNNknByRPHHJOSuSGlEmFMPJAXsgreTOejXfjw/icrqaM5GaPzMD4+gWtY5w7</latexit>
p(y|x, ✓ = 0.5) <latexit sha1_base64="hrKwlJcPmCMShMS67F2YIkkBldc=">AAACEHicbVDLSgNBEJz1GeMr0aOXwSBEkLAbBb0IQS8eI5gHJCHMTjrJkNkHM73qsuYnvHvVX/AmXv0D/8DPcPI4mMSChqKqm2rKDaXQaNvf1tLyyuraemojvbm1vbObye5VdRApDhUeyEDVXaZBCh8qKFBCPVTAPFdCzR1cj/zaPSgtAv8O4xBaHuv5ois4QyO1M9kwHz89njSxD8gunULxuJ3J2QV7DLpInCnJkSnK7cxPsxPwyAMfuWRaNxw7xFbCFAouYZhuRhpCxgesBw1DfeaBbiXj14f0yCgd2g2UGR/pWP17kTBP69hzzabHsK/nvZH4n9eIsHvRSoQfRgg+nwR1I0kxoKMeaEco4ChjQxhXwvxKeZ8pxtG0NZOiOZOgQA7TphpnvohFUi0WnNNC8fYsV7qalpQiB+SQ5IlDzkmJ3JAyqRBOHsgLeSVv1rP1bn1Yn5PVJWt6s09mYH39AqovnDk=</latexit>
p(y|x, ✓ = 1.2) <latexit sha1_base64="vEb7HfjhUP/Ma6NQU4iwRwp8m3A=">AAACEHicbVDLSgNBEJz1GeNro0cvi0GIIMvuKuhFCHrxGME8IAlhdtJJhsw+mOlVl5if8O5Vf8GbePUP/AM/w8njYBILGoqqbqopPxZcoeN8G0vLK6tr65mN7ObW9s6umdurqCiRDMosEpGs+VSB4CGUkaOAWiyBBr6Aqt+/HvnVe5CKR+EdpjE0A9oNeYczilpqmbm4kD49njSwB0gvPds7bpl5x3bGsBaJOyV5MkWpZf402hFLAgiRCapU3XVibA6oRM4EDLONREFMWZ92oa5pSANQzcH49aF1pJW21YmknhCtsfr3YkADpdLA15sBxZ6a90bif149wc5Fc8DDOEEI2SSokwgLI2vUg9XmEhiKVBPKJNe/WqxHJWWo25pJUYwKkCCGWV2NO1/EIql4tntqe7dn+eLVtKQMOSCHpEBcck6K5IaUSJkw8kBeyCt5M56Nd+PD+JysLhnTm30yA+PrF6vMnDo=</latexit>
p(y|x, ✓ = 2.2)
✓ = 0.5
<latexit sha1_base64="ma+UDoqMeaR0Nol6xlhWbd5k0II=">AAACB3icbVDLSgNBEJyNrxhfUY9eFoPgadmNil6EoBePEcwDkyXMTnqTIbOzy0yvEEI+wLtX/QVv4tXP8A/8DCfJHkxiQUNR1U13V5AIrtF1v63cyura+kZ+s7C1vbO7V9w/qOs4VQxqLBaxagZUg+ASashRQDNRQKNAQCMY3E78xhMozWP5gMME/Ij2JA85o2ikxzb2Aem161x0iiXXcaewl4mXkRLJUO0Uf9rdmKURSGSCat3y3AT9EVXImYBxoZ1qSCgb0B60DJU0Au2PpheP7ROjdO0wVqYk2lP178SIRloPo8B0RhT7etGbiP95rRTDK3/EZZIiSDZbFKbCxtievG93uQKGYmgIZYqbW23Wp4oyNCHNbdGMClAgxgUTjbcYxDKplx3vzCnfn5cqN1lIeXJEjskp8cglqZA7UiU1wogkL+SVvFnP1rv1YX3OWnNWNnNI5mB9/QJJ0Zlq</latexit>
✓ = 1.2
<latexit sha1_base64="MNH2uR2LpvXiOeYyDoIltkSnpPA=">AAACB3icbVDLSsNAFJ34rPVVdekmWARXIamCboSiG5cV7APbUCbTm3boZBJmboQS+gHu3eovuBO3foZ/4Gc4bbOwrQcuHM65l3vvCRLBNbrut7Wyura+sVnYKm7v7O7tlw4OGzpOFYM6i0WsWgHVILiEOnIU0EoU0CgQ0AyGtxO/+QRK81g+4CgBP6J9yUPOKBrpsYMDQHrtOZVuqew67hT2MvFyUiY5at3ST6cXszQCiUxQrduem6CfUYWcCRgXO6mGhLIh7UPbUEkj0H42vXhsnxqlZ4exMiXRnqp/JzIaaT2KAtMZURzoRW8i/ue1Uwyv/IzLJEWQbLYoTIWNsT153+5xBQzFyBDKFDe32mxAFWVoQprbohkVoECMiyYabzGIZdKoON65U7m/KFdv8pAK5JickDPikUtSJXekRuqEEUleyCt5s56td+vD+py1rlj5zBGZg/X1C0afmWg=</latexit>
✓ = 2.2
<latexit sha1_base64="1HLYojB8bxtIX8VdSbQk1zvcdq0=">AAACB3icbVDLSsNAFJ34rPVVdekmWARXIamCboSiG5cV7APbUCbTm3boZBJmboQS+gHu3eovuBO3foZ/4Gc4bbOwrQcuHM65l3vvCRLBNbrut7Wyura+sVnYKm7v7O7tlw4OGzpOFYM6i0WsWgHVILiEOnIU0EoU0CgQ0AyGtxO/+QRK81g+4CgBP6J9yUPOKBrpsYMDQHpdcSrdUtl13CnsZeLlpExy1Lqln04vZmkEEpmgWrc9N0E/owo5EzAudlINCWVD2oe2oZJGoP1sevHYPjVKzw5jZUqiPVX/TmQ00noUBaYzojjQi95E/M9rpxhe+RmXSYog2WxRmAobY3vyvt3jChiKkSGUKW5utdmAKsrQhDS3RTMqQIEYF0003mIQy6RRcbxzp3J/Ua7e5CEVyDE5IWfEI5ekSu5IjdQJI5K8kFfyZj1b79aH9TlrXbHymSMyB+vrF0g7mWk=</latexit>
L(✓ = 1.2) > L(✓ = 0.5) > L(✓ = 2.2)
<latexit sha1_base64="3Hq/vSdbFpcbXXwyfbfAc6MfcSg=">AAACRnicbVC7SgNBFL0b3/EVtbRZDEJslt2oaKMELbSwUDAPSEKYndwkQ2YfzNwVwpJP8j/srQTtrezE1klMoSYHBg7nnMu9c/xYCk2u+2Jl5uYXFpeWV7Kra+sbm7mt7YqOEsWxzCMZqZrPNEoRYpkESazFClngS6z6/cuRX31ApUUU3tMgxmbAuqHoCM7ISK3cVSNg1ONMpjfDQoN6SOzMc4oH5zN01zmeqRdNvpXLu447hj1NvAnJwwS3rdx7ox3xJMCQuGRa1z03pmbKFAkucZhtJBpjxvusi3VDQxagbqbjDw/tfaO07U6kzAvJHqu/J1IWaD0IfJMcnav/eyNxlldPqHPaTEUYJ4Qh/1nUSaRNkT1qz24LhZzkwBDGlTC32rzHFONkOv6zRZuOUKEcZk013v8ipkml6HiHTvHuKF+6mJS0DLuwBwXw4ARKcA23UAYOj/AMr/BmPVkf1qf19RPNWJOZHfiDDHwDUCCwXA==</latexit>
L(✓|x, y)
Therefore, we could calculate the=optimal
p(y|x, ✓)
by maximizing the likelihood.
i=1
2⇡
N
X X N
1 1
(yi ✓xi )2
= log p + log e 2 2
i=1
2⇡ i=1
X NX
N
N1 1 21 1 1 2 2
L(✓|x,
loglog L(✓|x,
y)y)
==logloglog 2⇡ 2 2 2 (yi(yi ✓x✓x
i) i)
2 2⇡2⇡ 2 2 N2N
i=1
i=1
Enjoy!!
MSE = 0.38
✓est
…
0.9 1.0 1.1 1.2
…
0.9 1.0 1.1 1.2
bad estimate
Anqi Wu ⦁ Model Fitting Week 1 ⦁ Day 3 ⦁ Tutorial 3 29
Assessing Uncertainty by Bootstrap
1. Resampling from the observed dataset.
2. Collect all estimates into a distribution, and analyze the confidence intervals.
95% of bootstrap
samples ➝
confidence intervals
✓true ✓est
good estimate
Anqi Wu ⦁ Model Fitting Week 1 ⦁ Day 3 ⦁ Tutorial 3 30
Assessing Uncertainty by Bootstrap
95% of bootstrap
samples ➝
confidence intervals • In most of real-world applications, we don’t know the
✓true ✓est ground truth.
• But it’s still beneficial to have a distribution rather
than a point estimate.
• With distribution and uncertainty, you have more
0.9 1.0 1.1 1.2
information to make decision.
Enjoy!!
Multiple y = ✓0 + ✓1 x1 + ✓2 x2 + ... + ✓d xd + ⌘
linear model
neural response Assume multiple stimulus features
(e.g., orientation, contrast, etc.)
Build up to y = X✓
matrix version
y1 y2 y0
Index i x1 x2 x0 ✓ 1 ✓ 2 ✓ 0
y1 y2 y0 x1 x2 x0 ✓ 1 ✓ 2 ✓ 0
y1 y2 y0y = Xk + ⌘
x1 x2 x0 ✓ 1 ✓ 2 ✓ 0
design matrix
Anqi Wu ⦁ Model Fitting Week 1 ⦁ Day 3 ⦁ Tutorial 4 36
Geometric Interpretation of MSE
MSE computes the average error between the model prediction ŷ and the true y.
xi
model predict ŷ = ✓1 x1 + ✓2 x2 y = ✓1 x1
Residual + ✓2 x2
y = ✓1 x1 + ✓2 x2
residual e=y ŷ(✓
e= 1 x1
y + ✓(✓2 x
1x2 )1 + ✓2 x2 ) ŷ = ✓1 x1 + ✓2 x2
y = ✓1 x1 + ✓2 x2 Regression Plane
source: [Link]
Index i
y1 y2 y0 x1 x2 x0 ✓ 1 ✓ 2 ✓ 0
(X>>X)
X) 1 1XX>>yy
) ✓
kMSE = (X
MSE =
y = Xk + ⌘
y1 y2 y0 x1 x2 x0 ✓ 1 ✓ 2 ✓ 0
design matrix
Anqi Wu ⦁ Model Fitting Week 1 ⦁ Day 3 ⦁ Tutorial 4 39
MLE solution:
YN N
X
d 2 1 >
argmax log L(✓|X, y) = log log 2⇡ ✓) = log
p(y|X, (y X✓) |xi , ✓)
p(yi(y X✓)= log p(yi |xi , ✓)
2 2 2
i=1 i=1
=
N
X
log p
1
e
1
2 2
(yi ✓ > xi )2 yy =
= X✓
Xk + ⌘
i=1
( 2⇡)d the number of
input features
N
X X N
1 1
(yi ✓ > xi )2 y1 y2 y0 x1 x2 x0 ✓ 1 ✓ 2 ✓ 0 ⌘ 1 ⌘ 2 ⌘ 0
Index i
= log p + log e 2 2
✓1 ✓2 ✓0 ⌘ 1 ⌘ 2 ⌘ 0
( 2⇡) d
i=1 i=1 y1 y2 y0 x1 x2 x
y 0= Xk +⌘
Nd
N
1 X
y = Xk + ⌘
y1 y2 y0 x1 x2 x0 ✓ 1 ✓ 2 ✓ 0 ⌘ 1 ⌘ 2 ⌘ 0
= log 2⇡ 2
2
(yi ✓ > xi ) 2
2 2 i=1
XN 2
N dd 11 > >
⌘ ⇠ N (0, )
222 2
g L(✓|X,=
y) = log log 2⇡
2⇡
2⇡ 22
(y (y
X✓)
i ✓(y xi )X✓)
22 2
i=1 design matrix
Anqi Wu ⦁ Model Fitting Week 1 ⦁ Day 3 ⦁ Tutorial 4 40
MLE solution:
N
⇤ d 2 1 N dd > 222 11 X > > 2
argmax log L(✓|X, = log log
✓ =y)argmax p(y|X, ✓) =
log2⇡L(✓|X, (y log
y)2 = log 2⇡
X✓) 2⇡(y X✓)22(y (y
2⇡ X✓)
i ✓(y xi )X✓)
2 2 22 2
i=1
Index i
@✓ 2
y1 y2 y0 x1 x2 x ✓1 ✓2 ✓0 ⌘ 1 ⌘ 2 ⌘ 0
(X>>X)
X) 1 1XX>>yy y 0= Xk +⌘
) ✓✓
kMLE = (X
MSE =
MSE
y = Xk + ⌘
y1 y2 y0 x1 x2 x0 ✓ 1 ✓ 2 ✓ 0 ⌘ 1 ⌘ 2 ⌘ 0
(same as MSE when the noise is Gaussian)
2
⌘ ⇠ N (0, )
design matrix
Anqi Wu ⦁ Model Fitting Week 1 ⦁ Day 3 ⦁ Tutorial 4 41
Polynomial Regression
P
X
y = ✓0 + ✓1 x + ✓2 x2 + ... + ✓P xP = ✓p xp
p=0
More generally, Build up to
in vector form, matrix version
y = X✓
for one data point i y 1 y 2 y 0 x1 x2 x0
Index i
✓1 ✓2 ✓0
y1 y2 y0 x1 x2 x0 ✓ 1 ✓ 2 ✓ 0
y i = ✓ > xi 8i = 1, ..., N y1 y2 y0 y = Xk + ⌘
x1 x2 x0 ✓ 1 ✓ 2 ✓ 0
The only difference
2nd order
polynomial
Which one is
linear the best?
5th order
polynomial
True model:
2nd order Low model complexity
{
5th order True model:
polynomial 2nd order High model complexity
Bias is small: the 5th order polynomials go
through almost all data points
variance
bias Variance is large: the 5th order polynomials
are much different from each other
best
2nd order model
polynomial
model error
linear
model complexity
underfitting overfitting
Anqi Wu ⦁ Model Fitting Week 1 ⦁ Day 3 ⦁ Tutorial 5 48
Bias-variance Trade-off
Model evaluation aims at estimating the generalization error of the selected model, i.e.,
how well the selected model performs on unseen data.
Training set: data used for fitting Test set: unseen data (not used for fitting)
best test set
2nd order model error (total)
polynomial
linear
test set training set
error (bias)
5th order
polynomial
training set
Enjoy!!
Steps: P
X
0. Define a model to evaluate, e.g. y= ✓p xp when P=1
p=0
1. Take one fold as the test set, the rest as the training set.
2. Fit the model with the training set, and get the optimal ✓p .
3. Estimate MSE on the test set using the above ✓p ,
N
X test P
X
1 2
MSEtest = ( ✓p xptest ytest )
Ntest i=1 p=0
model
P
X
y= ✓p xp
p=0
when P=1
averaged MSE
Anqi Wu ⦁ Model Fitting Week 1 ⦁ Day 3 ⦁ Tutorial 6 54
K-fold Cross Validation
Motivation: one random split could result in a biased training-test distribution
Solution: multiple random splits with k folds.
best
model
model
P
X Repeat the same 4-fold cross validation
y= ✓p xp
on other Ps, i.e. P = {2, 3, 4…}, get
p=0
averaged test MSE
when P=1
averaged MSE
k-fold leave-one-out
…
best
model
N times
Enjoy!!