#include<stdio.h>
#include<math.h>
#define N 30
double bxy(double mean_x,double mean_y,double x[],double y[],int n)
{
double a=0,c=0,b_xy=0;
for(int i=0; i<n; i++)
{
a+=(x[i]-mean_x)*(y[i]-mean_y);
c+=pow((y[i]-mean_y),2);
}
b_xy=a/c;
return b_xy;
}
double byx(double mean_x,double mean_y,double x[],double y[],int n)
{
double a=0,c=0,b_yx=0;
for(int i=0; i<n; i++)
{
a+=(x[i]-mean_x)*(y[i]-mean_y);
c+=pow((x[i]-mean_x),2);
}
b_yx=a/c;
return b_yx;
}
int main()
{
double x[N],y[N],sum_x=0,sum_y=0,mean_x,mean_y,r;
int n;
printf("Enter the no of observations : ");
scanf("%d",&n);
printf("Enter the observations for x-series\n");
for(int i=0; i<n; i++)
{
printf("\nObservation no [%d] = ",i+1);
scanf("%lf",&x[i]);
sum_x+=x[i];
}
printf("\nEnter the observations for y-series\n");
for(int i=0; i<n; i++)
{
printf("\nObservation no [%d] = ",i+1);
scanf("%lf",&y[i]);
sum_y+=y[i];
}
mean_x=sum_x/n;
mean_y=sum_y/n;
// printf("mean of x and y is %lf and %lf",mean_x,mean_y);
r=sqrt(bxy(mean_x,mean_y,x,y,n)* byx(mean_x,mean_y,x,y,n));
printf("x\ty\t(x-xbar)\t(y-ybar)\t(x-xbar)sqr\t(y-ybar)sqr\t(x-xbar)(y-ybar)\n");
for (int i=0;i<n;i++)
{
printf("%.0f\t%.0f\t%f\t%f\t%f\t%f\t%f\n",x[i],y[i],x[i]-mean_x,y[i]-mean_y,(x[i]-mean_x)*(x[i]-mean_x),(y[i]-mean_y)*(y[i]-mean_y),(x[i]-mean_x)*(y[i]-mean_y));
}
printf("\nThe regression coefficients of series are %.4lf and %.4lf \n",bxy(mean_x,mean_y,x,y,n), byx(mean_x,mean_y,x,y,n));
printf("The equation of regression of y on x is y = %.3f x + %lf\n",byx(mean_x,mean_y,x,y,n),- byx(mean_x,mean_y,x,y,n)*mean_x+mean_y);
printf("The equation of regression of x on y is x = %.3f y + %lf\n",bxy(mean_x,mean_y,x,y,n),- bxy(mean_x,mean_y,x,y,n)*mean_y+mean_x);
printf("The correlation coefficient r is %lf ",r);
return 0;
}