楼主: 冷月初
14079 6

[有偿编程] 如何用R软件做函数型数据的主成分分析,最好有代码和数据演示 [推广有奖]

  • 1关注
  • 8粉丝

已卖:1314份资源

大专生

53%

还不是VIP/贵宾

-

威望
0
论坛币
5421 个
通用积分
6.6921
学术水平
9 点
热心指数
12 点
信用等级
8 点
经验
553 点
帖子
38
精华
0
在线时间
28 小时
注册时间
2012-12-1
最后登录
2016-3-8

楼主
冷月初 发表于 2014-12-10 15:10:32 |AI写论文
19论坛币
有代码 有数据演示  或者告诉用什么软件包 及软件包里的哪些函数 急用啊

关键词:函数型数据 主成分分析 主成分 如何用 r软件 如何 软件 最好

沙发
huahelan 发表于 2014-12-13 08:43:26
我也想要!

藤椅
DM小菜鸟 发表于 2015-1-15 22:49:29
函数型的,应该可以采用基本的princomp函数,将结果输入到summary和plot函数中可分别得到分析结果和碎石图。但psych扩展包更具灵活性。
   
1 选择主成分个数

选择主成分个数通常有如下几种评判标准:

根据经验与理论进行选择
根据累积方差贡献率 ,例如选择使累积方差贡献率达到80%的主成分个数。
根据相关系数矩阵的特征值,选择特征值大于1的主成分。
      
另一种较为先进的方法是平行分析(parallel analysis)。该方法首先生成若干组与原始数据结构相同的随机矩阵,求出其特征值并进行平均,然后和真实数据的特征值进行比对,根据交叉点的位置来选择主成分个数。

我们选择USJudgeRatings数据集举例:

该数据集说明:

[,1]   CONT  Number of contacts of lawyer with judge.
[,2]   INTG  Judicial integrity.
[,3]   DMNR  Demeanor.
[,4]   DILG  Diligence.
[,5]   CFMG  Case flow managing.
[,6]   DECI  Prompt decisions.
[,7]   PREP  Preparation for trial.
[,8]   FAMI  Familiarity with law.
[,9]   ORAL  Sound oral rulings.
[,10]  WRIT  Sound written rulings.
[,11]  PHYS  Physical ability.
[,12]  RTEN  Worthy of retention.
  
首先加载psych包,然后使用fa.parallel函数绘制下图,从图中可见第一主成分位于红线上方,第二主成分位于红线下方,因此主成分数目选择1。

library(psych)
fa.parallel(USJudgeRatings[,-1], fa="pc",n.iter=100, show.legend=FALSE)
  
2 提取主成分

pc=principal(USJudgeRatings[,-1],nfactors=1)
  
pc的结果如下

      PC1   h2     u2
INTG 0.92 0.84 0.1565
DMNR 0.91 0.83 0.1663
DILG 0.97 0.94 0.0613
CFMG 0.96 0.93 0.0720
DECI 0.96 0.92 0.0763
PREP 0.98 0.97 0.0299
FAMI 0.98 0.95 0.0469
ORAL 1.00 0.99 0.0091
WRIT 0.99 0.98 0.0196
PHYS 0.89 0.80 0.2013
RTEN 0.99 0.97 0.0275

                 PC1
SS loadings    10.13
Proportion Var  0.92
  
从上面的结果观察到,PC1即观测变量与主成分之间的相关系数,h2是变量能被主成分解释的比例,u2则是不能解释的比例。主成分解释了92%的总方差。注意此结果与princomp函数结果不同,princomp函数返回的是主成分的线性组合系数,而principal函数返回原始变量与主成分之间的相关系数,这样就和因子分析的结果意义相一致。

3 旋转主成分

旋转是在保持累积方差贡献率不变条件下,将主成分负荷进行变换,以方便解释。成分旋转这后各成分的方差贡献率将重新分配,此时就不可再称之为“主成分”而仅仅是“成分”。旋转又可分为正交旋转和斜交旋转。正交旋转的流行方法是方差最大化,需要在principal中增加rotate='varimax'参数加以实现。也有观点认为主成分分析一般不需要进行旋转。

4 计算主成分得分

主成分得分是各变量的线性组合,在计算出主成分得分之后,还可以将其进行回归等做进一步分析处理。但注意如果输入数据不是原始数据时,则无法计算主成分得分。我们需要在principal中增加score=T的参数设置,结果将存放在结果的score元素中。
已有 2 人评分论坛币 学术水平 热心指数 收起 理由
admin_kefu + 30 + 2 + 2 热心帮助其他会员
qwe123edc + 1 + 1 精彩帖子

总评分: 论坛币 + 30  学术水平 + 3  热心指数 + 3   查看全部评分

板凳
zyq111 发表于 2015-6-29 14:05:21
have a look at it

报纸
qwe123edc 发表于 2016-6-21 14:46:34
可以用函数型数据分析专用的fda包,里面有pca.fd是用来进行主成分分析的。
已有 1 人评分论坛币 收起 理由
admin_kefu + 10 热心帮助其他会员

总评分: 论坛币 + 10   查看全部评分

地板
kelffon 发表于 2017-3-24 17:12:37
qwe123edc 发表于 2016-6-21 14:46
可以用函数型数据分析专用的fda包,里面有pca.fd是用来进行主成分分析的。
楼上正解,你寻找 书籍  <Functional Data Analysis with R and MATLAB > 里面有例子

7
jiandong4388 学生认证  发表于 2017-12-15 22:37:23
DM小菜鸟 发表于 2015-1-15 22:49
函数型的,应该可以采用基本的princomp函数,将结果输入到summary和plot函数中可分别得到分析结果和碎石图。 ...
functional principal component 与classical principal component 有一些不同

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-10 02:18