num4hypothtst 0.0.4-java → 0.0.6-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 036effc8d6ceec1112745a846f5ea5a0c64b0ddbf5dedc1b539686a0549e4128
4
- data.tar.gz: 8f77c2093ac590b8afa5a2cfbfa2766e6e115a0d5838bee9ae4258d90b6264fd
3
+ metadata.gz: 3ca4e5d987a51f734b8fa9866eb4d668194b143f37da1bb025dd048da2bcab5c
4
+ data.tar.gz: 5b85df0a870ead8c3f365f175a0d417dc9d6113c6da5d82271dd53acc12f0da7
5
5
  SHA512:
6
- metadata.gz: 5a49287883d7fe6a45a96e51e7e5028870c3e8ee3940ad85eb8ca786b96ef5e0326c48278a42ea680d2a80db7014cda5ab4ffb7b2bce717b3fd62b4135aaeb27
7
- data.tar.gz: ae6a3bbb3c09af2ac945f79554c5e5127c8abe92456bae57fd9485ccd6560b24c53397610be34632fe12547b1c73cbc67eab35e708e9ffe9f15bd7e16c13f849
6
+ metadata.gz: f06a8d25ba253ffe6a7c1b56285e8ec5ee5d701994e88c598974b786cd17a55326b473a35bff79d3079b2181095b9a296354c38dde844eaa83a95c49c94439ef
7
+ data.tar.gz: 1bd51e00421b6a0d051ff3dd083f2c8717cc618f833afd44e2136adde40545872c7a20f9fc5299b1b24469bfe78429d7fce08d920e35f992ba7d6463b302d7c1
data/CHANGELOG.md CHANGED
@@ -2,10 +2,24 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## [0.0.6] - 2023-12-27
6
+
7
+ ### delete
8
+ - del function of wilcoxon.
9
+
10
+ ### add
11
+ - add function of decorrelation.
12
+ - add function of populationCorre.
13
+
14
+ ## [0.0.5] - 2023-12-19
15
+
16
+ ### add
17
+ - add function of wilcoxon.
18
+
5
19
  ## [0.0.4] - 2023-10-13
6
20
 
7
21
  ### change
8
- - chg gnTest
22
+ - chg gnTest
9
23
 
10
24
  ## [0.0.3] - 2023-10-05
11
25
 
@@ -0,0 +1,16 @@
1
+ package hypothtst;
2
+
3
+ import org.apache.commons.math3.distribution.TDistribution;
4
+ public class DecorrTest implements HypothTest {
5
+ private static HypothTest hypothTest = new DecorrTest();
6
+ public static HypothTest getInstance() {
7
+ return hypothTest;
8
+ }
9
+ public boolean twoSideTest(double r, int n, double a) {
10
+ double statistic = Math.abs(r) * Math.sqrt(n - 2.0) / Math.sqrt(1.0 - r * r);
11
+ TDistribution tDist = new TDistribution(n - 2);
12
+ double p = 1.0 - tDist.cumulativeProbability(statistic);
13
+
14
+ return (p < a) ? true : false;
15
+ }
16
+ }
@@ -2,10 +2,10 @@ package hypothtst;
2
2
 
3
3
  import org.apache.commons.math3.distribution.TDistribution;
4
4
  // グラブス・スミルノフの外れ値の検定
5
- public class GrubbsTest {
6
- private static GrubbsTest grubbs = new GrubbsTest();
7
- public static GrubbsTest getInstance() {
8
- return grubbs;
5
+ public class GrubbsTest implements HypothTest2 {
6
+ private static HypothTest2 hypothTest2 = new GrubbsTest();
7
+ public static HypothTest2 getInstance() {
8
+ return hypothTest2;
9
9
  }
10
10
  public boolean twoSideTest(double statistic, int n, double a) {
11
11
  double r_val = calcGnValue(n, a / 2.0);
@@ -15,6 +15,7 @@ public class GrubbsTest {
15
15
  double r_val = calcGnValue(n, a);
16
16
  return evaluation(statistic, r_val);
17
17
  }
18
+
18
19
  private double calcGnValue(int n, double a) {
19
20
  TDistribution tDist = new TDistribution(n);
20
21
  double t = tDist.inverseCumulativeProbability(a / n);
@@ -2,9 +2,6 @@ package hypothtst;
2
2
 
3
3
  // 仮設検定
4
4
  interface HypothTest {
5
- boolean tDistTest(double statistic, double df, double a);
6
- boolean chi2DistTest(double statistic, double df, double a);
7
- boolean normDistTest(double statistic, double a);
8
- boolean fDistTest(double statistic, double nf, double df, double a);
5
+ boolean twoSideTest(double statistic, int n, double a);
9
6
  }
10
7
 
@@ -0,0 +1,8 @@
1
+ package hypothtst;
2
+
3
+ // 仮設検定
4
+ interface HypothTest2 {
5
+ boolean twoSideTest(double statistic, int n, double a);
6
+ boolean oneSideTest(double statistic, int n, double a);
7
+ }
8
+
@@ -0,0 +1,12 @@
1
+ package hypothtst;
2
+
3
+ // 仮設検定
4
+ interface HypothTest3 {
5
+ boolean tDistTest(double statistic, double df, double a);
6
+ boolean chi2DistTest(double statistic, double df, double a);
7
+ boolean normDistTest(double statistic, double a);
8
+ boolean fDistTest(double statistic, double nf, double df, double a);
9
+
10
+ boolean populationCorre(double r, int n, double rth0, double a);
11
+ }
12
+
@@ -6,10 +6,10 @@ import org.apache.commons.math3.distribution.NormalDistribution;
6
6
  import org.apache.commons.math3.distribution.FDistribution;
7
7
 
8
8
  // 片側検定(左側)
9
- public class LeftSideTest implements HypothTest {
10
- private static HypothTest hupothTest = new LeftSideTest();
11
- public static HypothTest getInstance() {
12
- return hupothTest;
9
+ public class LeftSideTest implements HypothTest3 {
10
+ private static HypothTest3 hypothTest3 = new LeftSideTest();
11
+ public static HypothTest3 getInstance() {
12
+ return hypothTest3;
13
13
  }
14
14
  public boolean tDistTest(double statistic, double df, double a) {
15
15
  TDistribution tDist = new TDistribution(df);
@@ -35,7 +35,16 @@ public class LeftSideTest implements HypothTest {
35
35
 
36
36
  return evaluation(statistic, l_val);
37
37
  }
38
-
38
+ public boolean populationCorre(double r, int n, double rth0, double a) {
39
+ double statistic = Math.sqrt(n-3.0) *
40
+ (
41
+ 0.5 * Math.log((1.0 + r) / (1.0 - r))
42
+ - 0.5 * Math.log((1.0 + rth0) / (1.0 - rth0))
43
+ );
44
+
45
+ return normDistTest(statistic, a);
46
+ }
47
+
39
48
  private boolean evaluation(double statistic, double l_val) {
40
49
  boolean ret = true;
41
50
 
@@ -5,10 +5,10 @@ import org.apache.commons.math3.distribution.ChiSquaredDistribution;
5
5
  import org.apache.commons.math3.distribution.NormalDistribution;
6
6
  import org.apache.commons.math3.distribution.FDistribution;
7
7
  // 片側検定(右側)
8
- public class RightSideTest implements HypothTest {
9
- private static HypothTest hupothTest = new RightSideTest();
10
- public static HypothTest getInstance() {
11
- return hupothTest;
8
+ public class RightSideTest implements HypothTest3 {
9
+ private static HypothTest3 hypothTest3 = new RightSideTest();
10
+ public static HypothTest3 getInstance() {
11
+ return hypothTest3;
12
12
  }
13
13
  public boolean tDistTest(double statistic, double df, double a) {
14
14
  TDistribution tDist = new TDistribution(df);
@@ -34,6 +34,16 @@ public class RightSideTest implements HypothTest {
34
34
 
35
35
  return evaluation(statistic, r_val);
36
36
  }
37
+ public boolean populationCorre(double r, int n, double rth0, double a) {
38
+ double statistic = Math.sqrt(n-3.0) *
39
+ (
40
+ 0.5 * Math.log((1.0 + r) / (1.0 - r))
41
+ - 0.5 * Math.log((1.0 + rth0) / (1.0 - rth0))
42
+ );
43
+
44
+ return normDistTest(statistic, a);
45
+ }
46
+
37
47
  private boolean evaluation(double statistic, double r_val) {
38
48
  boolean ret = true;
39
49
 
@@ -6,10 +6,10 @@ import org.apache.commons.math3.distribution.NormalDistribution;
6
6
  import org.apache.commons.math3.distribution.FDistribution;
7
7
 
8
8
  // 両側検定
9
- public class TwoSideTest implements HypothTest {
10
- private static HypothTest hupothTest = new TwoSideTest();
11
- public static HypothTest getInstance() {
12
- return hupothTest;
9
+ public class TwoSideTest implements HypothTest3 {
10
+ private static HypothTest3 hypothTest3 = new TwoSideTest();
11
+ public static HypothTest3 getInstance() {
12
+ return hypothTest3;
13
13
  }
14
14
  public boolean tDistTest(double statistic, double df, double a) {
15
15
  TDistribution tDist = new TDistribution(df);
@@ -39,6 +39,16 @@ public class TwoSideTest implements HypothTest {
39
39
 
40
40
  return evaluation(statistic, l_val, r_val);
41
41
  }
42
+ public boolean populationCorre(double r, int n, double rth0, double a) {
43
+ double statistic = Math.sqrt(n-3.0) *
44
+ (
45
+ 0.5 * Math.log((1.0 + r) / (1.0 - r))
46
+ - 0.5 * Math.log((1.0 + rth0) / (1.0 - rth0))
47
+ );
48
+
49
+ return normDistTest(statistic, a);
50
+ }
51
+
42
52
  private boolean evaluation(double statistic, double l_val, double r_val) {
43
53
  boolean ret = true;
44
54
 
data/lib/num4hypothtst.rb CHANGED
@@ -6,6 +6,7 @@ java_import 'hypothtst.TwoSideTest'
6
6
  java_import 'hypothtst.RightSideTest'
7
7
  java_import 'hypothtst.LeftSideTest'
8
8
  java_import 'hypothtst.GrubbsTest'
9
+ java_import 'hypothtst.DecorrTest'
9
10
 
10
11
  # 統計的仮設検定のためのライブラリ
11
12
  # (Apache commoms math3使用)
@@ -13,7 +14,7 @@ module Num4HypothTestLib
13
14
  # 両側検定
14
15
  class TwoSideTestLib
15
16
  def initialize
16
- @hypothTest = TwoSideTest.getInstance()
17
+ @hypothTest3 = TwoSideTest.getInstance()
17
18
  end
18
19
  # T検定
19
20
  #
@@ -23,7 +24,7 @@ module Num4HypothTestLib
23
24
  # @param [double] a 有意水準
24
25
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
25
26
  def tDistTest(statistic, df, a)
26
- return @hypothTest.tDistTest(statistic, df, a)
27
+ return @hypothTest3.tDistTest(statistic, df, a)
27
28
  end
28
29
  # 階2乗検定
29
30
  #
@@ -33,7 +34,7 @@ module Num4HypothTestLib
33
34
  # @param [double] a 有意水準
34
35
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
35
36
  def chi2DistTest(statistic, df, a)
36
- return @hypothTest.chi2DistTest(statistic, df, a)
37
+ return @hypothTest3.chi2DistTest(statistic, df, a)
37
38
  end
38
39
  # 標準正規分布検定
39
40
  #
@@ -42,7 +43,7 @@ module Num4HypothTestLib
42
43
  # @param [double] a 有意水準
43
44
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
44
45
  def normDistTest(statistic, a)
45
- return @hypothTest.normDistTest(statistic, a)
46
+ return @hypothTest3.normDistTest(statistic, a)
46
47
  end
47
48
  # F検定
48
49
  #
@@ -53,13 +54,26 @@ module Num4HypothTestLib
53
54
  # @param [double] a 有意水準
54
55
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
55
56
  def fDistTest(statistic, nf, df, a)
56
- return @hypothTest.fDistTest(statistic, nf, df, a)
57
+ return @hypothTest3.fDistTest(statistic, nf, df, a)
58
+ end
59
+
60
+ # 母相関係数の検定量
61
+ #
62
+ # @overload populationCorre(r, n, rth0, a)
63
+ # @param [double] r 標本相関係数
64
+ # @param [int] n 自由度
65
+ # @param [double] rth0 母相関係数
66
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
67
+ # @note
68
+ # 標準正規分布 N(0,1*1)に従う(近似的)
69
+ def populationCorre(r, n, rth0, a)
70
+ return @hypothTest3.populationCorre(r, n, rth0, a);
57
71
  end
58
72
  end
59
73
  # 片側(右側)検定
60
74
  class RightSideTestLib
61
75
  def initialize
62
- @hypothTest = RightSideTest.getInstance()
76
+ @hypothTest3 = RightSideTest.getInstance()
63
77
  end
64
78
  # T検定
65
79
  #
@@ -69,7 +83,7 @@ module Num4HypothTestLib
69
83
  # @param [double] a 有意水準
70
84
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
71
85
  def tDistTest(statistic, df, a)
72
- return @hypothTest.tDistTest(statistic, df, a)
86
+ return @hypothTest3.tDistTest(statistic, df, a)
73
87
  end
74
88
  # 階2乗検定
75
89
  #
@@ -79,7 +93,7 @@ module Num4HypothTestLib
79
93
  # @param [double] a 有意水準
80
94
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
81
95
  def chi2DistTest(statistic, df, a)
82
- return @hypothTest.chi2DistTest(statistic, df, a)
96
+ return @hypothTest3.chi2DistTest(statistic, df, a)
83
97
  end
84
98
  # 標準正規分布検定
85
99
  #
@@ -88,7 +102,7 @@ module Num4HypothTestLib
88
102
  # @param [double] a 有意水準
89
103
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
90
104
  def normDistTest(statistic, a)
91
- return @hypothTest.normDistTest(statistic, a)
105
+ return @hypothTest3.normDistTest(statistic, a)
92
106
  end
93
107
  # F検定
94
108
  #
@@ -99,13 +113,26 @@ module Num4HypothTestLib
99
113
  # @param [double] a 有意水準
100
114
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
101
115
  def fDistTest(statistic, nf, df, a)
102
- return @hypothTest.fDistTest(statistic, nf, df, a)
116
+ return @hypothTest3.fDistTest(statistic, nf, df, a)
117
+ end
118
+
119
+ # 母相関係数の検定量
120
+ #
121
+ # @overload populationCorre(r, n, rth0, a)
122
+ # @param [double] r 標本相関係数
123
+ # @param [int] n 自由度
124
+ # @param [double] rth0 母相関係数
125
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
126
+ # @note
127
+ # 標準正規分布 N(0,1*1)に従う(近似的)
128
+ def populationCorre(r, n, rth0, a)
129
+ return @hypothTest3.populationCorre(r, n, rth0, a);
103
130
  end
104
131
  end
105
132
  # 片側(左側)検定
106
133
  class LeftSideTestLib
107
134
  def initialize
108
- @hypothTest = LeftSideTest.getInstance()
135
+ @hypothTest3 = LeftSideTest.getInstance()
109
136
  end
110
137
  # T検定
111
138
  #
@@ -115,7 +142,7 @@ module Num4HypothTestLib
115
142
  # @param [double] a 有意水準
116
143
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
117
144
  def tDistTest(statistic, df, a)
118
- return @hypothTest.tDistTest(statistic, df, a)
145
+ return @hypothTest3.tDistTest(statistic, df, a)
119
146
  end
120
147
  # 階2乗検定
121
148
  #
@@ -125,7 +152,7 @@ module Num4HypothTestLib
125
152
  # @param [double] a 有意水準
126
153
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
127
154
  def chi2DistTest(statistic, df, a)
128
- return @hypothTest.chi2DistTest(statistic, df, a)
155
+ return @hypothTest3.chi2DistTest(statistic, df, a)
129
156
  end
130
157
  # 標準正規分布検定
131
158
  #
@@ -134,7 +161,7 @@ module Num4HypothTestLib
134
161
  # @param [double] a 有意水準
135
162
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
136
163
  def normDistTest(statistic, a)
137
- return @hypothTest.normDistTest(statistic, a)
164
+ return @hypothTest3.normDistTest(statistic, a)
138
165
  end
139
166
  # F検定
140
167
  #
@@ -145,13 +172,26 @@ module Num4HypothTestLib
145
172
  # @param [double] a 有意水準
146
173
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
147
174
  def fDistTest(statistic, nf, df, a)
148
- return @hypothTest.fDistTest(statistic, nf, df, a)
175
+ return @hypothTest3.fDistTest(statistic, nf, df, a)
176
+ end
177
+
178
+ # 母相関係数の検定量
179
+ #
180
+ # @overload populationCorre(r, n, rth0, a)
181
+ # @param [double] r 標本相関係数
182
+ # @param [int] n 自由度
183
+ # @param [double] rth0 母相関係数
184
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
185
+ # @note
186
+ # 標準正規分布 N(0,1*1)に従う(近似的)
187
+ def populationCorre(r, n, rth0, a)
188
+ return @hypothTest3.populationCorre(r, n, rth0, a);
149
189
  end
150
190
  end
151
191
  # グラブス・スミルノフの外れ値の検定
152
192
  class GrubbsTestLib
153
193
  def initialize
154
- @hypothTest = GrubbsTest.getInstance()
194
+ @hypothTest2 = GrubbsTest.getInstance()
155
195
  end
156
196
  # 両側検定
157
197
  #
@@ -161,7 +201,7 @@ module Num4HypothTestLib
161
201
  # @param [double] a 有意水準
162
202
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
163
203
  def twoSideTest(statistic, n, a)
164
- return @hypothTest.twoSideTest(statistic, n, a)
204
+ return @hypothTest2.twoSideTest(statistic, n, a)
165
205
  end
166
206
  # 片側検定
167
207
  #
@@ -171,7 +211,23 @@ module Num4HypothTestLib
171
211
  # @param [double] a 有意水準
172
212
  # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
173
213
  def oneSideTest(statistic, n, a)
174
- return @hypothTest.oneSideTest(statistic, n, a)
214
+ return @hypothTest2.oneSideTest(statistic, n, a)
215
+ end
216
+ end
217
+ # 無相関の検定
218
+ class DecorrTestLib
219
+ def initialize
220
+ @hypothTest = DecorrTest.getInstance()
221
+ end
222
+ # 両側検定
223
+ #
224
+ # @overload twoSideTest(r, n, a)
225
+ # @param [double] r 相関係数
226
+ # @param [int] n 自由度
227
+ # @param [double] a 有意水準
228
+ # @return [boolean] 検定結果(true:棄却域内 false:棄却域外)
229
+ def twoSideTest(r, n, a)
230
+ return @hypothTest.twoSideTest(r, n, a)
175
231
  end
176
232
  end
177
233
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: num4hypothtst
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: java
6
6
  authors:
7
7
  - siranovel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-10-13 00:00:00.000000000 Z
11
+ date: 2023-12-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -61,8 +61,11 @@ files:
61
61
  - Gemfile
62
62
  - LICENSE
63
63
  - Rakefile
64
+ - ext/num4hypothtst/hypothtst/DecorrTest.java
64
65
  - ext/num4hypothtst/hypothtst/GrubbsTest.java
65
66
  - ext/num4hypothtst/hypothtst/HypothTest.java
67
+ - ext/num4hypothtst/hypothtst/HypothTest2.java
68
+ - ext/num4hypothtst/hypothtst/HypothTest3.java
66
69
  - ext/num4hypothtst/hypothtst/LeftSideTest.java
67
70
  - ext/num4hypothtst/hypothtst/RightSideTest.java
68
71
  - ext/num4hypothtst/hypothtst/TwoSideTest.java