电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C语言版的线性回归分析函数

C语言版的线性回归分析函数_第1页
1/13
C语言版的线性回归分析函数_第2页
2/13
C语言版的线性回归分析函数_第3页
3/13
C 语言版的线性回归分析函数 分类: C/C++ 2024-08-03 23:39 13840 人阅读 评论(31) 收藏 举报 语言 c 数学计算 delphi system 前几天,清理出一些十年以前 DOS 下的程序与代码,看来目前也没什么用了,想打个包刻在光碟上,却发现有些代码现在可能还能起作用,其中就有计算一元回归和多元回归的代码,一看代码文件时间,居然是 1993 年的,于是稍作整理,存放在这,分析虽不十分完整,但一般应用是没问题的,最起码,可提供给那些刚学 C 的学生们参考。先看看一元线性回归函数代码: // 求线性回归方程:Y = a + bx// dada[rows*2]数组:X, Y;rows:数据行数;a, b:返回回归系数// SquarePoor[4]:返回方差分析指标: 回归平方和,剩余平方和,回归平方差,剩余平方差// 返回值:0 求解成功,-1 错误int LinearRegression(double *data, int rows, double *a, double *b, double *SquarePoor){ int m; double *p, Lxx = 0.0, Lxy = 0.0, xa = 0.0, ya = 0.0; if (data == 0 || a == 0 || b == 0 || rows < 1) return -1; for (p = data, m = 0; m < rows; m ++) { xa += *p ++; ya += *p ++; } xa /= rows; // X 平均值 ya /= rows; // Y 平均值 for (p = data, m = 0; m < rows; m ++, p += 2) { Lxx += ((*p - xa) * (*p - xa)); // Lxx = Sum((X - Xa)平方) Lxy += ((*p - xa) * (*(p + 1) - ya)); // Lxy = Sum((X - Xa)(Y - Ya)) } *b = Lxy / Lxx; // b = Lxy / Lxx *a = ya - *b * xa; // a = Ya - b*Xa if (SquarePoor == 0) return 0; // 方差分析 SquarePoor[0] = SquarePoor[1] = 0.0; for (p = data, m = 0; m < rows; m ++, p ++) { Lxy = *a + *b * *p ++; SquarePoor[0] += ((Lxy - ya) * (Lxy - ya)); // U(回归平方和) SquarePoor[1] += ((*p - Lxy) * (*p - Lxy)); // Q(剩余平方和) } SquarePoor[2] = SquarePoor[0]; // 回归方差 SquarePoor[3] = SquarePoor[1] / (rows - 2); // 剩余方差 return 0;} 为了理解代码,把几个与代码有关的公式写在下面(回归理论和公式推导就免了,网上搜索到处是,下面的公式图片也是网上搜的,有些公式图形...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C语言版的线性回归分析函数

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部