MATLAB如何才能在3个自变量1个因变量的情况下预测这个因变量之后的数值变化?那3个自变量已经预测出未来数
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/07/02 21:25:59
MATLAB如何才能在3个自变量1个因变量的情况下预测这个因变量之后的数值变化?那3个自变量已经预测出未来数
MATLAB中有矩阵Y=[y1 y2 ... yn],X1=[x11 x12 ... x1n],X2=[x21 x22 ... x2n],X3=[x31 x32...x3n],设yi=A0+A1x1i+A2x2i+A3x3,要怎么求?是用偏最小二乘法吗?我不会……求指导!谢谢!
MATLAB中有矩阵Y=[y1 y2 ... yn],X1=[x11 x12 ... x1n],X2=[x21 x22 ... x2n],X3=[x31 x32...x3n],设yi=A0+A1x1i+A2x2i+A3x3,要怎么求?是用偏最小二乘法吗?我不会……求指导!谢谢!
![MATLAB如何才能在3个自变量1个因变量的情况下预测这个因变量之后的数值变化?那3个自变量已经预测出未来数](/uploads/image/z/2495068-52-8.jpg?t=MATLAB%E5%A6%82%E4%BD%95%E6%89%8D%E8%83%BD%E5%9C%A83%E4%B8%AA%E8%87%AA%E5%8F%98%E9%87%8F1%E4%B8%AA%E5%9B%A0%E5%8F%98%E9%87%8F%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E9%A2%84%E6%B5%8B%E8%BF%99%E4%B8%AA%E5%9B%A0%E5%8F%98%E9%87%8F%E4%B9%8B%E5%90%8E%E7%9A%84%E6%95%B0%E5%80%BC%E5%8F%98%E5%8C%96%3F%E9%82%A33%E4%B8%AA%E8%87%AA%E5%8F%98%E9%87%8F%E5%B7%B2%E7%BB%8F%E9%A2%84%E6%B5%8B%E5%87%BA%E6%9C%AA%E6%9D%A5%E6%95%B0)
已知X123求Y的话,直接使用你的公式即可
代码:
X1=[x11 x12 ...x1n];%行向量里都是n个数字,下同
X2=[x21 x22 ...x2n];
X3=[x31 x32 ...x3n];
Y=A0+A1*X1+A2*X2+A3*X3;%A0123为四个已知数字
这样就求出了1行n列的行向量Y
至于你说的“预测”,我猜是A0123是待定系数吧.
也就是已知X123及Y的n组量,希望用三元一次函数进行拟合吧.
这样的话,若用最小二乘法,思路是:
{下面我用sum(f(i),1,10)表示f(i)表达式从1加到10的值}
第一、设A0123为待定系数,并使用X123计算Y的估计值YY
YY=sum(A0+A1*X1i+A2*X2i+A3*X3i,1,n)
第二、计算真实的Y和估计的YY每个对应项之差的平方,再求总和S
S=sum((A0+A1*X1i+A2*X2i+A3*X3i-Yi)^2,1,n)
第三、目的是求使S最小的A0123,即为最小二乘解
这实际上是可微多维函数求极值的问题,用对各自变量求偏导并同时取零解决
此时针对上面的S等式分别对A0123求偏导
dS/dA0=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi),1,n)
dS/dA1=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi)*X1i,1,n)
dS/dA2=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi)*X2i,1,n)
dS/dA3=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi)*X3i,1,n)
上面4等式右边提取A0123,再两边同除2得
(dS/dA0)/2=A0*n+A1*sum(X1i,1,n)+A2*sum(X2i,1,n)+A3*sum(X3i,1,n)-sum(Y,1,n)
(dS/dA1)/2=A0*sum(X1i,1,n)+A1*sum(X1i*X1i,1,n)+A2*sum(X2i*X1i,1,n)+A3*sum(X3i*X1i,1,n)-sum(Y*X1i,1,n)
(dS/dA2)/2=A0*sum(X2i,1,n)+A1*sum(X1i*X2i,1,n)+A2*sum(X2i*X2i,1,n)+A3*sum(X3i*X2i,1,n)-sum(Y*X2i,1,n)
(dS/dA3)/2=A0*sum(X3i,1,n)+A1*sum(X1i*X3i,1,n)+A2*sum(X2i*X3i,1,n)+A3*sum(X3i*X3i,1,n)-sum(Y*X3i,1,n)
令上4等式左边为0,注意到右边都是“A0*已知常数+A1*已知常数+A2*已知常数+A3*已知常数-已知常数”的形式
因此得到一个四元一次非齐次方程组,用高等数学中线性方程组的求解方法求解(或者甚至用初中的代入法求解方程组)即可
这样就得到了最佳的A0123四个数字,这四个参数使得拟合的Y=A0+A1*X1+A2*X2+A3*X3函数,与给定的X123和Y数据在最小二乘意义下差值最小,即最佳拟合
再问: 解答的好详细!谢谢!!比书上的清楚多了……我就是看懂一点不懂一点。。真心谢谢! 我还想问一下,如果用了回归分析,算出来的b=[b0 b1 b2 b3]是不是还不是最佳的?因为bint是b取值范围……那是不是要用你的方法算才是最佳拟合? [b, bint, r, rint, stats] = regress(y,x) b = -10782.76 12.64 -0.36 0.0016 bint = -14679.36 -6886.16 9.39 15.90 -1.35 0.62 -0.0084 0.012
再答: MATLAB的regress函数就是按照我上面所说的最小二乘法计算出来的 用我说的步骤计算出来的A0123就等于用regress计算出的b 若你问题中的Y和X123都是1行n列行向量,则代码应为:B=regress(Y',[ones(n,1) X1' X2' X3']); “ ' ”是转置的意思,这样得到4行1列的B,从上到下分别是问题中的A0123 bint是b的置信区间,并不是b的取值范围,这是取决于第三个输入量显著性水平Alpha的,缺省值为0.05。含义是:待定系数不在bint范围内的概率只有Alpha 你可以百度搜索“MATLAB regress -- forgeteverything -- 编程爱好者博客”,看看第一条结果
代码:
X1=[x11 x12 ...x1n];%行向量里都是n个数字,下同
X2=[x21 x22 ...x2n];
X3=[x31 x32 ...x3n];
Y=A0+A1*X1+A2*X2+A3*X3;%A0123为四个已知数字
这样就求出了1行n列的行向量Y
至于你说的“预测”,我猜是A0123是待定系数吧.
也就是已知X123及Y的n组量,希望用三元一次函数进行拟合吧.
这样的话,若用最小二乘法,思路是:
{下面我用sum(f(i),1,10)表示f(i)表达式从1加到10的值}
第一、设A0123为待定系数,并使用X123计算Y的估计值YY
YY=sum(A0+A1*X1i+A2*X2i+A3*X3i,1,n)
第二、计算真实的Y和估计的YY每个对应项之差的平方,再求总和S
S=sum((A0+A1*X1i+A2*X2i+A3*X3i-Yi)^2,1,n)
第三、目的是求使S最小的A0123,即为最小二乘解
这实际上是可微多维函数求极值的问题,用对各自变量求偏导并同时取零解决
此时针对上面的S等式分别对A0123求偏导
dS/dA0=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi),1,n)
dS/dA1=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi)*X1i,1,n)
dS/dA2=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi)*X2i,1,n)
dS/dA3=sum(2*(A0+A1*X1i+A2*X2i+A3*X3i-Yi)*X3i,1,n)
上面4等式右边提取A0123,再两边同除2得
(dS/dA0)/2=A0*n+A1*sum(X1i,1,n)+A2*sum(X2i,1,n)+A3*sum(X3i,1,n)-sum(Y,1,n)
(dS/dA1)/2=A0*sum(X1i,1,n)+A1*sum(X1i*X1i,1,n)+A2*sum(X2i*X1i,1,n)+A3*sum(X3i*X1i,1,n)-sum(Y*X1i,1,n)
(dS/dA2)/2=A0*sum(X2i,1,n)+A1*sum(X1i*X2i,1,n)+A2*sum(X2i*X2i,1,n)+A3*sum(X3i*X2i,1,n)-sum(Y*X2i,1,n)
(dS/dA3)/2=A0*sum(X3i,1,n)+A1*sum(X1i*X3i,1,n)+A2*sum(X2i*X3i,1,n)+A3*sum(X3i*X3i,1,n)-sum(Y*X3i,1,n)
令上4等式左边为0,注意到右边都是“A0*已知常数+A1*已知常数+A2*已知常数+A3*已知常数-已知常数”的形式
因此得到一个四元一次非齐次方程组,用高等数学中线性方程组的求解方法求解(或者甚至用初中的代入法求解方程组)即可
这样就得到了最佳的A0123四个数字,这四个参数使得拟合的Y=A0+A1*X1+A2*X2+A3*X3函数,与给定的X123和Y数据在最小二乘意义下差值最小,即最佳拟合
再问: 解答的好详细!谢谢!!比书上的清楚多了……我就是看懂一点不懂一点。。真心谢谢! 我还想问一下,如果用了回归分析,算出来的b=[b0 b1 b2 b3]是不是还不是最佳的?因为bint是b取值范围……那是不是要用你的方法算才是最佳拟合? [b, bint, r, rint, stats] = regress(y,x) b = -10782.76 12.64 -0.36 0.0016 bint = -14679.36 -6886.16 9.39 15.90 -1.35 0.62 -0.0084 0.012
再答: MATLAB的regress函数就是按照我上面所说的最小二乘法计算出来的 用我说的步骤计算出来的A0123就等于用regress计算出的b 若你问题中的Y和X123都是1行n列行向量,则代码应为:B=regress(Y',[ones(n,1) X1' X2' X3']); “ ' ”是转置的意思,这样得到4行1列的B,从上到下分别是问题中的A0123 bint是b的置信区间,并不是b的取值范围,这是取决于第三个输入量显著性水平Alpha的,缺省值为0.05。含义是:待定系数不在bint范围内的概率只有Alpha 你可以百度搜索“MATLAB regress -- forgeteverything -- 编程爱好者博客”,看看第一条结果
MATLAB如何才能在3个自变量1个因变量的情况下预测这个因变量之后的数值变化?那3个自变量已经预测出未来数
多个自变量与多个因变量之间的关系
matlab如何拟合得到5个自变量,一个因变量的函数,高手请相助,分数奉上~
matlab知道多个自变量求不同因变量
两组自变量与1个因变量之间的关系用SPSS怎么做?
如何用SPSS实现多个因变量和多个自变量的分析?
多个自变量,一个因变量,而且每个变量都有一组观测数据,怎样能够找到自变量和因变量之间的函数关系?
变量、自变量、因变量的意义
自变量 因变量 因果关系的概念
自变量,因变量,因果关系的含义?
多个自变量多个因变量用SPSS如何分析?
SPSS进行二元logistic回归分析,结果如下,能否说明我的假设:自变量3对因变量的预测力要大于自变量1 ?