Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 多序列相关的P值_R_Correlation - Fatal编程技术网

R 多序列相关的P值

R 多序列相关的P值,r,correlation,R,Correlation,我有一些关于polyserial(){polycor}函数的基本问题 rho是否存在p值,或者是否可以计算 对于二元假设 正常,被测试的无效假设“是的,双变量正常”吗?也就是说,我想要一个高p值还是低p值 谢谢 如果您使用以下内容形成返回的对象: polS <- polyserial(x, y, ML=TRUE, std.err=TRUE) # ML estimate polS我给包作者发了电子邮件(因为我有同样的问题),根据他的澄清,我给出了我的答案: 首先,一个简单的问题:较高的p

我有一些关于
polyserial()
{polycor}函数的基本问题

  • rho是否存在p值,或者是否可以计算
  • 对于二元假设 正常,被测试的无效假设“是的,双变量正常”吗?也就是说,我想要一个高p值还是低p值

  • 谢谢

    如果您使用以下内容形成返回的对象:

     polS <- polyserial(x, y, ML=TRUE, std.err=TRUE) # ML estimate
    

    polS我给包作者发了电子邮件(因为我有同样的问题),根据他的澄清,我给出了我的答案:

    首先,一个简单的问题:较高的p值(传统上>0.05)会让你更加确信分布是双变量正态分布。较低的p值表示非正态分布,但如果样本量足够大,则最大似然估计(选项
    ML=TRUE
    ),非正态性并不重要;无论如何,这种相关性仍然是可靠的

    现在,对于更难的问题:要计算p值,您需要:

  • 使用std.err=TRUE选项执行polyserial以访问更多详细信息
  • 从生成的polyserial对象中,访问
    var[1,1]
    元素
    var
    是参数估计的协方差矩阵,
    sqrt(var[1,1])
    是标准误差(显示在rho结果后输出的括号中)
  • 根据标准误差,您可以根据下面的R代码计算p值
  • 下面是一些代码,根据polyserial文档中的示例代码,用可复制的R代码来说明这一点:

    library(mvtnorm)
    library(polycor)
    
    set.seed(12345)
    data <- rmvnorm(1000, c(0, 0), matrix(c(1, .5, .5, 1), 2, 2))
    x <- data[,1]
    y <- data[,2]
    y <- cut(y, c(-Inf, -1, .5, 1.5, Inf))
    
    # 2-step estimate
    poly_2step <- polyserial(x, y, std.err=TRUE)  
    poly_2step
    ## 
    ## Polyserial Correlation, 2-step est. = 0.5085 (0.02413)
    ## Test of bivariate normality: Chisquare = 8.604, df = 11, p = 0.6584
    std.err_2step <- sqrt(poly_2step$var[1, 1])
    std.err_2step
    ## [1] 0.02413489
    p_value_2step <- 2 * pnorm(-abs(poly_2step$rho / std.err_2step))
    p_value_2step
    ## [1] 1.529176e-98
    # ML estimate
    poly_ML <- polyserial(x, y, ML=TRUE, std.err=TRUE) 
    poly_ML
    ## 
    ## Polyserial Correlation, ML est. = 0.5083 (0.02466)
    ## Test of bivariate normality: Chisquare = 8.548, df = 11, p = 0.6635
    ## 
    ##                  1      2       3
    ## Threshold -0.98560 0.4812 1.50700
    ## Std.Err.   0.04408 0.0379 0.05847
    std.err_ML <- sqrt(poly_ML$var[1, 1])
    std.err_ML
    ## [1] 0.02465517
    p_value_ML <- 2 * pnorm(-abs(poly_ML$rho / std.err_ML))
    p_value_ML
    ##              
    ## 1.927146e-94
    
    库(mvtnorm)
    图书馆(polycor)
    种子集(12345)
    
    数据谢谢!你能举个例子吗。如何从POL中获取z统计和Pv值?您应该首先搜索SO和google,了解如何从估计和估计方差(或sd)中进行统计。如果您无法通过搜索或阅读一本介绍性统计数据的书来做到这一点,那么您应该发布一个新问题,表明您已经阅读了此信息和多序列帮助页面。如果我理解,
    cut
    函数仅用于分类数据。但我不明白
    2*pnorm(-abs(poly_ML$rho/std.err_ML))
    。分布应该是正常的,还是假定为正常的?