R语言【漫画】数据PCA主成分分析报告

数据基本探查

数据框包含1714个样本,20个变量:

序号

变量

序号

变量

1

漫画名称

11

是否完结

2

标签

12

更新时间

3

作者

13

话题数

4

合约关系

14

累计打赏

5

评分

15

本站打赏排名

6

评分人数

16

今日打赏数

7

人气

17

本月月票

8

收藏数

18

本月打赏排名

9

好票

19

单次打赏最高数额

10

黑票

20

作者作品数

 

提取数据

去除文本类型的列:[漫画名称]、[标签]、[作者]、[合约关系]、[是否完结]

library(openxlsx)

data <- read.xlsx("漫画.xlsx")

dim(data)

#从数据帧提取数据

data1 <- data.frame(data$评分,data$评分人数,data$人气,data$收藏数,data$好票,data$黑票,data$话题数,

                    data$累计打赏,data$本站打赏排名,data$今日打赏数,data$本月月票,

                    data$本月打赏排名,data$单次得到打赏最高数额,data$作者作品数)

names(data1) <- c("评分","评分人数","人气","收藏数","好票","黑票","话题数","累计打赏","本站打赏排名",

                  "今日打赏数","本月月票","本月打赏排名","单次得到打赏最高数额","作者作品数")

 

替换特殊文本

# 将‘未上榜’、‘--’替换成NA,将[人气]中的'万'去除

for (col in colnames(data1)) {

  if (class(data1[,col]) == 'factor'){

    cat(col,class(data1[,col]),'\n')

    data1[,col]<-as.character(data1[,col])

    data1[,col] <- gsub("万","",data1[,col])

    data1[,col] <- gsub("未上榜",NA,data1[,col])

    data1[,col] <- gsub("--",NA,data1[,col])

    data1[,col]<-as.numeric(data1[,col])

  }

}

 

 

查看摘要信息

R语言【漫画】数据PCA主成分分析报告_第1张图片

绘制数据缺失图表

library(VIM)

par(family='STKaiti')

aggr(data1, col=c('navyblue','red'), numbers=TRUE, sortVars=TRUE, labels=names(data1), cex.axis=.7, gap=3, ylab=c("Histogram of missing data","Pattern"))

R语言【漫画】数据PCA主成分分析报告_第2张图片

计算缺失率

pMiss <- function(x){sum(is.na(x))/length(x)*100}

apply(data1,2,pMiss)

#删除缺失比例大于25%的列

data2 = subset(data1,select=-c(本站打赏排名,本月打赏排名,单次得到打赏最高数额))

缺失值均值填充

library(Hmisc)

for (col in colnames(data2)) {

  data2[,col] = impute(data2[,col], mean ) # replace with mean

}

相关性分析

library(corrplot)#先加载包

M <- cor(data2)

corrplot(M, method = "number")

R语言【漫画】数据PCA主成分分析报告_第3张图片

碎石检验

首先判断主成分的数目,这里使用Cattell碎石检验,表示了特征值与主成数目的关系。一般的原则是:要保留的主成分的个数的特征值要大于1且大于平行分析的特征值。

library(psych)

fa.parallel(df,fa="pc",n.iter = 100,show.legend = T,main="Cattell碎石检验",ylabel="特征值")

abline(1,0)

 

R语言【漫画】数据PCA主成分分析报告_第4张图片

可以看出有3个特征值是大于1且大于平行分析线。所以选择3个主成分即可保留数据集的大部分信息。

提取主成分

PCA<-principal(df, nfactors = 3, rotate = "varimax")

R语言【漫画】数据PCA主成分分析报告_第5张图片

h2栏指成分公因子方差——主成分对每个变量的方差解释度。

u2栏指成分唯一性——方差无法被主成分解释的比例(1-h2)。

SS loadings行包含了与主成分相关的特征,指的是与特定主成分相关准化后的方差

Proportion Var行表示的是每个主成分整个数据集的解程度。

可以看到,3个主成分解1179%的程度。

获取主成分得分

部分显示

R语言【漫画】数据PCA主成分分析报告_第6张图片

主成分得分图

biplot(PCA$weights,PCA$scores)

R语言【漫画】数据PCA主成分分析报告_第7张图片

在第一主成份(横坐标)上,可以看出【今日打赏数】越多,【本月月票】也会越多;

在第二主成份(纵坐标)上,可以看出【评分人数】越多,获得【好票】或者【黑票】也越多,【人气】也会变高

参考:

https://www.cnblogs.com/SCUJIN/p/5965946.html

 

你可能感兴趣的:(R语言,PCA,R语言)