回答編集履歴

2

追記

2020/10/21 00:24

投稿

jeanbiego
jeanbiego

スコア3966

test CHANGED
@@ -23,3 +23,61 @@
23
23
  # 0.11825764574839932
24
24
 
25
25
  ```
26
+
27
+ ## 追記
28
+
29
+ α=0.1以上の分布表がないので作ってみました。
30
+
31
+ ```python3
32
+
33
+ from scipy.stats import f
34
+
35
+ import pandas as pd
36
+
37
+ import matplotlib.pyplot as plt
38
+
39
+ m_max = 10
40
+
41
+ n_max = 15
42
+
43
+ a = 0.1
44
+
45
+
46
+
47
+ def F(a, m, n):
48
+
49
+ return f.ppf(1-a, dfn=m-1, dfd=n-1)
50
+
51
+ df = pd.DataFrame({m-1:[round(F(a, m, n),3) for n in range(2,n_max+1)] for m in range(2,m_max+1)}, index=[*range(1,n_max)])
52
+
53
+ fig, ax = plt.subplots()
54
+
55
+ ax.axis('off')
56
+
57
+ ax.axis('tight')
58
+
59
+ ax.table(cellText=df.values,
60
+
61
+ colLabels=df.columns,
62
+
63
+ rowLabels=df.index,
64
+
65
+ loc='center',
66
+
67
+ bbox=[0,0,1,1])
68
+
69
+ plt.title(f"α = {round(a,2)}")
70
+
71
+ plt.savefig(f'table_α={round(a,2)}.png')
72
+
73
+ ```
74
+
75
+ 下の表はα=0.05, 0.1, 0.2のF分布表です。(0.05はお持ちの本と同じ内容だと思います)
76
+
77
+ 右下の自由度9&14のFの値が、2以上で2に一番近くなるのがα=0.1というのがわかると思います。
78
+
79
+ ![0.05](aa262368aca272e50d1cfba3269d4baf.png)
80
+
81
+ ![0.1](113eeba668094a2d63c89a15cd411f2d.png)
82
+
83
+ ![0.2](3554e96a422e6adcd5c3f849252be630.png)

1

コード修正

2020/10/21 00:24

投稿

jeanbiego
jeanbiego

スコア3966

test CHANGED
@@ -12,14 +12,14 @@
12
12
 
13
13
  from scipy.stats import f
14
14
 
15
+ m = 10
16
+
15
17
  n = 15
16
-
17
- m = 10
18
18
 
19
19
  F = 2
20
20
 
21
- print(f.sf(F, dfn=n-1, dfd=m-1))
21
+ print(f.sf(F, dfn=m-1, dfd=n-1))
22
22
 
23
- # 0.14887673385903585
23
+ # 0.11825764574839932
24
24
 
25
25
  ```