管理信息系统小组作业-Read.pptVIP

  • 1
  • 0
  • 约6.64千字
  • 约 24页
  • 2019-06-17 发布于天津
  • 举报
不能预览其他用户文档

第二节 线性回归分析方法算法和程序实现 多元线性回归分析 多元线性回归分析算法和程序实现 逐步回归分析及算法实现 int ReadDat(float xx[][P],float y[]) { FILE *fp; int i=0,j,k; float yy[100][P+1]; if((fp=fopen(expdata1.dat,rb))==NULL) return -1; while(!feof(fp)) { fread(yy[i],sizeof(float),P+1,fp); /*将数据读入工作单元yy*/ i++; } fclose(fp); for(k=0;ki;k++) { for(j=0;jP;j++) xx[k][j]=yy[k][j]; /*自变量xi的观测值*/ y[k]=yy[k][P]; /*应变量y的观测值*/ } return i; } #define N1 38 #define P 8 void main() { int i,j,numlen,n,p; float ymean, U, Q, F,lyy; float xx[N1][P],y[N1]; float x[N1][P+1],xt[P+1][N1],L[P+1][P+1]; float LY[P+1],c[P+1][P+1], B[P+1]; float s[P+1][P+1],ti[P],vi[P],ri[P],fi[P]; clrscr(); -------------------------------------------------- /*读入数据*/ numlen=ReadDat(xx,y); if(numlen==-1) { printf(data file expdata1.dat do not open\n); return; } ------------------------------------------------ /*生成用于计算的矩阵x和xt(xt是x的转置) */ n=38;p=8; /*n样本数,p变量数*/ fun2(xx,n,p,x,xt); /*函数fun2生成用于计算的矩阵x和xt(xt是x的转置) */ ------------------------------------------------- /*根据公式A=XTX计算矩阵A存放在数组L中,常数项存放在数组LY中*/ fun3(x,y,xt,n,p,L,LY); ------------------------------------------------- /*求正规方程的系数方程L的逆矩阵,存放在数组c中 */ p=P; for(i=0;iP+1;i++) for(j=0;jP+1;j++) s[i][j]=L[i][j]; /*s是用于计算的中间单元 jzqiuni(s,c); ----------------------------------------------------- /*根据公式b=A-1B计算回归系数,对于本例,数组c存放的是A-1,LY存放的是B,计算结果存放在数组B中*/ jzcf1(c,LY, p, p, B); for(i=0;iP+1;i++) printf(%.4f ,B[i]); ------------------------------------------------- /* 计算打印方差分析表和复相关系数、标准差 */ N=38;p=P; for(ymean=0,i=0;in;i++) ymean=ymean+y[i]; ymean=ymean/n; fin6 ( B[], LY[], ymean, U, Q, F, n, p, lyy) --------------------------------------------------- /*计算各回归系数的统计检验量:t检验、F检验、偏回归平方和、偏回归系数*/ /*Q回归平方和,SY剩余标准差,ti[]存放t检验;vi[]存放各变量的偏回归平方和, ri[]存放各变量的偏回归系数, fi[]存放各变量的F检验值*/ fun7(B[], C[][P], Q, SY, p, ti , vi, ri, fi); ---------------------------------------------- /*计算待预报样本的预报值*/ fun8(xn, nn, p, B); /*xn待预报的样本;nn样本数;

文档评论(0)

1亿VIP精品文档

相关文档