基于spss和matlab对水泥热量值的主成分估计

主成分估计采用的方法是将原来的回归自变量变换到另一组变量,即主成分,选择其中一部分重要的主成分作为新的自变量(此时丢弃了一部分,影响不大的自变量,这实际达到了降维的目的),然后用最小二乘法对选取主成分后的模型参数进行估计,最后再变换回原来的模型求出参数的估计。
例:有一组水泥热量值数据:在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
降维:(判断标准很多,但有些是相关性很高的,在相关性高的标准中选一即可,即为降维)
Spss软件 分析-降维-因子分析得到初方差解释表,特征值在此处;
成分矩阵表中,成分矩阵中的值,除以该成分的特征值的平方根,才得到该特征值的特征向量(双击可复制表,到主表中。转换-计算变量)
将标准化后数据和特征向量复制至excel表格中,matlab分别读取,记做X0和X1,则主成分表X2即为X0*X1。在工作区打开X2,复制至spss中。

在这里插入图片描述
线性回归方程:F即为主成分表X2系数矩阵,y为因变量。在分析-回归-线性中。
再把三个F的表达式带入Y中,形成y与x的主成分回归方程。

此外,还可利用matlab进行计算

syms x1 x2 x3 x4
XX=[x1 x2 x3 x4];
tzxl=xlsread('特征向量.xlsx','A1:C4');
yssj=xlsread('原始数据.xlsx','A1:D13');
qw=[mean(yssj(:,1)) mean(yssj(:,2)) mean(yssj(:,3)) mean(yssj(:,4))];
bzc=[std(yssj(:,1)) std(yssj(:,2)) std(yssj(:,3)) std(yssj(:,4))];
F1=(XX-qw)./bzc*tzxl(:,1);
F2=(XX-qw)./bzc*tzxl(:,2);
F3=(XX-qw)./bzc*tzxl(:,3);
Y=95.423+F1*9.884+0.125*F2+4.56*F3;
digits(5)
vpa(Y)

matlab控制运算精度用的是digits和vpa这两个函数。

digits用于规定运算精度,比如:

digits(20);

这个语句就规定了运算精度是20位有效数字。但并不是规定了就可以使用,因为实际编程中,我们可能有些运算需要控制精度,而有些不需要控制。vpa就用于解决这个问题,凡是用需要控制精度的,我们都对运算表达式使用vpa函数。例如:

digits(5);

a=vpa(sqrt(2));

这样a的值就是1.4142,而不是准确的1.4142135623730950488016887242097…

matlab运行结果
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值