you can see just by eyeballing it that there' definitely linear relationship going on thereand that' because we did hardcode real linear relationship in our source data now let' see if we can tease that out and find the best fit line using ordinary least squares we talked about how to do ordinary least squares and linear regressionbut you don' have to do any of that math yourself because the scipy package has tubut package that you can importgspntdjqzjnqpsutubut tmpqfjoufsdfqu @wbmvf @wbmvftue@fss tubutmjosfhsftt qbhf qffetqvsdibtf"npvou you can import tubut from tdjqzand then you can just call tubutmjosfhsftt on your two features sowe have list of page speeds (qbhf qffetand corresponding list of purchase amounts (qvsdibtf"npvouthe mjosfhsftt function will give us back bunch of stuffincluding the slopethe interceptwhich is what need to define my best fit line it also gives us the @wbmvffrom which we can get -squared to measure the quality of that fitand couple of things that we'll talk about later on for nowwe just need slopeinterceptand @wbmvfso let' go ahead and run these we'll begin by finding the linear regression best fits@wbmvf this is what your output should look likenow the -squared value of the line that we got back is that' almost that means we have really good fitwhich isn' too surprising because we made sure there was real linear relationship between this data even though there is some variance around that lineour line captures that variance we have roughly the same amount of variance on either side of the linewhich is good thing it tells us that we do have linear relationship and our model is good fit for the data that we have let' plot that linejnqpsunbuqmpumjcqzqmpubtqmu efgqsfejdu sfuvsotmpqf joufsdfqu gju-jof qsfejdu qbhf qffet qmutdbuufs qbhf qffetqvsdibtf"npvou qmuqmpu qbhf qffetgju-jof qmutipx