2015-10-16 90 views

回答

1

根据文献[1],直接使用Pearson r计算置信区间是非常复杂的,因为它不是正态分布。需要以下步骤:

  1. 转换R键Z '
  2. 计算Z' 置信区间。 z'的采样分布近似正态分布,标准误差为1/sqrt(n-3)。
  3. 将置信区间转换回r。

下面是一些示例代码:

def r_to_z(r): 
    return math.log((1 + r)/(1 - r))/2.0 

def z_to_r(z): 
    e = math.exp(2 * z) 
    return((e - 1)/(e + 1)) 

def r_confidence_interval(r, alpha, n): 
    z = r_to_z(r) 
    se = 1.0/math.sqrt(n - 3) 
    z_crit = stats.norm.ppf(1 - alpha/2) # 2-tailed z critical value 

    lo = z - z_crit * se 
    hi = z + z_crit * se 

    # Return a sequence 
    return (z_to_r(lo), z_to_r(hi)) 

参考:

  1. http://onlinestatbook.com/2/estimation/correlation_ci.html
2

使用rpy2和心理库(你需要安装R和先R内运行install.packages(“心理”))

from rpy2.robjects.packages import importr 
psychometric=importr('psychometric') 
psychometric.CIr(r=.9, n = 100, level = .95) 

0.9哪里是你的关系, n样本量和0.95置信水平