zoukankan      html  css  js  c++  java
  • R语言学习之主成分分析法的R实践

    主成分分析R软件实现程序(一):

    >d=read.table("clipboard",header=T) #从剪贴板读取数据

    >sd=scale(d)  #对数据进行标准化处理

    >sd  #输出标准化后的数据和属性信息,把标准化的数据拷贝到剪贴板备用

    >d=read.table("clipboard",header=T)  #从剪贴板读取标准化数据

    >pca=princomp(d,cor=T)  #主成分分析函数

    >screeplot(pca,type="line",mian="碎石图",lwd=2)  #画出碎石图

    从碎石图上可以看出,前两个主成分的方差贡献率比重比较大,下面计算前两个主成分的累积方差贡献率是否超过80%……

    >dcor=cor(d) #求相关矩阵

    >deig=eigen(dcor)  #求相关矩阵的特征值和特征向量

    >deig$values #输出特征值

    >sumeigv=sum(deig$values)

    >sumeigv   得到k值

    >sum(deig$values[1:2])/k #求前两个主成分的累积方差贡献率

    >pca$loadings[,1:2]  #输出前2个主成分的载荷系数

    观察载荷系数可以得到:主成分C1在……

    >deig$values[1]/k;deig$values[2]/k; #计算主成分C1、C2的系数b1、b2

    C=(b1*C1+b2*C2)/(b1+b2)=q1*C1+q2*C2

    >s=pca$scores[,1:2] #输出前两个主成分的得分

    >c=s[1:评价对象的个数,1]*q1+s[1:评价对象的个数,2]*q2

    >cbind(s,c)

    然后把综合得分c的值从小到大排序,得到最后评价结果。

    注意:在这里c的值指的是c的实数的值,并非绝对值。

    主成分分析R软件实现程序(二):较为简便

    在excel中点击复制要读取的文件

    >data<-read.table("clipboard",header=T,sep=' ')

    >data

    >data.pr<-princomp(data,cor=TRUE) #data为数据矩阵或数据框,cor为是否用相关阵,默认为协差阵,scores为是否输出成分得分

    >summary(data.pr,loading=TRUE) #loading=TURE选项列出了主成分对应原始变量的系数

      其中:standard deviation 标准偏差 Porportion of Variance 贡献率(方差比例)

           comulative proportion 累计贡献率(累计比例)

    画出三种碎石图

    >screeplot(data.pr)  #条型

    >biplot(data.pr)    #分散型

    >screeplot(data.pr,type=("line"))  #线型

    主成分分析R软件实现程序(三):作业

    首先读取成绩数据

    ```{r, echo=TRUE}
    grade <- read.csv(file.choose(),sep=",",header=T)
    ```
    下面对数据进行标准化处理
    ```{r, echo=TRUE}
    sd_grade <- scale(grade[2:43,2:7]);sd      #对数据进行标准化处理
    sd_grade_pcomp <- princomp(sd_grade,cor=T);   #sd_grade_pcomp #主成分分析函数,cor=T为使用相关系数阵来进行分析,默认用协方差阵
    summary(sd_grade_pcomp,loadings=TRUE)  

    #形成一个总结,内含standard deviation 标准偏差 Porportion of Variance 贡献率(方差比例)comulative proportion 累计贡献率(累计比例)


    ```

    由结果看,前三个主成分的累积贡献方差率已达85%,故可选前三个主成分.


    ```{r, echo=TRUE}
    screeplot(sd_grade_pcomp,type="lines")
    p<-predict(sd_grade_pcomp);p
    ```

  • 相关阅读:
    .NET Core技术研究-通过Roslyn代码分析技术规范提升代码质量
    ASP.NET Core技术研究-全面认识Web服务器Kestrel
    .NET Core技术研究-主机Host
    ASP.NET Core技术研究-探秘依赖注入框架
    ASP.NET Core技术研究-探秘Host主机启动过程
    .NET Core技术研究-中间件的由来和使用
    深入浅出腾讯BERT推理模型--TurboTransformers
    深入浅出PyTorch(算子篇)
    深入浅出Transformer
    生产者消费者问题总结
  • 原文地址:https://www.cnblogs.com/aoublog/p/4108896.html
Copyright © 2011-2022 走看看