R中检验两个向量相关性的函数有cor.test()
,能同时返回r和pvalue, 那么julia中的类似函数在哪里呢?我只看到了一个cor()
函数,但是没法计p值。
另外,R中有一个做zscore计算的scale
命令,请问在julia中是什么呢?
这个居然没人实现,有时间写个实现好了,当复习非参数统计了。
1 个赞
using Distributions
using Statistics
function interval(r::Float64, n::Int64)
z = 0.5 * log(exp(1), (1 + r) / (1 - r))
s = 1 / (sqrt(n - 3))
zl = z - 1.96 * s
zh = z + 1.96 * s
low = (exp(2 * zl) - 1) / (exp(2 * zl) + 1)
high = (exp(2 * zh) - 1) / (exp(2 * zh) + 1)
(low, high)
end
function cor_test(x::AbstractVector, y::AbstractVector)
if length(x) == length(y)
r = cor(x, y)
n = length(x)
df = n - 2
t = r * sqrt((df) / (1 - r^2))
tdist = cdf(TDist(df), t)
if r > 0
pvalue = (1 - tdist) * 2
else
pvalue = (tdist) * 2
end
else
println("请输入等长的两个向量")
end
fin = (r = r, pvalue = pvalue, df = df, t = t, cfi = interval(r, n))
end
我自己写了一个计算皮尔森相关的函数