num4tststatistic2 0.0.2 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1cde00758d2f1f56ba425ce885da276d76272564848fd176dc78ab7e271ffdc5
4
- data.tar.gz: c0631d73f042ab0bc7be1be74f408cc298cf0237a6ad56c7b9342edfbf8ef807
3
+ metadata.gz: cfd90c54dab3784be95fad71d373a338e24c17a41b0bb5ddde46e46d77a4e739
4
+ data.tar.gz: 6fa678137d1a9b7fa3336a8f61bdc3fe03d89cb67c6ece3ff5ddb27c5216cfb3
5
5
  SHA512:
6
- metadata.gz: 80815f8945e899f8699bb3d06a27abc41c8b00967ab9f2b6b0badb2540c19a13f123f8a376c05358f277cc10c6947e6c4b028a5738d91b3f38002f6f614fd410
7
- data.tar.gz: bd512533a00f76c4e6ed738c25bfb6cc61af2c634d5b28dac6236844e03e15088e5a846acead538b4dd8e1e4e38d99b258b5bc945fe68912f96999a519842374
6
+ metadata.gz: 20ec74c474a5d8524ab8c18eac95b33ac5c0bc96241a8aa8dea2aa3a2bb41d633c90aad4561611f25f421b68af754b5ebae32ac08a1ceb73b0ae672a1c9714ef
7
+ data.tar.gz: 2520663599be76415a0fb3a6106d096f5697be92fdbf1371affff34ac4f9aa1b6da0f24e36c5ef7150e6cd2eec05d94207fd38be17a97552ab78326d3e583e6a
data/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.1.2] - 2024-05-08
6
+
7
+ ### chg
8
+ - change function name from diffPopulationMean2 to diffPopulationVarMean
9
+
10
+ ## [0.1.1] - 2024-05-06
11
+
12
+ ### add
13
+ - add function of diffPopulationMean2.
14
+ - add CorreFact.
15
+
5
16
  ## [0.0.2] - 2024-04-22
6
17
 
7
18
  ### add
data/lib/corrtest.rb ADDED
@@ -0,0 +1,151 @@
1
+ require 'num4tststatistic'
2
+ require 'hypothTest3'
3
+
4
+ # 相関検定
5
+ module CorrTestLib
6
+ # 無相関の検定
7
+ class DecorrTestLib
8
+ def initialize
9
+ @corr = CorrStatisticLib.new
10
+ @hypothTest = Num4HypothTestLib::DecorrTestLib.new
11
+ end
12
+ # ピアソン相関係数
13
+ #
14
+ # @overload pearsoCorrelation(x, y, a)
15
+ # @param [Array] x xのデータ(double[])
16
+ # @param [Array] y yのデータ(double[])
17
+ # @param [double] a 有意水準
18
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
19
+ # @example
20
+ # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
21
+ # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
22
+ # corrTest = CorrTestLib::DecorrTestLib.new
23
+ # corrTest.pearsoCorrelation(x, y, 0.05)
24
+ # => true
25
+ def pearsoCorrelation(x, y, a)
26
+ df = x.size - 2
27
+ statistic = @corr.pearsoCorrelation(x, y)
28
+ return @hypothTest.twoSideTest(statistic, df, a)
29
+ end
30
+ # スピアマンの順位相関係数
31
+ #
32
+ # @overload spearmanscorr(x, y, a)
33
+ # @param [Array] x xのデータ(double[])
34
+ # @param [Array] y yのデータ(double[])
35
+ # @param [double] a 有意水準
36
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
37
+ # @example
38
+ # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
39
+ # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
40
+ # corrTest = CorrTestLib::DecorrTestLib.new
41
+ # corrTest.spearmanscorr(x, y, 0.05)
42
+ # => true
43
+ def spearmanscorr(x, y, a)
44
+ df = x.size - 2
45
+ statistic = @corr.spearmanscorr(x, y)
46
+ return @hypothTest.twoSideTest(statistic, df, a)
47
+ end
48
+ # ケンドールの順位相関係数
49
+ #
50
+ # @overload kendallscorr(x, y, a)
51
+ # @param [Array] x xのデータ(double[])
52
+ # @param [Array] y yのデータ(double[])
53
+ # @param [double] a 有意水準
54
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
55
+ # @example
56
+ # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
57
+ # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
58
+ # corrTest = CorrTestLib::DecorrTestLib.new
59
+ # corrTest.kendallscorr(x, y, 0.05)
60
+ # => false
61
+ def kendallscorr(x, y, a)
62
+ df = x.size - 2
63
+ statistic = @corr.kendallscorr(x, y)
64
+ return @hypothTest.twoSideTest(statistic, df, a)
65
+ end
66
+ end
67
+ # 母相関係数の検定
68
+ class CorreFactLib
69
+ def initialize(hypothTest3)
70
+ @hypothTest3 = hypothTest3
71
+ @corr = CorrStatisticLib.new
72
+ end
73
+ # ピアソン相関係数
74
+ #
75
+ # @overload pearsoCorrelation(x, y, rth0, a)
76
+ # @param [Array] x xのデータ(double[])
77
+ # @param [Array] y yのデータ(double[])
78
+ # @param [double] rth0 母相関係数
79
+ # @param [double] a 有意水準
80
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
81
+ # @example
82
+ # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
83
+ # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
84
+ # hypothTest = Num4HypothTestLib::TwoSideTestLib.new
85
+ # corrTest = CorrTestLib::CorreFactLib.new(hypothTest)
86
+ # corrTest.pearsoCorrelation(x, y, -0.3, 0.05)
87
+ # => true
88
+ def pearsoCorrelation(x, y, rth0, a)
89
+ raise TypeError unless @hypothTest3.kind_of?(HypothTest3IF)
90
+ statistic = @corr.pearsoCorrelation(x, y)
91
+ return @hypothTest3.populationCorre(statistic, x.size, rth0, a)
92
+ end
93
+ # スピアマンの順位相関係数
94
+ #
95
+ # @overload spearmanscorr(x, y, rth0, a)
96
+ # @param [Array] x xのデータ(double[])
97
+ # @param [Array] y yのデータ(double[])
98
+ # @param [double] rth0 母相関係数
99
+ # @param [double] a 有意水準
100
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
101
+ # @example
102
+ # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
103
+ # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
104
+ # hypothTest = Num4HypothTestLib::TwoSideTestLib.new
105
+ # corrTest = CorrTestLib::CorreFactLib.new(hypothTest)
106
+ # corrTest.spearmanscorr(x, y, -0.3, 0.05)
107
+ # => true
108
+ def spearmanscorr(x, y, rth0, a)
109
+ raise TypeError unless @hypothTest3.kind_of?(HypothTest3IF)
110
+ statistic = @corr.spearmanscorr(x, y)
111
+ return @hypothTest3.populationCorre(statistic, x.size, rth0, a)
112
+ end
113
+ # ケンドールの順位相関係数
114
+ #
115
+ # @overload kendallscorr(x, y, rth0, a)
116
+ # @param [Array] x xのデータ(double[])
117
+ # @param [Array] y yのデータ(double[])
118
+ # @param [double] rth0 母相関係数
119
+ # @param [double] a 有意水準
120
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
121
+ # @example
122
+ # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
123
+ # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
124
+ # hypothTest = Num4HypothTestLib::TwoSideTestLib.new
125
+ # corrTest = CorrTestLib::CorreFactLib.new(hypothTest)
126
+ # corrTest.kendallscorr(x, y, -0.3, 0.05)
127
+ # => true
128
+ def kendallscorr(x, y, rth0, a)
129
+ raise TypeError unless @hypothTest3.kind_of?(HypothTest3IF)
130
+ statistic = @corr.kendallscorr(x, y)
131
+ return @hypothTest3.populationCorre(statistic, x.size, rth0, a)
132
+ end
133
+ end
134
+
135
+ class CorrStatisticLib
136
+ def initialize
137
+ @paraTest = Num4TstStatisticLib::ParametrixTestLib.new
138
+ @nonParaTest = Num4TstStatisticLib::NonParametrixTestLib.new
139
+ end
140
+ def pearsoCorrelation(x, y)
141
+ return @paraTest.pearsoCorrelation(x, y)
142
+ end
143
+ def spearmanscorr(x, y)
144
+ return @nonParaTest.spearmanscorr(x, y)
145
+ end
146
+ def kendallscorr(x, y)
147
+ return @nonParaTest.kendallscorr(x, y)
148
+ end
149
+ end
150
+ private_constant :CorrStatisticLib
151
+ end
@@ -3,6 +3,7 @@ require 'hypothTest3'
3
3
 
4
4
  # 統計的仮説検定
5
5
  module Num4TstStatistic2Lib
6
+ # パラメトリック検定
6
7
  class ParametrixTestLib
7
8
  def initialize(hypothTest3)
8
9
  @hypothTest3 = hypothTest3
@@ -68,6 +69,29 @@ module Num4TstStatistic2Lib
68
69
  statistic = @paraTest.populationRatio(m, n, p0)
69
70
  return @hypothTest3.normDistTest(statistic, a)
70
71
  end
72
+ # 2つの母平均の差の検定
73
+ #
74
+ # @overload diffPopulationVarMean(xi1, xi2, a)
75
+ # @param [Array] xi1 x1のデータ(double[])
76
+ # @param [Array] xi2 x2のデータ(double[])
77
+ # @param [double] a 有意水準
78
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
79
+ # @example
80
+ # xi1 = [165, 130, 182, 178, 194, 206, 160, 122, 212, 165, 247, 195]
81
+ # xi2 = [180, 180, 235, 270, 240, 285, 164, 152]
82
+ # hypothTest = Num4HypothTestLib::TwoSideTestLib.new
83
+ # paraTest = Num4TstStatistic2Lib::ParametrixTestLib.new(hypothTest)
84
+ # paraTest.diffPopulationVarMean(xi1, xi2, 0.05)
85
+ # => false
86
+ def diffPopulationVarMean(xi1, xi2, a)
87
+ bRet = diffPopulationVar(xi1, xi2, a)
88
+
89
+ if bRet == true # 等分散ではない
90
+ return diffPopulationMean2UnEquVar(xi1, xi2, a)
91
+ else # 等分散性
92
+ return diffPopulationMean2EquVar(xi1, xi2, a)
93
+ end
94
+ end
71
95
  # 2つの母平均の差の検定(等分散性を仮定)
72
96
  #
73
97
  # @overload diffPopulationMean2EquVar(xi1, xi2, a)
@@ -222,6 +246,7 @@ module Num4TstStatistic2Lib
222
246
  return @hypothTest3.chi2DistTest(statistic, df, a)
223
247
  end
224
248
  end
249
+ # ノンパラメトリック検定
225
250
  class NonParametrixTestLib
226
251
  def initialize(hypothTest3)
227
252
  @hypothTest3 = hypothTest3
@@ -287,6 +312,7 @@ module Num4TstStatistic2Lib
287
312
  return @nonParaTest.ks2test(xi1, xi2, a)
288
313
  end
289
314
  end
315
+ # 外れ値検定
290
316
  class OutlierLib
291
317
  def initialize
292
318
  @outlier = Num4TstStatisticLib::OutlierLib.new
@@ -317,73 +343,11 @@ module Num4TstStatistic2Lib
317
343
  # @example
318
344
  # xi = [3.4, 3.5, 3.3, 2.2, 3.3, 3.4, 3.6, 3.2]
319
345
  # outlier = Num4TstStatistic2Lib::OutlierLib.new
320
- # outlier.grubbs("LDH", xi)
346
+ # outlier.errbar("LDH", xi)
321
347
  # => errbar.jpeg
322
348
  def errbar(dname, xi)
323
349
  @outlier.errbar(dname, xi)
324
350
  end
325
351
  end
326
- # 無相関の検定
327
- class DecorrTestLib
328
- def initialize
329
- @paraTest = Num4TstStatisticLib::ParametrixTestLib.new
330
- @nonParaTest = Num4TstStatisticLib::NonParametrixTestLib.new
331
- @hypothTest = Num4HypothTestLib::DecorrTestLib.new
332
- end
333
- # ピアソン相関係数
334
- #
335
- # @overload pearsoCorrelation(x, y, a)
336
- # @param [Array] x xのデータ(double[])
337
- # @param [Array] y yのデータ(double[])
338
- # @param [double] a 有意水準
339
- # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
340
- # @example
341
- # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
342
- # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
343
- # paraTest = Num4TstStatistic2Lib::DecorrTestLib.new
344
- # paraTest.pearsoCorrelation(x, y, 0.05)
345
- # => true
346
- def pearsoCorrelation(x, y, a)
347
- df = x.size - 2
348
- statistic = @paraTest.pearsoCorrelation(x, y)
349
- return @hypothTest.twoSideTest(statistic, df, a)
350
- end
351
- # スピアマンの順位相関係数
352
- #
353
- # @overload spearmanscorr(x, y, a)
354
- # @param [Array] x xのデータ(double[])
355
- # @param [Array] y yのデータ(double[])
356
- # @param [double] a 有意水準
357
- # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
358
- # @example
359
- # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
360
- # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
361
- # paraTest = Num4TstStatistic2Lib::DecorrTestLib.new
362
- # paraTest.spearmanscorr(x, y, 0.05)
363
- # => true
364
- def spearmanscorr(x, y, a)
365
- df = x.size - 2
366
- statistic = @nonParaTest.spearmanscorr(x, y)
367
- return @hypothTest.twoSideTest(statistic, df, a)
368
- end
369
- # ケンドールの順位相関係数
370
- #
371
- # @overload kendallscorr(x, y, a)
372
- # @param [Array] x xのデータ(double[])
373
- # @param [Array] y yのデータ(double[])
374
- # @param [double] a 有意水準
375
- # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
376
- # @example
377
- # x = [113, 64, 16, 45, 28, 19, 30, 82, 76]
378
- # y = [31, 5, 2, 17, 18, 2, 9, 25, 13]
379
- # paraTest = Num4TstStatistic2Lib::DecorrTestLib.new
380
- # paraTest.kendallscorr(x, y, 0.05)
381
- # => false
382
- def kendallscorr(x, y, a)
383
- df = x.size - 2
384
- statistic = @nonParaTest.kendallscorr(x, y)
385
- return @hypothTest.twoSideTest(statistic, df, a)
386
- end
387
- end
388
352
  end
389
353
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: num4tststatistic2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - siranovel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-22 00:00:00.000000000 Z
11
+ date: 2024-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: num4tststatistic
@@ -59,8 +59,9 @@ files:
59
59
  - CHANGELOG.md
60
60
  - Gemfile
61
61
  - LICENSE
62
+ - lib/corrtest.rb
62
63
  - lib/num4tststatistic2.rb
63
- homepage: http://github.com/siranovel/num4tststatistic2
64
+ homepage: https://github.com/siranovel/num4tststatistic2
64
65
  licenses:
65
66
  - MIT
66
67
  metadata: {}