r - R psych tetrachoric - 二分变量
问题描述
我有一个对应于人格问卷项目的二分变量数据框。这是第一行。
head(mixclinic)
# A tibble: 6 x 15
CMS_1 CMS_2 CMS_3 CMS_4 CMS_5 CMS_6 CMS_7 CMS_8 CMS_9 CMS_10 CMS_11
<fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct> <fct>
1 1 1 0 1 0 1 0 0 0 0 0
2 1 1 0 1 0 0 0 1 0 0 0
3 1 1 0 1 0 1 0 0 0 0 0
4 0 1 0 1 0 1 0 1 0 0 0
5 0 1 0 1 0 1 0 0 0 0 0
6 1 1 0 1 1 1 0 0 0 0 0
我想进行四色相关,以找到解释变异性最大部分的因素。在搜索基于 R 的资源时,我遇到了具有 tetrachoric 功能的“psych”包。我阅读了文档,但仍然无法进行分析。似乎缺少帮助的教程。任何人都可以帮助或参考有用的资源吗?谢谢
解决方案
当输入数据框作为参数时,该函数可能无法很好地处理因素(也许如果您将它们全部切换为数字)。但是,它需要一个矩阵作为参数,所以这适用于我创建的数据集。将来,包含一个可重现的示例总是有帮助的。希望这可以帮助!
编辑:澄清。我认为问题在于您的数据集由因素组成。当变量是因子时,该函数似乎不起作用。如果变量是数字或输入的数据是矩阵,它将起作用。因此,无论您选择将数据框列转换为数字还是将数据框转换为矩阵,都将起作用(即,df_matrix <- data.matrix(df)
我的代码中的行将数据框转换为矩阵)。如果您有任何问题,请告诉我。
> # Creating your dataset
>
> library(tidyverse)
> library(psych)
>
> df <- data.frame(CMS_1 = sample(2, replace = T, size = 10)-1,
+ CMS_2 = sample(2, replace = T, size = 10)-1,
+ CMS_3 = sample(2, replace = T, size = 10)-1,
+ CMS_4 = sample(2, replace = T, size = 10)-1,
+ CMS_5 = sample(2, replace = T, size = 10)-1,
+ CMS_6 = sample(2, replace = T, size = 10)-1,
+ CMS_7 = sample(2, replace = T, size = 10)-1,
+ CMS_8 = sample(2, replace = T, size = 10)-1)
>
> df <- df %>% mutate_if(is.numeric, as.factor)
> str(df)
'data.frame': 10 obs. of 8 variables:
$ CMS_1: Factor w/ 2 levels "0","1": 1 2 1 2 2 2 1 2 2 2
$ CMS_2: Factor w/ 2 levels "0","1": 1 2 2 1 2 2 1 2 1 2
$ CMS_3: Factor w/ 2 levels "0","1": 1 1 2 2 1 1 1 1 1 1
$ CMS_4: Factor w/ 2 levels "0","1": 2 2 1 2 1 1 2 1 1 2
$ CMS_5: Factor w/ 2 levels "0","1": 2 1 1 2 2 2 1 2 1 2
$ CMS_6: Factor w/ 2 levels "0","1": 2 2 1 1 2 2 2 2 1 2
$ CMS_7: Factor w/ 2 levels "0","1": 2 1 2 1 1 2 1 1 1 2
$ CMS_8: Factor w/ 2 levels "0","1": 1 2 2 1 1 2 1 1 1 1
>
> # Covnerting your data.frame to a matrix
> df_matrix <- data.matrix(df)
>
>
> tetrachoric(df_matrix)
For i = 6 j = 3 A cell entry of 0 was replaced with correct = 0.5. Check your data!
For i = 8 j = 2 A cell entry of 0 was replaced with correct = 0.5. Check your data!
Call: tetrachoric(x = df_matrix)
tetrachoric correlation
CMS_1 CMS_2 CMS_3 CMS_4 CMS_5 CMS_6 CMS_7 CMS_8
CMS_1 1.00
CMS_2 0.47 1.00
CMS_3 -0.31 -0.21 1.00
CMS_4 -0.37 -0.54 -0.02 1.00
CMS_5 0.43 0.27 -0.22 0.02 1.00
CMS_6 0.14 0.45 -0.74 0.29 0.44 1.00
CMS_7 -0.44 0.34 0.22 -0.02 0.29 0.20 1.00
CMS_8 -0.13 0.58 0.33 -0.33 -0.44 -0.10 0.46 1.00
with tau of
CMS_1 CMS_2 CMS_3 CMS_4 CMS_5 CMS_6 CMS_7 CMS_8
-0.52 -0.25 0.84 0.00 -0.25 -0.52 0.25 0.52
Warning message:
In cor.smooth(mat) : Matrix was not positive definite, smoothing was done
推荐阅读
- java - Java - 从 python 转换 json 响应
- python - 使用 xarray/dask 中的多个 netcdf 文件分块时的意外行为
- django - 视图 bonet.decorators.wrapper_func 没有返回 HttpResponse 对象。它返回 None 而不是
- haskell - 未找到 HLint 程序。哈斯克尔
- kubernetes - swagger-UI 可以在 kubernetes 中为服务工作吗?
- oracle-apex - Oracle Apex - 交互式报告下载问题
- jquery - 检查文本以更改背景颜色
- flutter - 颤振错误:以下 NoSuchMethodError 被抛出构建
- javascript - 如何从 id 列表中获取 id 的用户名
- css - asp.net 缩小字体和图像文件夹中的 css 文件