Univariate Linear Regression in Python

Introduction

Does x predict y?

This is the basic question that linear regression aims to answer, or at least give a hint about. Technically speaking, linear regression is a way of establishing if two variables are related.

In this post we need to be familiar with the idea of both dependent and independent variables. Generally, the dependent variable or "y" is the variable that we are measuring (it can help also to frame this as the outcome). The independent variable or "x" is the variable that is modified or changed. If these two variables are at all correlated, a change in the independent variable should result in a somewhat reliable change in the dependent variable.

For example, lets say we are interested in how rainfall effects umbrella usage, we could hypothesize that the more it rains, the more likely people are to use an umbrella. In this case our independent variable is rainfall lets quantify that as mm per day. Our dependent variable is umbrella usage  and we can choose to quantify this as number of umbrellas seen per day on some particular street. It seems obvious that people would be much more likely to use an umbrella when it is raining, but lets say you actually ran this study for a month and eventually you came up with some data and plotted it on a scatterplot like so:




As you can clearly see, more rain generally equals more umbrellas. We could easily state that a correlation exists between rainfall and umbrella usage. 

If an increase in the independent variable leads to an increase in the dependent variable, it is called a positive correlation. If an increase in the independent variable leads to a decrease in the dependent variable it is called a negative correlation.

This is all fine and dandy when dealing with two variables that are so obviously related. However, when dealing with larger, less clearly related data, researchers needed a way to quantify this relationship, and objectively test if two variables are truly correlated. That is why many techniques including linear regression were developed.

Rather than writing at length about the specific details of how linear regression works, something that has been explained on countless other websites, I would encourage you to read about it somewhere online, say here and then return to the tutorial once you have a solid understanding.

Writing Code

To begin, we will need some example data to work with. Ive chosen the cricket chirps vs degrees Fahrenheit from this lovely website. All I have done is download the excel spreadsheet version and saved it as a .csv file with the name cricket_data.csv and made the headings a tad more informative. You can download the sample data here

It is generally a good idea when working with any new dataset to first visualize it. This could easily be done in excel, but lets instead do it in Python.

Result:



It certainly looks like there is a positive correlation between these two variables, so lets import sk-learn and try to quantify this relationship with linear regression.


After running the above code it reported an R^2 score of 0.69 .  Pretty good considering the scale of the data. You can read more about R^2 or the coefficient of determination here

Getting More Information

We could easily stop here, but for completeness-sake lets gather some more information about the regression.

Coefficient

Getting the coefficient is simple but a little bit hidden in the way sklearn implements linear regression:

Line of Best-Fit

If we want to plot the line of best fit we will need two values, the coefficient and the intercept:


Result:


Pearson Correlation Coefficient

We will calculate the Pearson Correlation Coefficient and the p-value (odds of obtaining this result by chance) in Scipy as sklearn does not support it.

Conclusion

In this blog post we learned the basics of single-variable regression. Much of this translates closely to multivariate regression which I will post about if their is significant interest.

Source Code and Project Repository:

Comments

  1. Thanks for one marvelous posting! I enjoyed reading it; you are a great author. I will make sure to bookmark your blog and may come back someday. I want to encourage that you continue your great posts, have a nice weekend!

    Data Science Training in Bangalore

    ReplyDelete
    Replies
    1. The development of artificial intelligence (AI) has propelled more programming architects, information scientists, and different experts to investigate the plausibility of a vocation in machine learning. Notwithstanding, a few newcomers will in general spotlight a lot on hypothesis and insufficient on commonsense application. machine learning projects for final year In case you will succeed, you have to begin building machine learning projects in the near future.

      Projects assist you with improving your applied ML skills rapidly while allowing you to investigate an intriguing point. Furthermore, you can include projects into your portfolio, making it simpler to get a vocation, discover cool profession openings, and Final Year Project Centers in Chennai even arrange a more significant compensation.


      Data analytics is the study of dissecting crude data so as to make decisions about that data. Data analytics advances and procedures are generally utilized in business ventures to empower associations to settle on progressively Python Training in Chennai educated business choices. In the present worldwide commercial center, it isn't sufficient to assemble data and do the math; you should realize how to apply that data to genuine situations such that will affect conduct. In the program you will initially gain proficiency with the specialized skills, including R and Python dialects most usually utilized in data analytics programming and usage; Python Training in Chennai at that point center around the commonsense application, in view of genuine business issues in a scope of industry segments, for example, wellbeing, promoting and account.

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Hi, thank you very much for new information, i learned something new. Very well written.It was so good to read and usefull to improve knowledge.Keep posting. If you are looking for any big data hadoop related information please visit our website.
    big data hadoop training in bangalore.

    ReplyDelete
  4. Nice blog,I understood the topic very clearly,And want to study more like this.
    Data Scientist Course

    ReplyDelete
  5. Cool stuff you have and you keep overhaul every one of us

    data science course

    ReplyDelete
  6. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article. This article inspired me to read more. keep it up.
    Correlation vs Covariance
    Simple linear regression
    data science interview questions

    ReplyDelete
  7. This is the exact information I am been searching for, Thanks for sharing the required infos with the clear update and required points. To appreciate this I like to share some useful information regarding Microsoft Azure which is latest and newest,

    Data Science Training In Chennai

    Data Science Online Training In Chennai

    Data Science Training In Bangalore

    Data Science Training In Hyderabad

    Data Science Training In Coimbatore

    Data Science Training

    Data Science Online Training

    ReplyDelete
  8. Such a very useful article. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article.

    Simple Linear Regression

    Correlation vs Covariance

    ReplyDelete
  9. I would like to thank you for the efforts you had made for writing this awesome article. This article inspired me to read more. keep it up.
    Correlation vs Covariance
    Simple linear regression
    data science interview questions

    ReplyDelete
  10. Amazing Article ! I would like to thank you for the efforts you had made for writing this awesome article. This article inspired me to read more. keep it up.
    Simple Linear Regression
    Correlation vs covariance
    data science interview questions
    KNN Algorithm

    ReplyDelete
  11. It is amazing and wonderful to visit your site.Thanks for sharing this information,this is useful to me...data science courses

    ReplyDelete
  12. Such a very useful article. Very interesting to read this article. I would like to thank you for the efforts you had made for writing this awesome article
    Data Science Training in Hyderabad
    Data Science course in Hyderabad
    Data Science coaching in Hyderabad
    Data Science Training institute in Hyderabad
    Data Science institute in Hyderabad

    ReplyDelete
  13. Very nice blogs!!! i have to learning for lot of information for this sites…Sharing for wonderful information.Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing, data scientist courses

    ReplyDelete
  14. Attend The Data Analyst Course From ExcelR. Practical Data Analyst Course Sessions With Assured Placement Support From Experienced Faculty. ExcelR Offers The Data Analyst Course.
    Data Analyst Course

    ReplyDelete
  15. The candidates must have a good command of mathematics and statistics to comprehend huge figures. data science course in india

    ReplyDelete
  16. I am reading your post from the beginning, it was so interesting to read & I feel thanks to you for posting such a good blog, keep updates regularly.I want to share about data science courses in malaysia

    ReplyDelete
  17. Impressive blog to be honest definitely this post will inspire many more upcoming aspirants. Eventually, this makes the participants to experience and innovate themselves through knowledge wise by visiting this kind of a blog. Once again excellent job keep inspiring with your cool stuff.

    data science certification in bangalore

    ReplyDelete
  18. This is a splendid website! I"m extremely content with the remarks!.
    data scientist training and placement in hyderabad

    ReplyDelete
  19. Thanks for posting the best information and the blog is very important.data science interview questions and answers

    ReplyDelete
  20. Extraordinary blog filled with an amazing content which no one has touched this subject before. Thanking the blogger for all the terrific efforts put in to develop such an awesome content. Expecting to deliver similar content further too and keep sharing as always.

    Data Science Training

    ReplyDelete
  21. Stupendous blog huge applause to the blogger and hoping you to come up with such an extraordinary content in future. Surely, this post will inspire many aspirants who are very keen in gaining the knowledge. Expecting many more contents with lot more curiosity further.

    Data Science Certification in Bhilai

    ReplyDelete
  22. I was actually browsing the internet for certain information, accidentally came across your blog found it to be very impressive. I am elated to go with the information you have provided on this blog, eventually, it helps the readers whoever goes through this blog. Hoping you continue the spirit to inspire the readers and amaze them with your fabulous content.

    Data Science Course in Faridabad

    ReplyDelete
  23. Thanks for posting the best information and the blog is very good.digital marketing institute in hyderabad

    ReplyDelete
  24. Thanks for posting the best information and the blog is very good.artificial intelligence course in hyderabad

    ReplyDelete
  25. Extremely overall quite fascinating post. I was searching for this sort of data and delighted in perusing this one. Continue posting. A debt of gratitude is in order for sharing. cloud computing course in bangalore

    ReplyDelete
  26. Hi Thanks for Sharing this Valuable Information with us: this is very useful for me. Keep it Up.
    ai course in aurangabad

    ReplyDelete
  27. I would like to thank you for the efforts you had made for writing this information. This article inspired me to read more. keep it up.
    Data science course in pune

    ReplyDelete
  28. Extremely overall quite fascinating post. I was searching for this sort of data and delighted in perusing this one. Continue posting. A debt of gratitude is in order for sharing.data science course in kolhapur

    ReplyDelete
  29. I really appreciate this wonderful post that you have provided for us. I assure this would be beneficial for most of the people.
    data analytics training in hyderabad

    ReplyDelete
  30. I feel extremely appreciative that I read this. It is extremely useful and exceptionally enlightening and I truly took in a ton from it.
    business analytics course in hyderabad

    ReplyDelete
  31. This post is very simple to read and appreciate without leaving any details out. Great work!
    cyber security training malaysia

    ReplyDelete
  32. I want to leave a little comment to support and wish you the best of luck.we wish you the best of luck in all your blogging enedevors
    data science course in thiruvananthapuram

    ReplyDelete
  33. I want to leave a little comment to support and wish you the best of luck.we wish you the best of luck in all your blogging enedevors
    data science training in varanasi

    ReplyDelete
  34. Well, this got me thinking what other workouts are good for those of us who find ourselves on the road or have limited equipment options. data science training in kanpur

    ReplyDelete

Post a Comment