• 大小: 4KB
    文件类型: .java
    金币: 2
    下载: 0 次
    发布日期: 2024-01-28
  • 语言: Java
  • 标签:

资源简介

根据随机变量y及自变量x0,x1...xm-1的n组观测值做线性回归分析,简单实例,有注释,Java实现

资源截图

代码片段和文件信息

package day02;

public class SPT {
/**
 * 
 * 多元线性回归分析
 *
 * 
 * @param x[m][n] 每一列存放 m 个自变量的观察值
 * 
 * @param y[n] 存放随即变量 y 的 n 个观察值
 * 
 * @param m 自变量的个数
 * 
 * @param n 观察数据的组数
 * 
 * @param a 返回回归系数 a0...am
 * 
 * @param dt[4] dt[0] 偏差平方和 qdt[1] 平均标准偏差 s dt[2] 返回复相关系数 r dt[3] 返回回归平方和 u
 * 
 * @param v[m] 返回 m 个自变量的偏相关系数
 */
public static void sqt2(double[][] x double[] y int m int n double[] a double[] dt double[] v) {
int i j k mm;
double q e u p yy s r pp;
double[] b = new double[(m + 1) * (m + 1)];
mm = m + 1;
b[mm * mm - 1] = n;
for (j = 0; j <= m - 1; j++) {
p = 0.0;
for (i = 0; i <= n - 1; i++)
p = p + x[j][i];
b[m * mm + j] = p;
b[j * mm + m] = p;
}
for (i = 0; i <= m - 1; i++)
for (j = i; j <= m - 1; j++) {
p = 0.0;
for (k = 0; k <= n - 1; k++)
p = p + x[i][k] * x[j][k];
b[j * mm + i] = p;
b[i * mm + j] = p;
}
a[m] = 0.0;
for (i = 0; i <= n - 1; i++)
a[m] = a[m] + y[i];
for (i = 0; i <= m - 1; i++) {
a[i] = 0.0;
for (j = 0; j <= n - 1; j++)
a[i] = a[i] + x[i][j] * y[j];
}
chlk(b mm 1 a);
yy = 0.0;
for (i = 0; i <= n - 1; i++)
yy = yy + y[i] / n;
q = 0.0;
e = 0.0;
u = 0.0;
for (i = 0; i <= n - 1; i++) {
p = a[m];
for (j = 0; j <= m - 1; j++)
p = p + a[j] * x[j][i];
q = q + (y[i] - p) * (y[i] - p);
e = e + (y[i] - yy) * (y[i] - yy);
u = u + (yy - p) * (yy - p);
}
s = Math.sqrt(q / n);
r = Math.sqrt(1.0 - q / e);
for (j = 0; j <= m - 1; j++) {
p = 0.0;
for (i = 0; i <= n - 1; i++) {
pp = a[m];
for (k = 0; k <= m - 1; k++)
if (k != j)
pp = pp + a[k] * x[k][i];
p = p + (y[i] - pp) * (y[i] - pp);
}
v[j] = Math.sqrt(1.0 - q / p);
}
dt[0] = q;
dt[1] = s;
dt[2] = r;
dt[3] = u;
}

private static int chlk(double[] a int n int m double[] d) {
int i j 

评论

共有 条评论