因子分析模板

2024-06-15 13:48
文章标签 模板 因子分析

本文主要是介绍因子分析模板,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

因子分析的模板

2011A-2模板论文 P10

 

 

 

    因子分析的主要步骤如下:

  1. 数据标准化

由于不同重金属元素的量纲可能不同, 因此为了消除量纲对数据的影响, 对所有的重金属采用下面的公式对数据进行归一化处理:

其中 表示第i个采样点第j种元素的浓度实测值, 表示第j种重金属元素的实测值的平均值,表示第j种重金属元素实测值的标准差。

2.计算协方差矩阵S

    因为已经对数据进行归一化处理,协方差的大小在一定程度上表示了个元素之间的关系,记每个区有n个采样点,则协方差表达式如下:

3. 计算初等载荷矩阵 A

    计算矩阵S的特征值 ,将其从大到小进行排列得 ,以及相应的特征向量 其中 ,则

4. 主因子个数确定及因子旋转

    根据初等载荷矩阵,计算各个主因子的贡献率。同时为了更好的解释因子的现实意义,利用具有 Kaiser 标准化的正交旋转法,对提取的因子载荷矩阵进行旋转,得到矩阵B, 为A的前m列,T为正交矩阵,同时构造因子分析模型

    其中, 指标准化的各元素指标变量, 指第i个因子, 指矩阵B的第i行的第j个元素。

 

 

 

 

 

 

相关的代码:

 

 

 

load data.txt %把原始数据保存在纯文本文件data.txt中

 

 

data=reshape(data,[16,5]);

m=size(data,1);

x=data(:,5);data=data(:,1:4),num=2; %num 代表的因子的个数

data=zscore(data); %数据标准化

r=cov(data);

[vec,val,con]=pcacov(r); %进行主成分分析的相关计算

val,con

f1=repmat(sign(sum(vec)),size(vec,1),1);

vec=vec.*f1; %特征向量正负号转换

f2=repmat(sqrt(val)',size(vec,1),1);

a=vec.*f2 %载荷矩阵

%求得载荷矩阵,该载荷矩阵是没有进行旋转变换的因子

%如果指标变量多,选取的主因子个数少,可以直接使用factoran进行因子

%分析

%本题中4个指标变量,选取2个主因子,factoran无法实现

%下面在因子旋转中,由于num=2,所以只对前面两个进行旋转,换面的保持布

%标。

[b,t]=rotatefactors(a(:,1:num),'method', 'varimax') %旋转变换

bz=[b,a(:,num+1:end)] ;%旋转后的载荷矩阵

gx=sum(bz.^2); %计算因子贡献

gxv=gx/sum(gx); %计算因子贡献率

dfxsh=inv(r)*b; %计算得分函数的系数

df=data*dfxsh ;%计算各个因子的得分

 

 

 

 

%后面是评价模型

zdf=df*gxv(1:num)'/sum(gxv(1:num)); %对各因子的得分进行

加权求和

[szdf,ind]=sort(zdf,'descend') %对企业进行排名

xianshi=[df(ind,:)';zdf(ind)';ind'] %显示计算结果

[x_zdf_coef,p]=corrcoef([zdf,x]) %计算相关系数

[d1,d1int,d2,d2int,stats]=regress(zdf,[ones(m,1),x]) %回归分析计算

 

 

 

 

 

 

 

 

函数说明reshape:

close all; clear; clc;

A = [1 2 3; 4 5 6; 7 8 9; 10 11 12] % 4 by 3

B = reshape(A, 2, 6) % 2 by 6

% C = reshape(A, 2, 4) % error

% D = reshape(A, 2, 10) % error

E = reshape(A, 2, 3, 2) % 2 by 3 by 2

注意:reshape函数对原数组的抽取是按照列抽取的(对原数组按列抽取,抽取的元素填充为新数组的列)

运行结果:

这篇关于因子分析模板的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063633

相关文章

C++的模板(八):子系统

平常所见的大部分模板代码,模板所传的参数类型,到了模板里面,或实例化为对象,或嵌入模板内部结构中,或在模板内又派生了子类。不管怎样,最终他们在模板内,直接或间接,都实例化成对象了。 但这不是唯一的用法。试想一下。如果在模板内限制调用参数类型的构造函数会发生什么?参数类的对象在模板内无法构造。他们只能从模板的成员函数传入。模板不保存这些对象或者只保存他们的指针。因为构造函数被分离,这些指针在模板外

记录AS混淆代码模板

开启混淆得先在build.gradle文件中把 minifyEnabled false改成true,以及shrinkResources true//去除无用的resource文件 这些是写在proguard-rules.pro文件内的 指定代码的压缩级别 -optimizationpasses 5 包明不混合大小写 -dontusemixedcaseclassnames 不去忽略非公共

C++标准模板库STL介绍

STL的六大组成部分 STL(Standard Template Library)是 C++ 标准库中的一个重要组成部分,提供了丰富的通用数据结构和算法,使得 C++ 编程变得更加高效和方便。STL 包括了 6 大类组件,分别是算法(Algorithm)、容器(Container)、空间分配器(Allocator)、迭代器(Iterator)、函数对象(Functor)、适配器(Adapter)

HTML5文旅文化旅游网站模板源码

文章目录 1.设计来源文旅宣传1.1 登录界面演示1.2 注册界面演示1.3 首页界面演示1.4 文旅之行界面演示1.5 文旅之行文章内容界面演示1.6 关于我们界面演示1.7 文旅博客界面演示1.8 文旅博客文章内容界面演示1.9 联系我们界面演示 2.效果和源码2.1 动态效果2.2 源代码2.3 源码目录 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcLeigh

静态文件及模板

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501 1  静态文件 动态Web应用也会需要静态文件,通常是CSS和JavaScript文件。Flask可以向已经配置好的Web服务器提供静态文件,只要在包或模块所在的目录中创建一个名为s

周末设计高端企业_集团官网主题Discuz模板

风格名称: 周末设计_高端企业_集团官网 适用版本: Discuz! X3.0、X3.1、X3.2、X3.3、F1.0 风格编码: 使用语言包结构,适合全部编码 周末设计高端企业_集团官网主题Discuz模板

如何使用STL中的模板类

在C++中,标准模板库(STL)提供了大量的模板类,这些类可以处理各种类型的数据,从而极大地提高了代码的复用性和灵活性。要使用STL中的模板类,你需要遵循一些基本的步骤和约定。 以下是一些使用STL模板类的基本步骤: 包含头文件: 首先,你需要包含相应的STL头文件,以便能够使用其中的模板类。例如,要使用std::vector,你需要包含<vector>头文件。 cpp复制代码 #incl

模板的概念及其在C++中的应用

模板是C++中一个强大的特性,它允许程序员定义与类型无关的函数或类,从而在编译时根据具体类型生成特定的代码。模板的出现极大地提高了C++代码的可重用性和灵活性。 模板的概念 模板是C++实现泛型编程的一种工具。泛型编程是一种编程范式,其中算法和数据结构被编写为与特定数据类型无关,从而可以在各种数据类型上重用。模板分为函数模板和类模板两种。 函数模板:允许程序员编写一个函数定义,该函数可以接受

期刊模板问题

Ctex 镜像位置 http://www.ctex.org/CTeXDownload

函数模板和类模板的区别

函数模板和类模板在C++中都是重要的泛型编程工具,但它们之间存在一些显著的区别。以下是它们之间的主要区别: 实例化方式: 函数模板:隐式实例化。当函数模板被调用时,编译器会根据传递给它的参数类型自动推断出模板参数的具体类型,并生成相应的函数实例。例如,template<typename T> T add(T a, T b) { return a + b; } 在调用 add(3, 5) 时,编译