Моя первоначальная цель состояла в том, чтобы выполнить ttest и получить pvalue. Я использовал OneSampleTTest, который выглядел многообещающе, но результаты закончились. в stdout следующим образом:
julia> OneSampleTTest([1,2,3,4,5],3.1)
One sample t-test
-----------------
Population details:
parameter of interest: Mean
value under h_0: 3.1
point estimate: 3.0
95% confidence interval: (1.0368, 4.9632)
Test summary:
outcome with 95% confidence: fail to reject h_0
two-sided p-value: 0.8944
Details:
number of observations: 5
t-statistic: -0.14142135623730961
degrees of freedom: 4
empirical standard error: 0.7071067811865476
Я хотел получить это значение:
two-sided p-value: 0.8944
Чтобы перенаправить стандартный вывод, я нашел этот на нашем сайте здесь. Но похоже, что на вывод OneSampleTTest это не влияет.
julia> using HypothesisTests
julia> original_stdout = stdout
Base.TTY(RawFD(0x0000001b) open, 0 bytes waiting)
julia> (rd, wr) = redirect_stdout()
(Base.PipeEndpoint(RawFD(0x00000020) open, 0 bytes waiting), Base.PipeEndpoint(RawFD(0x00000025) open, 0 bytes waiting))
julia> println("test")
julia> s = readline(rd)
"test"
julia> s == "test"
true
julia> OneSampleTTest([1,2,3,4,5],3.1)
One sample t-test
-----------------
Population details:
parameter of interest: Mean
value under h_0: 3.1
point estimate: 3.0
95% confidence interval: (1.0368, 4.9632)
Test summary:
outcome with 95% confidence: fail to reject h_0
two-sided p-value: 0.8944
Details:
number of observations: 5
t-statistic: -0.14142135623730961
degrees of freedom: 4
empirical standard error: 0.7071067811865476
julia>
А если бы сделал еще s = readline(rd)
то застрял бы, ибо в rd ничего нет. (я предполагаю)
Моей единственной другой идеей решить эту проблему было бы попытаться записать результаты теста в файл и снова проанализировать этот файл. Но я хочу провести миллионы t-тестов и использовать файл для хранения результатов и перечитывать их каждый раз, когда это звучит ужасно.