首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以得到3个变量的单个相关值(皮尔逊相关性)吗?

我可以得到3个变量的单个相关值(皮尔逊相关性)吗?
EN

Stack Overflow用户
提问于 2020-07-30 01:41:24
回答 2查看 73关注 0票数 0

我有3个量化变量(公共意识形态,政党意识形态,政府意识形态),2017年的法国。X,Y,Z。我可以用Rstudio计算皮尔逊相关性,并获得一个表示这三个变量的相关性的单一值吗?

EN

回答 2

Stack Overflow用户

发布于 2020-07-30 04:38:41

您可以使用主成分来确定所有变量的最大协方差。第一个分量和所解释的方差的量衡量它们的联合协方差。例如,这里是R附带的虹膜数据集。它有四个度量标准,但过程是相同的:

代码语言:javascript
复制
data(iris)
iris.pca <- prcomp(iris[, 1:4], scale.=TRUE)
summary(iris.pca)
# Importance of components:
#                           PC1    PC2     PC3     PC4
# Standard deviation     1.7084 0.9560 0.38309 0.14393
# Proportion of Variance 0.7296 0.2285 0.03669 0.00518
# Cumulative Proportion  0.7296 0.9581 0.99482 1.00000

第一个分量解释了四个变量之间72.96%的协方差。如果变量测量的是不同的事物或不同的尺度,则使用scale.=TRUE很重要。它在分析之前将变量转换为Z分数,因此每个变量占总方差的1/k,其中k是变量的数量。

根据我的评论和你的代码,你想要这样的东西:

代码语言:javascript
复制
RConvergence <- read.csv("C:/Users/TA/Desktop/RConvergence./RConvergence.csv",sep = ",", header=TRUE)
RConvergence.pca <- prcomp(RConvergence[, 3:5], scale.=TRUE)
summary(RConvergence.pca)

要计算每个国家/地区的值,只需使用split数据并使用lapply

代码语言:javascript
复制
RConvergence.split <- split(RConvergence, RConvergence$Country)
RConvergence.split.pca <- lapply(RConvergence.split, function(x) prcomp(x[, 3:5], scale.=TRUE))
lapply(RConvergence.split.pca, summary)
票数 0
EN

Stack Overflow用户

发布于 2020-07-30 17:11:36

我的数据已经标准化了。Its适用于28个州,2008-2017年,公共,政党,政府。我想计算公共/政党/政府之间的意识形态趋同,我已经量化了(mydata),每个州,每一年。

我的输入.csv文件名为RConvergence,我输入了下面的代码。

代码语言:javascript
复制
mydata = read.csv("C:/Users/TA/Desktop/RConvergence./RConvergence.csv",sep = ",", header=TRUE)

mydata$Country
mydata$Category
mydata$Public
mydata$Parties
mydata$Government
##Convergence Indicator


#First Method
data(RConvergence)
RConvergence.pca <- prcomp(RConvergence.pca[, 1:3], scale.=TRUE)
summary(RConvergence.pca)

#Second Method

table_convergence_var = data.frame(mydata$Public, mydata$Parties, mydata$Government)

Princ_convergence = prcomp(na.omit(table_convergence_var))
Summary(princ_convergence)
Plot(princ_convergence, type = “I”)

我收到了错误。

#First method警告消息: In data(RConvergence):未找到数据集‘RConvergence’

#摘要中的第二个方法错误(Princ_convergence):找不到对象'princ_convergence‘

下面是我的数据集的一个示例。

代码语言:javascript
复制
mydata_struct = structure(
  list(
    Country = structure(
      c(1L, 1L, 1L, 1L, 1L, 1L),
      .Label = c(
        "Austria",
        "Belgium",
        "Bulgaria",
        "Croatia",
        "Cyprus",
        "Czech Republic",
        "Denmark",
        "Estonia",
        "Finland",
        "France",
        "Germany",
        "Greece",
        "Hungary",
        "Ireland",
        "Italy",
        "Latvia",
        "Lithuania",
        "Luxembourg",
        "Malta",
        "Netherlands",
        "Poland",
        "Portugal",
        "Romania",
        "Slovakia",
        "Slovenia",
        "Spain",
        "Sweden",
        "United Kingdom"
      ),
      class = "factor"
    ),
    Category = 2008:2013,
    Public = c(
      -0.098093881,
      -0.001267959,
      0.289209808,
      1.160643109,
      0.708788805,
      0.611962882
    ),
    Parties = c(
      -1.462018781,-0.298023744,
      -0.298023744,
      -0.298023744,
      -0.298023744,
      0.865971293
    ),
    Government = c(
      0.820970916,
      0.664989625,
      0.754121791,
      0.73183875,
      0.018781421,
      -0.270898119
    )
  ),
  row.names = c(NA,
                6L),
  class = "data.frame"
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63159452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档