0

我试图在连续词汇得分和句法生产力(二分法:生产性与非生产性)之间获得点双序列相关性。

我尝试了两个 ltm 包

> biserial.cor (lol$voc1_tvl, lol$synt, use = c("complete.obs")) 

和 polycor 包

> polyserial( lol$voc1_tvl, lol$synt, ML = FALSE, control = list(), std.err = FALSE, maxcor=.9999, bins=4)

问题是这两个测试都没有给我一个 p 值

我如何运行点双列相关测试并获得相关的 p 值,或者自己计算 p 值?

4

2 回答 2

3

由于点双列相关只是流行的 Peason 积矩系数的一个特例,您可以使用它cor.test来近似(稍后将详细介绍)连续 X 和二分 Y 之间的相关性。例如,给定以下数据:

set.seed(23049)
x <- rnorm(1e3)
y <- sample(0:1, 1e3, replace = TRUE)

跑步cor.test(x, y)会给你你想要的信息。

    Pearson's product-moment correlation

data:  x and y
t = -1.1971, df = 998, p-value = 0.2316
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.09962497  0.02418410
sample estimates:
        cor 
-0.03786575

作为系数之间相似性的指示,请注意计算出的相关性与给您的-0.03786575相似性:ltm::biserial.cor

> library(ltm)
> biserial.cor(x, y, level = 2)
[1] -0.03784681

差异在于基于biserial.cor总体计算的事实,标准偏差除以,n其中计算样本的标准偏差,除以。corcor.testn - 1

正如 cgage 所指出的,您还可以使用该polyserial()函数,在我的示例中会产生

> polyserial(x, y, std.err = TRUE)

Polyserial Correlation, 2-step est. = -0.04748 (0.03956)
Test of bivariate normality: Chisquare = 1.891, df = 5, p = 0.864

在这里,我认为计算出的相关性(-0.04748)的差异是由于polyserial使用优化算法来近似计算(除非 Y 具有两个以上的水平,否则这是不必要的)。

于 2017-04-17T09:49:48.077 回答
2

使用ggplot2数据集mpg作为可重现的示例:

library(ggplot2)
# Use class as dichotomous variable (must subset)
newData = subset(mpg, class == 'midsize' | class == 'compact')

# Now getting p-value
library(ltm)
polyserial(newData$cty,newData$class, std.err = T)

您将看到您希望使用std.err=T的所有输出polyserial

于 2016-03-09T01:08:50.470 回答