Problem
Write a program to implement linear regression algorithm.
User has to enter total number of values.
Solution
The solution to compute the linear regression in C programming language is as follows −
Linear regression finds the relationship between two variables by connecting a linear equation to the observed data. One variable is to be an explanatory variable, and the other is a dependent variable.
The logic with regards to linear regression is explained below −
for(i=0;i<n;i++){ printf("enter values of x and y"); scanf("%f%f",&x,&y); sumx=sumx+x; sumxsq=sumxsq+(x*x); sumy=sumy+y; sumxy=sumxy+(x*y); } d=n*sumxsq-sumx*sumx; m=(n*sumxy-sumx*sumy)/d; c=(sumy*sumxsq-sumx*sumxy)/d;
Finally, print m and c.
Example
Following is the C program to compute the linear regression −
#include<math.h> #include<stdio.h> main(){ int n,i; float x,y,m,c,d; float sumx=0,sumxsq=0,sumy=0,sumxy=0; printf("enter the number of values for n:"); scanf("%d",&n); for(i=0;i<n;i++){ printf("enter values of x and y"); scanf("%f%f",&x,&y); sumx=sumx+x; sumxsq=sumxsq+(x*x); sumy=sumy+y; sumxy=sumxy+(x*y); } d=n*sumxsq-sumx*sumx; m=(n*sumxy-sumx*sumy)/d; c=(sumy*sumxsq-sumx*sumxy)/d; printf("M=%f\tC=%f\n",m,c); }
Output
When the above program is executed, it produces the following result −
enter the number of values for n:5 enter values of x and y1 5 enter values of x and y2 6 enter values of x and y2 4 enter values of x and y3 7 enter values of x and y1 1 M=2.000000 C=1.000000