多元线性回归拟合数据到三次多项式方程与相互作用项
32次观看(过去30天)
显示旧的注释
你好,
我有两个自变量和一个因变量的数据(从实验中获得)。我需要使用线性回归将这些数据拟合到一个10系数的三次多项式方程-对于你们中的工程师来说,这是指定制冷压缩机性能的标准方程。在EES中,通过在表格中输入数据并从表格菜单中选择“线性回归”选项,可以很容易地做到这一点。如何在Matlab中实现呢?我的方程形式为X = C1 + C2.(S) + C3.(D) + C4·(S2) + C5·(S·D) + C6·(D2) + C7·(S3) + C8·(D·S2) +C9·(S·D2) + C10·(D3)其中X为因变量,S和D为自变量。S和D旁边的数字表示它们的幂。C1到C10是需要计算的系数。
使用“回归”函数给我一个0的常数,并警告我我的设计矩阵是秩亏的。使用曲线拟合工具箱(cftool -多项式选项)为我提供了荒谬的系数值(p00 = -6.436e15)。当我试图在cftool中输入一个自定义方程时,它会切换到非线性回归,并要求我输入系数的猜测值,这是我不想做的。我可以使用哪些其他函数来执行这个回归,以及如何实现它们。任何建议/帮助/建议都将不胜感激。
非常感谢。
Gautam。
接受的答案
更多答案(1)
沙Prasanna
2014年4月1日
有很多方法可以做到这一点。其中最简单的是使用曲线拟合工具,并选择正确的选项。试试这个链接寻求帮助:
使用统计工具箱,你可以通过指定polyijf模型规范来做到这一点:
另一种方法是用MATLAB求解线性系统。假设X S D是MATLAB工作空间中的向量。创建随机数据并计算C中的系数:
S = randn(100,1);
D = randn(100,1),
X = randn(100,1);
M =[(长度(S), 1),的年代,D S ^ 2, S * D, D . ^ 2, S . ^ 3 D *。^ 2, s * D。^ 2, d . ^ 3)
C = m \ x