给大家安利一款朋友开发的自研国产数据分析基础工具,一键式自动分析,自动生成分析模板,5分钟掌握主流61个统计类数学模型(几乎涵盖SPSS绝大部分功能),以及23个有监督机器学习(包括随机森林,SVM,XGBoost等)

PS:巨方便简单上手,貌似现在是免费

官网:www.mpaidata.com   mpai数据科学平台

因子分析可以看作是主成分分析的一个扩充,因子分析在数学建模中使用的没有主成分分析那么多。关于因子分析和主成分分析的区别可以看一下司守奎老师的“因子分析”那个章节。一开始就有介绍区别。

因子分析

1)主成分分析法:

例5 研究纽约股票市场上五种股票的周回升率。这里,周回升率=(本星期五市场收盘价-上星期五市场收盘价)/上星期五市场收盘价。从1975年1月到1976年12月,对这五种股票作了100组独立观测。因为随着一般经济状况的变化,股票有集聚的趋势,因此,不同股票周末回升率是彼此相关的。

相关系数矩阵:

对m=1和m=2,因子分析主成分解见下表。

变量

一个因子

两个因子

因子载荷估计

特殊方差

因子载荷估计

特殊方差

1

0.7836

0.3860

0.7836

-0.2162

0.3393

2

0.7726

0.4031

0.7726

-0.4581

0.1932

3

0.7947

0.3685

0.7947

-0.2343

0.3136

4

0.7123

0.4926

0.7123

0.4729

0.2690

5

0.7119

0.4931

0.7119

0.5235

0.2191

累积贡献

0.571342

0.571342

0.733175

对m=2,残差矩阵

第一个因子F1代表了一般经济条件,称为市场因子,所有股票在这个因子上的载

荷都比较大,且大致相等,第二个因子是化学股和石油股的一个对照,两者分别有比较大的负、正载荷。可见F2使不同的工业部门的股票产生差异,通常称之为工业因子。归纳起来,我们有如下结论:股票回升率由一般经济条件、工业部门活动和各公司本身特殊活动三部分决定。

MATLAB源代码:

clc,clear
r=[1.000 0.577 0.509 0.387 0.462
0.577 1.000 0.599 0.389 0.322
0.509 0.599 1.000 0.436 0.426
0.387 0.389 0.436 1.000 0.523
0.462 0.322 0.426 0.523 1.000];
%下面利用相关系数矩阵求主成分解,val的列为r的特征向量,即主成分的系数
[vec,val,con]=pcacov(r);%val为r的特征值,con为各个主成分的贡献率
f1=repmat(sign(sum(vec)),size(vec,1),1); %构造与vec同维数的元素为±1的矩阵
vec=vec.*f1; %修改特征向量的正负号,每个特征向量乘以所有分量和的符号函数值
f2=repmat(sqrt(val)',size(vec,1),1);
a=vec.*f2 %构造全部因子的载荷矩阵
a1=a(:,1) %提出一个因子的载荷矩阵
tcha1=diag(r-a1*a1') %计算一个因子的特殊方差
a2=a(:,[1,2]) %提出两个因子的载荷矩阵
tcha2=diag(r-a2*a2') %计算两个因子的特殊方差
ccha2=r-a2*a2'-diag(tcha2) %求两个因子时的残差矩阵
gong=cumsum(con) %求累积贡献率

该MATLAB源代码运行结果中的a为载荷矩阵。主因子方法是对主成分方法的修正。

2)主因子分析法:

例 我国上市公司赢利能力与资本结构的实证分析

已知上市公司的数据见表1。

表1 上市公司数据

公司

销售净利率X1

资产净利率X2

净资产收益率X3

销售毛利率X4

资产负利率X5

歌华有线

43.31

7.39

8.73

54.89

15.35

五粮液

17.11

12.13

17.29

44.25

29.69

用友软件

21.11

6.03

7

89.37

13.82

太太药业

29.55

8.62

10.13

73

14.88

浙江阳光

11

8.41

11.83

25.22

25.49

烟台万华

17.63

13.86

15.41

36.44

10.03

方正科技

2.73

4.22

17.16

9.96

74.12

红河光明

29.11

5.44

6.09

56.26

9.85

贵州茅台

20.29

9.48

12.97

82.23

26.73

中铁二局

3.99

4.64

9.35

13.04

50.19

红星发展

22.65

11.13

14.3

50.51

21.59

伊利股份

4.43

7.3

14.36

29.04

44.74

青岛海尔

5.4

8.9

12.53

65.5

23.27

湖北宜化

7.06

2.79

5.24

19.79

40.68

雅戈尔

19.82

10.53

18.55

42.04

37.19

福建南纸

7.26

2.99

6.99

22.72

56.58

MATLAB源代码:

clc,clear
load data.txt; %把原始数据保存在纯文本文件data.txt中
n=size(data,1);
x=data(:,1:4); y=data(:,5); %分别提出自变量x和因变量y的值
——————————————————————————————————
如果不需要检验,则不需要把y列入原始数据中,把矩阵x的大小改变一下,以及下文中的m,m为原始数据中变量的个数。
——————————————————————————————————
m=4;%m为变量的个数
x=zscore(x); %数据标准化
r=cov(x); %求标准化数据的协方差阵,即求相关系数矩阵
[vec,val,con]=pcacov(r); %进行主成分分析的相关计算
c=cumsum(con);
i=1;
while ((c(i)<90)&(con(i+1)>10))i=i+1;
end
num=i;
f1=repmat(sign(sum(vec)),size(vec,1),1);
vec=vec.*f1; %特征向量正负号转换
f2=repmat(sqrt(val)',size(vec,1),1);
a=vec.*f2; %求初等载荷矩阵
am=a(:,1:num); %提出num个主因子的载荷矩阵
[b,t]=rotatefactors(am,'method', 'varimax'); %旋转变换,b为旋转后的载荷阵
bt=[b,a(:,num+1:end)]; %旋转后全部因子的载荷矩阵
contr=sum(bt.^2); %计算因子贡献
rate=contr(1:num)/sum(contr); %计算因子贡献率
fprintf('综合因子得分公式:F=');
for i=1:numfprintf('+%f*F%d',rate(i),i);
end
fprintf('\n');
coef=inv(r)*b; %计算得分函数的系数
coef=coef';
for i=1:numfprintf('各个因子得分函数为F%d=',i);for j=1:mfprintf('+(%f)*x_%d',coef(i,j),j);endfprintf('\n');
end
%如果仅仅因子分析,程序到此为止
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
score=x*coef';%计算各个因子的得分
weight=rate/sum(rate); %计算得分的权重
Tscore=score*weight'; %对各因子的得分进行加权求和,即求各企业综合得分
[STscore,ind]=sort(Tscore,'descend'); %对企业进行排序
display=[score(ind,:)';STscore';ind']; %显示排序结果
fprintf('排序结果如下:');
for i=1:numfprintf('第%d行为F%d得分,',i,i);
end
fprintf('第%d行为综合因子得分,第%d为原序列\n',num+1,num+2);
disp(display);
[ccoef,p]=corrcoef([Tscore,y]); %计算F与资产负债的相关系数
[d,dt,e,et,stats]=regress(Tscore,[ones(n,1),y]);%计算F与资产负债的方程
fprintf('因子分析法的回归方程为:F=%f+(%f*y)',d(1),d(2));
if (stats(3)<0.05)%判断是否通过显著性检验的结果fprintf('\n在显著性水平0.05的情况下,通过了假设检验。\n');
elsefprintf('\n在显著性水平0.05的情况下,通不过假设检验。\n');
end该MATLAB源代码的displsy为最终排序结果。

本题用SPSS求解(因子分析中的主成分分析法):

1.把原始数据输入SPSS中,如图:

2.依次点击“分析”→“降维”→“因子”,如图:

3.在“因子分析”对话框中,把X1、X2、X3、X4移入“变量”中,如图:

4.单击“描述”,出现“因子分析:描述”对话框;在“统计”栏中,勾选“初始解”;在“相关性矩阵”栏中,勾选“显著性水平”,如图,单击“继续”。

5.单击“提取”,出现“因子分析:提取”对话框,在“方法”中,选择“主成分”;在“分析”中,选择“相关性矩阵”;在“输出”中,勾选“未旋转因子解”;在“提取”中,选择“基于特征值”,并设定特征值大于“1”,如图,单击“继续”。

6.单击“选择”,在“因子分析:旋转”对话框中的选项默认即可,如图,单击“继续”。

7.单击“得分”,在“因子分析:因子得分”对话框中,勾选“保存为变量”;在“方法”中,选择“回归”;并勾选“显示因子得分系数矩阵”,如图,单击“继续”。

8.单击“选项”,在“因子分析:选项”对话框中的选项默认即可,如图,单击“继续”。

9.在“因子分析”对话框中,单击“确定”,如图。

相关性矩阵

X1

X2

X3

X4

显著性 (单尾)

X1

.114

.263

.006

X2

.114

.002

.096

X3

.263

.002

.304

X4

.006

.096

.304

总方差解释

成分

初始特征值

提取载荷平方和

总计

方差百分比

累积 %

总计

方差百分比

累积 %

1

1.897

47.429

47.429

1.897

47.429

47.429

2

1.550

38.740

86.169

1.550

38.740

86.169

3

.393

9.826

95.995

4

.160

4.005

100.000

提取方法:主成分分析法。

综合因子分析得分公式为:

成分矩阵a

成分

1

2

X1

.731

-.513

X2

.818

.503

X3

.359

.897

X4

.752

-.477

提取方法:主成分分析法。

a. 提取了 2 个成分。

成分得分系数矩阵

成分

1

2

X1

.385

-.331

X2

.431

.325

X3

.189

.579

X4

.396

-.308

提取方法:主成分分析法。

组件得分。

各个因子得分函数:

成分得分协方差矩阵

成分

1

2

1

1.000

.000

2

.000

1.000

提取方法:主成分分析法。

组件得分。

数学建模常用模型14 :因子分析相关推荐

  1. 数学建模常用模型04:灰色关联分析法

    数学建模常用模型04:灰色关联分析法 灰色关联分析法 本文所用的资料参考来源:美赛资料网:美赛资料网 与灰色预测模型一样,比赛不能优先使用,灰色关联往往可以与层次分析结合使用.层次分析用在确定权重上面 ...

  2. 数学建模常用模型(一):灰色预测法

    数学建模常用模型(一):灰色预测法 灰色预测法是一种用于处理少量数据.数据质量较差或者缺乏历史数据的预测方法.它适用于一些非线性.非平稳的系统,尤其在短期预测和趋势分析方面有着广泛的应用.灰色预测法作 ...

  3. 【数学建模常用模型】图论专题

    图论是研究点.线间关系的一门学科.现实生活中,凡是涉及到事物间的关系,都可以抽象为图论模型.图论模型也是各大数学建模中常见的一种模型,主要用于计算.规划最短距离.路线等问题.下面介绍几个基本概念和算法 ...

  4. 数学建模常用模型方法

    运筹学模型 概率论与数理统计模型 微分方程模型&预测分析模型 综合评价与决策方法 经典NP问题模型 智能算法(启发式)&常用算法模型 数学建模模型大全: https://blog.cs ...

  5. 数学建模常用模型21:BP神经网络(三层)

    给大家安利一款朋友开发的自研国产数据分析基础工具,一键式自动分析,自动生成分析模板,5分钟掌握主流61个统计类数学模型(几乎涵盖SPSS绝大部分功能),以及23个有监督机器学习(包括随机森林,SVM, ...

  6. 数学建模常用模型及代码

    一.规划模型 1.线性规划 线性规划与非线性规划问题一般都是求最大值和最小值,都是利用最小的有限资源来求最大利益等,一般都利用lingo工具进行求解. 点击进入传送门 2.整数规划 求解方式类似于线性 ...

  7. 数学建模常用模型24:时间序列分析

    给大家安利一款朋友开发的自研国产数据分析基础工具,一键式自动分析,自动生成分析模板,5分钟掌握主流61个统计类数学模型(几乎涵盖SPSS绝大部分功能),以及23个有监督机器学习(包括随机森林,SVM, ...

  8. 数学建模常用模型17 :偏最小二乘回归分析

    给大家安利一款朋友开发的自研国产数据分析基础工具,一键式自动分析,自动生成分析模板,5分钟掌握主流61个统计类数学模型(几乎涵盖SPSS绝大部分功能),以及23个有监督机器学习(包括随机森林,SVM, ...

  9. 数学建模常用模型05 :多元回归模型

    给大家安利一款朋友开发的自研国产数据分析基础工具,一键式自动分析,自动生成分析模板,5分钟掌握主流61个统计类数学模型(几乎涵盖SPSS绝大部分功能),以及23个有监督机器学习(包括随机森林,SVM, ...

最新文章

  1. linux中shell脚本启动报错
  2. c++ mysql 取出数据,c++从数据库的表中读取数据
  3. 内部类的分类及其定义
  4. 计算机对口升学可以报考的学校,对口升学可以报考的学校都在这里,赶快来收藏吧...
  5. java 多文字水印_Java 如何给Word文档添加多行文字水印
  6. 硬件基础知识---(5)电阻的用法
  7. 高项考试-信息化知识
  8. vscode web版,走到哪用到哪
  9. c# 软件单元测试,单元测试(C#版)
  10. 搭建自己的Milvus以图搜图服务
  11. boost::heap::binomial_heap用法的测试程序
  12. 这颗“洋葱”要上市了,低调盈利2亿元能跟上跨境电商队伍么?
  13. linux防火墙(firewall、iptable)
  14. 网络安全之权限维持(持续更新)
  15. 专接本 微机原理简答题 更新
  16. 【算法训练营学习笔记-Week06】一遍不懂就多刷几遍
  17. 通达信 c java,通达信的c
  18. IOS版aplayer使用教程_Google地球 安卓手机版(教程)流畅使用
  19. mysql8.0 报错2059_mysql8.0连接报2059错误
  20. 职业进阶,职业规划与计划(3年,5年,10年计划等),个人(中年)危机

热门文章

  1. XLua Lua访问C#中的方法(四)访问委托、事件
  2. 微软CEO鲍尔默最新致雅虎董事会信件翻译全文
  3. Visual Studio Code 运行命令行,无法加载文件 C:\**.ps1,因为在此系统上禁止运行脚本的解决方法
  4. CUDA 半浮点数运算
  5. 【centos7上装向日葵linux命令行版(先把结果交代在这:ssh远控功能收费。最后一步当我在向日葵使用ssh远程centos7时,发现它是收费的,我离完整体验就差9块钱)】
  6. win7 系统的 .ico 文件夹图标的存储路径是什么? 怎么修改?
  7. matlab有数据库吗,Matlab数据库的基本知识
  8. 常见的5种数据分析方法有哪些?
  9. 真无线蓝牙耳机排行榜:2020年蓝牙耳机十大名牌排行
  10. 实例:身体质量指数BMI