⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 线性回归.c

📁 应用统计学的线性回归分析
💻 C
字号:
#include <stdio.h>
#include<math.h>
main()
{ float x[100],y[100],x1,y1,Lxx,Lxy,Lyy,U,Qe,Y0,F,h,C0,C1,r,o,t,v,s; 
  float b[100],d[100],e[100],sum,sun,V;
  int i,n;
  printf("输入测量数据的个数:");scanf("%d",&n);
  printf("输入样本x的数据:\n");
  
  sum=0;
  for(i=0;i<n;i++)
  {
	  scanf("%f",&x[i]);
      sum=sum+x[i];
  }
  printf("输入样本y的数据:\n");
  sun=0;
  for(i=0;i<n;i++)
  {
	  scanf("%f",&y[i]);
	  sun=sun+y[i];
  }
  x1=sum/n;
  y1=sun/n;
  Lxx=0;
  for(i=0;i<n;i++)
  {
	  b[i]=(x[i]-x1)*(x[i]-x1);
      Lxx=Lxx+b[i];
  }
  Lyy=0;
  for(i=0;i<n;i++)
  {
	  d[i]=(y[i]-y1)*(y[i]-y1);;
      Lyy=Lyy+d[i];
  }
  Lxy=0;
  for(i=0;i<n;i++)
  {
	  e[i]=(x[i]-x1)*(y[i]-y1);
      Lxy=Lxy+e[i];
  }
  U=Lxy*Lxy/Lxx;
  Qe=Lyy-U;
  F=U*(n-2)/Qe;
  h=Qe/(n-2);
  C1=Lxy/Lxx;
  C0=y1-C1*x1;
  printf("方差来源         平方和     自由度         均方            F\n");
  printf("回    归     %10.3f        1       %10.3f      %10.3f\n",U,U,F);
  printf("剩    余     %10.3f        %d      %10.3f\n",Qe,n-2,h);
  printf("总    和     %10.3f        %d\n",Lyy,n-1);
  printf("\n");
  printf("回归方程为:\n");
  printf("Y=%.3f+%.3fx\n",C0,C1);
  printf("请输入要预测Y0时的x值:\n");
  scanf("%f",&r);
  Y0=C0+C1*r;
  printf("预测值Y0=%.3f\n",Y0);
  s=sqrt(Qe/(n-2));
  printf("请输入显著水平a:\n");
  scanf("%f",&o);
  printf("请输入在显著水平%.3f下的t[%d]:\n",1-o/2,n-2);
  scanf("%f",&t);
  V=1+1/n+(r-x1)*(r-x1)/Lxx;
  v=s*t*sqrt(V);
  printf("y在x=%f下,预测区间为[%.3f,%.3f]!",r,Y0-v,Y0+v);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -