非階層的な部署コードと階層的な部署テキストを持つテーブルから、部署テキストで階層構造を導出する。の補足
まえがき
前回の宿題の1つが解決できたのでメモを残す記事です。前回の宿題とは、
部署テキストの途中から他の部署名を含むという場合(e.g. システム開発第一部 vs 老朽化更改システム開発第一部 のような部署テキストが存在する場合、システム開発第一部 ⊃ 老朽化更改システム開発第一部)となってしまう)、これはおそらく正しく無いと思うものの、今の所これを回避する方法が分からない。
非階層的な部署コードと階層的な部署テキストを持つテーブルから、部署テキストで階層構造を導出する。 - axjack's blog
です。*1
今回は、前回と同じデータに「老朽化更改システム開発第一部」を加えた際、「システム開発第一部 ⊃ 老朽化更改システム開発第一部」とならないようなwhere句の作り方を書いてみます。
ソースコード
前回と同じスタイルで作成します。
実行環境
テーブル作成
--部署テーブル create table DeptList ( deptNum varchar(256) -- 部署コード ,deptText varchar(256) -- 部署テキスト );
データinsert
--データ投入 insert into DeptList values('1000','システム開発第一部'); insert into DeptList values('10001','システム開発第一部第一課'); insert into DeptList values('10002','システム開発第一部第二課'); insert into DeptList values('10003','システム開発第一部第三課'); insert into DeptList values('10004','システム開発第一部第三課一係'); insert into DeptList values('10005','システム開発第一部第三課二係'); insert into DeptList values('1006','システム開発第二部'); insert into DeptList values('1007','システム開発第二部国内課'); insert into DeptList values('1008','システム開発第二部海外課'); insert into DeptList values('1009','システム開発第二部海外課アジア係'); insert into DeptList values('1010','システム開発第二部海外課ヨーロッパ係'); insert into DeptList values('1011','品質管理部'); insert into DeptList values('1012','運用管理部'); insert into DeptList values('1013','運用管理部総務課'); insert into DeptList values('1014','総務部'); insert into DeptList values('1015','人事部'); insert into DeptList values('10151','人事部人事課'); insert into DeptList values('1016','総務部給与課'); insert into DeptList values('1017','企画室'); insert into DeptList values('1018','企画室企画課'); insert into DeptList values('1019','企画室企画課第一企画係'); insert into DeptList values('10191','企画室企画課第二企画係'); insert into DeptList values('10192','企画室企画課第三企画係'); insert into DeptList values('1022','経理部第一課'); insert into DeptList values('1029','経理部第二課'); insert into DeptList values ('10301','老朽化更改システム開発第一部'); -- 今回追加したデータ insert into DeptList values('10311','外部委託システム運用管理部'); -- 同様に今回追加したデータ
部署の紐付け
create temporary table dept0 select a.deptNum as srcNum --紐付け元の部署コード , a.deptText as srcText --紐付け元の部署テキスト , b.deptNum as dstNum --紐付け先の部署コード , b.deptText as dstText --紐付け先の部署テキスト from DeptList as a , DeptList as b where length(concat('dummy',a.deptText)) > length(replace(concat('dummy',a.deptText), concat('dummy',b.deptText), '')) ;
結果確認
今回は、「老朽化更改システム開発第一部」と「外部委託システム運用管理部」がそれぞれどのように紐付けられたかを確認します。
select文
select * from dept0 where srcNum in ('10301','10311') order by srcNum desc ;
実行結果
srcNum | srcText | dstNum | dstText |
---|---|---|---|
10311 | 外部委託システム運用管理部 | 10311 | 外部委託システム運用管理部 |
10301 | 老朽化更改システム開発第一部 | 10301 | 老朽化更改システム開発第一部 |
前回の抽出ロジックの場合
select文
create temporary table dept0 select a.deptNum as srcNum , a.deptText as srcText , b.deptNum as dstNum , b.deptText as dstText from DeptList as a , DeptList as b where length(a.deptText) > length(replace(a.deptText,b.deptText, '')) ; select * from dept0 where srcNum in ('10301','10311') order by srcNum desc ;
実行結果
srcNum | srcText | dstNum | dstText |
---|---|---|---|
10311 | 外部委託システム運用管理部 | 1012 | 運用管理部 |
10311 | 外部委託システム運用管理部 | 10311 | 外部委託システム運用管理部 |
10301 | 老朽化更改システム開発第一部 | 1000 | システム開発第一部 |
10301 | 老朽化更改システム開発第一部 | 10301 | 老朽化更改システム開発第一部 |
考察
where句はlength(concat('dummy',a.deptText)) > length(replace(concat('dummy',a.deptText), concat('dummy',b.deptText), ''))
です。テキストの頭にdummy
なる文字列を連結してみました。これを付ける場合と付けない場合を比較すると、下記のようになります。
a | b | replaceできる? | replaceすると? | replace後の文字数は? | replace前後で文字数を比較すると? | 文字数比較の真偽は? |
---|---|---|---|---|---|---|
老朽化更改システム開発第一部 | システム開発第一部 | yes | 老朽化更改 | 5 | 14 > 5 | true |
dummy老朽化更改システム開発第一部 | dummyシステム開発第一部 | no | dummy老朽化更改システム開発第一部 | 19 | 19 > 19 | false |
なんとも見辛い表ですが、、テキストの頭にdummy
を追加することによって、中間一致から前方一致することができた、ということです。
*1:「開発」が抜けていたので、追記箇所を太字で補いました。
非階層的な部署コードと階層的な部署テキストを持つテーブルから、部署テキストで階層構造を導出する。
はじめに
タイトルの詳しい説明
日本語って難しいですね。非階層的な部署コードと階層的な部署テキストを持つテーブル
とは、以下のようなテーブルを意味します。
部署コード | 部署テキスト |
---|---|
1000 | システム開発第一部 |
10001 | システム開発第一部第一課 |
10002 | システム開発第一部第二課 |
10003 | システム開発第一部第三課 |
10004 | システム開発第一部第三課一係 |
10005 | システム開発第一部第三課二係 |
1006 | システム開発第二部 |
1007 | システム開発第二部国内課 |
1008 | システム開発第二部海外課 |
1009 | システム開発第二部海外課アジア係 |
1010 | システム開発第二部海外課ヨーロッパ係 |
部署コードがシーケンシャルのようなそうでもないような微妙な付け方をしている一方で、部署テキストはなんとなく
┏システム開発第一部 ┃ ┣システム開発第一部第一課 ┃ ┣システム開発第一部第二課 ┃ ┗システム開発第一部第三課 ┃ ┣システム開発第一部第三課一係 ┃ ┣システム開発第一部第三課二係 ┃ ┗システム開発第一部第三課二係 ┃ ┗システム開発第二部 ┣システム開発第二部国内課 ┗システム開発第二部海外課 ┣システム開発第二部海外課アジア係 ┗システム開発第二部海外課アジア係
のように階層化できそうですよね。ということで、SQLにて部署テキストで階層構造を導出する
ことにします。
どうやるか?
日本語で書くと以下の2ステップを踏みます。
- テーブルを自己結合する
- 同じテーブルを別名で二つ指定するので、便宜上A・Bと名付ける
- 以下の条件を満たすレコードを抽出する
- Aの部署名をBの部署名で
''
(ブランク)に置換し(★1) - Aの部署名の長さ が ★1の長さより大きい
- Aの部署名をBの部署名で
なぜこのように抽出すると(一見)うまくいくのか?
置換が成功する例を見てみます。
A.部署名 = システム開発第一部第一課 B.部署名 = システム開発第一部 なとき、 ・Aの部署名をBの部署名で''(ブランク)に置換し(★1) → 「システム開発第一部第一課」が「第一課」と置換されます。 ・ Aの部署名の長さ が ★1の長さより大きい → 12文字 vs 3文字 なので条件を満たす
一方、置換が失敗する例はというと、
----------【例1】---------- A.部署名 = システム開発第一部 B.部署名 = システム開発第一部第一課 なとき、 ・Aの部署名をBの部署名で''(ブランク)に置換し(★1) → 置換ができないので「システム開発第一部」のままとなります ・ Aの部署名の長さ が ★1の長さより大きい → 12文字 vs 12文字 なので条件を満たさない
----------【例2】---------- A.部署名 = システム開発第一部第一課 B.部署名 = システム開発第二部 なとき、 ・Aの部署名をBの部署名で''(ブランク)に置換し(★1) → 置換ができないので「システム開発第一部第一課」のままとなります ・ Aの部署名の長さ が ★1の長さより大きい → 12文字 vs 12文字 なので条件を満たさない
となるので、(一見)うまくいきます。
ソース
実際にテーブルを作ってSELECT文を実行してみます。
実行環境
DB Fiddle の MySQL v8.0 にて実行しました。
テーブル作成
--部署テーブル create table DeptList ( deptNum varchar(256) -- 部署コード ,deptText varchar(256) -- 部署テキスト );
データinsert
階層的で無い(i.e. 子を持たない部)データも加えてinsertします。
--データ投入 insert into DeptList values('1000','システム開発第一部'); insert into DeptList values('10001','システム開発第一部第一課'); insert into DeptList values('10002','システム開発第一部第二課'); insert into DeptList values('10003','システム開発第一部第三課'); insert into DeptList values('10004','システム開発第一部第三課一係'); insert into DeptList values('10005','システム開発第一部第三課二係'); insert into DeptList values('1006','システム開発第二部'); insert into DeptList values('1007','システム開発第二部国内課'); insert into DeptList values('1008','システム開発第二部海外課'); insert into DeptList values('1009','システム開発第二部海外課アジア係'); insert into DeptList values('1010','システム開発第二部海外課ヨーロッパ係'); insert into DeptList values('1011','品質管理部'); insert into DeptList values('1012','運用管理部'); insert into DeptList values('1013','運用管理部総務課'); insert into DeptList values('1014','総務部'); insert into DeptList values('1015','人事部'); insert into DeptList values('10151','人事部人事課'); insert into DeptList values('1016','総務部給与課'); insert into DeptList values('1017','企画室'); insert into DeptList values('1018','企画室企画課'); insert into DeptList values('1019','企画室企画課第一企画係'); insert into DeptList values('10191','企画室企画課第二企画係'); insert into DeptList values('10192','企画室企画課第三企画係'); insert into DeptList values('1022','経理部第一課'); insert into DeptList values('1029','経理部第二課');
部署の紐付け
create temporary table dept0 select a.deptNum as srcNum --紐付け元の部署コード , a.deptText as srcText --紐付け元の部署テキスト , b.deptNum as dstNum --紐付け先の部署コード , b.deptText as dstText --紐付け先の部署テキスト from DeptList as a , DeptList as b where length(a.deptText) > length(replace(a.deptText, b.deptText, '')) ;
結果確認
なお、結果の解釈は「左側(srcNum, srcText)は右側(dstNum, dstText)の配下にある」です。
select * from dept0;
srcNum | srcText | dstNum | dstText |
---|---|---|---|
1000 | システム開発第一部 | 1000 | システム開発第一部 |
10001 | システム開発第一部第一課 | 1000 | システム開発第一部 |
10002 | システム開発第一部第二課 | 1000 | システム開発第一部 |
10003 | システム開発第一部第三課 | 1000 | システム開発第一部 |
10004 | システム開発第一部第三課一係 | 1000 | システム開発第一部 |
10005 | システム開発第一部第三課二係 | 1000 | システム開発第一部 |
10001 | システム開発第一部第一課 | 10001 | システム開発第一部第一課 |
10002 | システム開発第一部第二課 | 10002 | システム開発第一部第二課 |
10003 | システム開発第一部第三課 | 10003 | システム開発第一部第三課 |
10004 | システム開発第一部第三課一係 | 10003 | システム開発第一部第三課 |
10005 | システム開発第一部第三課二係 | 10003 | システム開発第一部第三課 |
10004 | システム開発第一部第三課一係 | 10004 | システム開発第一部第三課一係 |
10005 | システム開発第一部第三課二係 | 10005 | システム開発第一部第三課二係 |
1006 | システム開発第二部 | 1006 | システム開発第二部 |
1007 | システム開発第二部国内課 | 1006 | システム開発第二部 |
1008 | システム開発第二部海外課 | 1006 | システム開発第二部 |
1009 | システム開発第二部海外課アジア係 | 1006 | システム開発第二部 |
1010 | システム開発第二部海外課ヨーロッパ係 | 1006 | システム開発第二部 |
1007 | システム開発第二部国内課 | 1007 | システム開発第二部国内課 |
1008 | システム開発第二部海外課 | 1008 | システム開発第二部海外課 |
1009 | システム開発第二部海外課アジア係 | 1008 | システム開発第二部海外課 |
1010 | システム開発第二部海外課ヨーロッパ係 | 1008 | システム開発第二部海外課 |
1009 | システム開発第二部海外課アジア係 | 1009 | システム開発第二部海外課アジア係 |
1010 | システム開発第二部海外課ヨーロッパ係 | 1010 | システム開発第二部海外課ヨーロッパ係 |
1011 | 品質管理部 | 1011 | 品質管理部 |
1012 | 運用管理部 | 1012 | 運用管理部 |
1013 | 運用管理部総務課 | 1012 | 運用管理部 |
1013 | 運用管理部総務課 | 1013 | 運用管理部総務課 |
1014 | 総務部 | 1014 | 総務部 |
1016 | 総務部給与課 | 1014 | 総務部 |
1015 | 人事部 | 1015 | 人事部 |
10151 | 人事部人事課 | 1015 | 人事部 |
10151 | 人事部人事課 | 10151 | 人事部人事課 |
1016 | 総務部給与課 | 1016 | 総務部給与課 |
1017 | 企画室 | 1017 | 企画室 |
1018 | 企画室企画課 | 1017 | 企画室 |
1019 | 企画室企画課第一企画係 | 1017 | 企画室 |
10191 | 企画室企画課第二企画係 | 1017 | 企画室 |
10192 | 企画室企画課第三企画係 | 1017 | 企画室 |
1018 | 企画室企画課 | 1018 | 企画室企画課 |
1019 | 企画室企画課第一企画係 | 1018 | 企画室企画課 |
10191 | 企画室企画課第二企画係 | 1018 | 企画室企画課 |
10192 | 企画室企画課第三企画係 | 1018 | 企画室企画課 |
1019 | 企画室企画課第一企画係 | 1019 | 企画室企画課第一企画係 |
10191 | 企画室企画課第二企画係 | 10191 | 企画室企画課第二企画係 |
10192 | 企画室企画課第三企画係 | 10192 | 企画室企画課第三企画係 |
1022 | 経理部第一課 | 1022 | 経理部第一課 |
1029 | 経理部第二課 | 1029 | 経理部第二課 |
感想
良い点
- ひとまず1階層分( e.g. システム開発第一部 ⊃ システム開発第一部第一課) を紐づけることができた。
- 自分は自分自身に含まれる(e.g 企画室企画課 は 企画室企画課を含む) 結果となっているが、これはwhere句を弄れば抽出対象から外すことができる。
改善すべき点
一見
と付けた理由を書き残します。
- もし部署テキストが2階層・3階層…と続いてしまう場合、階層数が分からない場合、この手法では物足りなさが残る。
- 部署テキストの途中から他の部署名を含むという場合(e.g. システム第一部 vs 老朽化更改システム第一部 のような部署テキストが存在する場合、システム第一部 ⊃ 老朽化更改システム第一部)となってしまう)、これはおそらく正しく無いと思うものの、今の所これを回避する方法が分からない。
センター試験2019 数学I・数学Aの統計の問題だけを解く。数学Ⅱ・数学Bの統計もちょっとだけ解く。
統計のみ解いて、確率は手を出さないことにします・・・。問題文はリンク先または適当にググってください。
数学I・数学A〔2〕
(1)
2013年のヒストグラム
図1によると、2013年のboxplot(箱ひげ図)は、
- 最小値:72
- 1Q:76
- 中央値:81
- 3Q:89
- 最大値:136
周辺と読み取れるので、3となる。
2017年のヒストグラム
図1によると、2017年のboxplotは、
- 最小値:80
- 1Q:90
- 中央値:93
- 3Q:95
- 最大値:122
周辺と読み取れるので、4となる。
(2)
選択肢を吟味する。
- 0番:モンシロチョウとツバメの各初見日は、図3によると同じに見える。図3で言うと一番左の縦線が最小値。よって正しい。
- 1番:モンシロチョウの初見日の最大値はツバメの初見日の最大値よりもどうだろうか?図3で言うと一番右側の縦線を比較する。すると、モンシロチョウの初見日の最大値はツバメのそれよりも右側にあるので大きいと言える。よって正しい。
- 2番:中央値は図3の真ん中にある太い縦線である。ツバメの太い縦線よりも右側にモンシロチョウの太い縦線が位置している。つまり中央値もモンシロチョウの方が大きい。よって正しい。
- 3番:四分位範囲を比較する。モンシロチョウの四分位範囲は、3Q-1Q = 103 - 84 = 20。ツバメの四分位範囲は、3Q - 1Q = 97 - 88 = 9ぐらいと読めるので、3倍よりは小さいと思われる。よって正しい。
- 4番:モンシロチョウの四分位範囲は、15日以下か? 少なくとも四分位範囲が85〜100を含んでいるので15日よりも大きいと確実に言える。よって正しくない。
- 5番:ツバメの四分位範囲は、15日以下か?少なくとも四分位範囲が90〜95を含んでいるので5日よりは大きい。しかし、残りの範囲を足しても10日加算とはならない。よって正しい。
- 6番:モンシロチョウとツバメの初見日が同じところが少なくとも4地点あるか?図4の傾き1の直線は、モンシロチョウとツバメの初見日が、それぞれ同じであることを示している。この直線上に点は4つあるので、同じ初見日を持つ観測点は4地点あると言える。ところで「散布図の点には重なった点が2点」あるということなのでこの直線上に重なった点がもしあれば+2地点の可能性がある。ということで少なくとも4地点である。よって正しい。
- 7番:図4の点線の直線は傾き1±切片15な線である。この範囲に収まれば初見日の差は15日以下と言えるがしかし、よく見ると、点(69,86)および点(105,88)あたりに±15を超えた点がある。よって正しくない。
(3)
標準化の話である。標準化すると平均値:0, 分散:1となる。(従って標準偏差も1)
- 偏差の平均値は0
- X'の平均値は0
- X'の標準偏差は1
- 2σで約95%カバーできるので2
復習も兼ねてそれぞれ導出する
基本数式
偏差の平均値は0
X'の平均値は0
より、
X'の標準偏差は1
X'の分散を求めれば標準偏差は分散の平方根で出せる。諸々の代入は上述の結果を用いる。
となるので、
より
解答
- ソ:3
- タ:4
- チ:4
- ツ:7
- テ:0
- ト:0
- ナ:1
- ニ:2
数学2・数学Bは?
暗算だけだと解けなかった。メモのみ。
M ~ B(50, 0.08) = B(n, p) E[M] = np =50 * 0.08 = 4.0 V[M] = np(1-p) = 4 * (1-0.08) = 3.68 ≒ 3.7 1.64と来れば, 90%信頼区間, 両側10%。
感想
受験生の皆さんは受験お疲れ様でした。
- 数Ⅰの方:選択肢は多いけれども基本的な事柄が問われている。図の読み取りは大事。
- 数Ⅱの方:やはり基本的な事柄が問われている。最近の高校生は信頼区間なんて勉強するんだなぁ。
統計検定2級に合格したので勉強法やら参考書などを書いておきます。
はじめに
勉強の甲斐あって、2018年11月実施の統計検定2級に合格しました。ネットで検索したブログやら記事やらwebページやらを励みに、なんとか合格にたどり着いたというところです。
これから受験するみなさんの何か参考になったら良いな、という気持ちでこのブログ記事を書きます。
成績
2回受験して2回目で合格しました。
1回目の受験(2018年6月)
- 成績:不合格
- 評価:?(不合格者のうち、上位20〜40 %)
- 正答数:18問正解 in 34問
- 正答率:53 %
2回目の受験(2018年11月)
- 成績:合格
- 評価:A(優秀成績賞)
- 正答数:27問正解 in 34問
- 正答率:79 %
参考書・お世話になった本
- 改訂版 日本統計学会公式認定 統計検定2級対応 統計学基礎
- 通称:教科書。難しい箇所や範囲外の記述は容赦無く日本統計学会公式認定 統計検定1級対応 統計学に飛ばされます。試験対策で言うと、第1章(後述)と第5章(回帰分析の出力結果に対する考察)が、なかなか他の書籍では見かけない章なので、重要です。実は練習問題の追加解説ページがあります。
- 詳解演習 確率統計 (詳解演習ライブラリ)
- BOOK OFFで偶然見つけて買いました。演習問題の解答がちゃんと載っていて大変心強いです。
- 44の例題で学ぶ統計的検定と推定の解き方
- ネットで評判?だったので買った記憶。理論と実践で言えば実践に重きを置いた本。Kindle版で購入しました。仮説検定カタログと化しています。
- 平均・分散から始める一般化線形モデル入門
参考リンク・お世話になったリンク
資料探しのコツは、
- 統計 講義 site:ac.jp
- 医療統計 講義
- 生物統計 講義
のように、できれば大学の学部レベルあたりの講義資料を見るのが良いでしょう。まとまっているし信憑性もありそうですし。1つの資料にこだわらず何個も資料を横串で見ると、理解が深まって良いと思います。というか、一つの資料でカバーできる範囲では無いんだなぁと探していて思いました。
- 統計学の時間 | 統計WEB
- 大学の確率・統計 | 高校数学の美しい物語
- http://www3.u-toyama.ac.jp/kkarato/2016/statistics/
- ネットで見つけた資料の中では一番わかりやすいと個人的には思います。
- 生物統計入門
- 読めば必ずわかる 分散分析の基礎
- 健康統計学(2014年度) - 健康統計の基礎・健康統計学
- とりわけ平均値の検定のフロー
勉強法
全般
- 参考書に掲げた書籍の例題から演習問題から、片っ端から解く
- 参考リンクに掲げたページを、暇な時に読みこなす
- 勝手にヤマをハラない
- ここは難しいから諦めよう → 1回目の受験で落ちた原因
- 試験範囲は『統計検定2級対応 統計学基礎』の全ページです
分野別?の対策
教科書の目次に沿って書いてみます。
第1章 データの記述と要約
箱ひげ図やローレンツ曲線やジニ係数やラスパイレス指数でおなじみの第1章。ローレンツ曲線なんてコラム的な扱い、試験に出ないだろう・・・と思っていましたがちゃんと出題されます。ジニ係数もラスパイレス指数も同様です。
練習問題がなかなか見つからない範囲ですが、教科書の例題や定義はきちんと押さえておきましょう。練習問題が少ないとはいえ、試験前に2・3回は自分で計算して置いた方が良いです。定義式をふわっと覚えているだけだと、実際に試験で出題された際に後悔します。
第2章 確率と確率分布
分布と名のつくものは全暗記。この式で定義されているのは何分布?なんて問題も出ます。暗記さえしていれば解ける問題もあるので、そういうところは確実に抑え失点を防ぎましょう。
試験に出る応用的な確率の問題はわりかし難しいので、ここはあまり注力しなくても良いのでは?と個人的には思います。統計検定であって確率検定ではないので、サイコロを7回投げる時2以下の目が出る確率を解けるようになってもなんだかなぁ、と。
ただ、ベイズの定理や条件付き確率は、典型的な問題であれば解けるようにしておいた方が良いと思います。サイコロよりはベイズの定理の方が重要かつ為になりそうな概念かと。
第3章・第4章・第5章・第6章
教科書によると、ここからが2級のメインパートです。ひとまずざっくりまとめると、
- 第3章 統計的推定
- 点推定
- 信頼区間
- 第4章 統計的仮説検定
- 仮説検定
- 第5章 線形モデル分析
- 線形回帰
- 分散分析
- 第6章 その他の分析法 正規性の検討,適合度と独立性のΧ2検定
- 適合度の検定
- 独立性の検定
です。
1回目落ちて2回目で合格したので自信(?)を持って言えますが、3章から順に勉強しない方が良いです。なぜかというと、ここからが2級のメイン!と意気込んで勉強するも意味がわからず挫折orz となること間違いなしだからです。点推定も信頼区間も、割と挫折を誘います。
なので、まずは3〜6章を一通り眺めて、自分にしっくりきそうな章を1つだけ見つけてください。見つかったらその章を浅く理解します。そしてその後、他の章へ戻り浅く理解し、ぐるぐると浅い理解を反復し、最終的に3〜6章全部の理解を深めましょう。
じつは3〜6章は推測統計の枠に入った仲間たちなので、どこから始めても横のつながりが垣間見えて、最終的には全部つながります。(そこが2級の醍醐味なのかもしれません)
なお私は、
仮説検定を浅く理解 ↓ 適合度の検定と独立性の検定を楽しむ(∵意外と計算が楽なので) ↓ 分散分析を楽しむ(∵意外と計算が楽なので。但し一元配置に限る。) ↓ 仮説検定を浅く理解 ↓ 線形回帰をチラ見 ↓ 仮説検定を浅く理解 ↓ 点推定・信頼区間をチラ見 ↓ 仮説検定の問題を解きまくる 点推定・信頼区間の問題を解きまくる たまに適合度独立性分散分析線形回帰の問題を解く ・・・
のようなループで理解を深めることができ・・・たと思います。
その他
合格者の声
合格してから気づいたのですが、公式サイトの統計検定TOP > 合格者の声 > 2級も必見です。様々な方の勉強方法やモチベーションが書かれています。
電卓
10桁ぐらい表示できれば十分でしょう。私が買ったのは「CASIO MH-10T」です。電卓で大事なことを箇条書きすると、
- 電卓を叩いた時のレスポンスが極めて大事
- [C]・[AC]の挙動の違いを理解する
- [M+]・[M-]・[MRC]を駆使する
- [ = ] を押さなくても計算ができる場合があることを理解する
です。たとえば、なデータの組の、
あたりをさらっと電卓で出せるようになると良いでしょう。慣れれば機械的に答えが出てしまいます。
細かく言えば、[=] を押さなくても計算ができる場合があることを理解する
は、
i | x_i | y_i |
---|---|---|
1 | 3 | 4 |
2 | 7 | 8 |
3 | 5 | 6 |
4 | 1 | 2 |
とデータが与えられた時に積和:を求めるとします。この時、
[3] [x] [4] [=] [M+] [7] [x] [8] [=] [M+] [5] [x] [6] [=] [M+] [1] [x] [2] [=] [M+] [MRC]
と電卓を叩くのではなく、
[3] [x] [4] [M+] [7] [x] [8] [M+] [5] [x] [6] [M+] [1] [x] [2] [M+] [MRC]
と叩く、ということです。素早く計算でき、かつ打鍵ミス低減 → 問題をたくさん解くことができる、に繋がります。このTipsはnが大きくなるにつれて効果が大きくなるでしょう。
おわりに
試験まで諦めずに勉強し、試験中も諦めなければなんとか合格できるはずです。Enjoy 統計学!
2級合格後の自分は?
準1級合格を目指して勉強しています。どうやら線形代数の知識をフル活用するらしく、絶賛苦しんでいる最中です。対称行列の2次形式を偏微分したり楽しい毎日を送っています。
アーカイ部
リンク
- ja:dokuwiki [DokuWiki]
- ja:features [DokuWiki]
- 低価格・格安のライトプラン - レンタルサーバーはさくらインターネット
- Amazon S3(拡張性と耐久性を兼ね揃えたクラウドストレージ)|AWS
- Amazon S3に画像を置いてアクセス制御 :: GitHub Pages | Refills
自問自答
- なぜwiki ?
- 更新しやすそう
- wikiに何載せるの?
- テキストベースで、コンサート毎のこれまでの演奏曲一覧
- お知らせとか
- 連絡先とか
- リンク先とか
- なぜdokuwiki ?
- 誰でも更新できる ( 誰が更新するのかと言う問題。 更新されない情報サイト )
- 構文が簡単そう
- アクセス制御ができる
- データベースを使用しない(テキストファイル)
- なぜsakura の レンタルサーバー の liteプラン?
- 安い
- dokuwikiがインストールできそう
- S3は何に使うの?
- プログラムや音源を保管する
- S3はwebサーバーじゃないけどアクセス制御どうするの?
- 音源ファイルはでかい。ダウンロードされまくると料金がやばいのでは?
- そこが一番の悩みどころ。
- ダウンロードされまくった月のクレジット引き落としが怖いね
- レン鯖の容量でかいプランにするのは?
- そうすると年額がコンスタントに高い。
- 全部AWSとか全部Azureで良いのでは?
- アクセス制御のやり方がよくわからん。
- cloudfrontやらaws lambdaやら Azure Active Directoryやらあるのは知っているが、ググってサクッと作るほど簡単ではなさそう&従量課金
- アクセス制御のやり方がよくわからん。
- Google Driveは?
計算
プログラム:: 11MB/1コンサート → 22MB/1年 → 50年分だと → 1100MB → 1.1GB → 100年分だと → 2.2GB 音源:: 1.5GB/1コンサート(3時間) → 3GB/1年 → 50年分だと → 150GB → 100年分だと → 300GB
統計学入門 p.65 問3.4 ブートストラップ(途中)
データ
data.x <- c(71,68,66,67,70,71,70,73,72,65,66) data.y <- c(69,64,65,63,65,62,65,64,66,59,62)
相関係数は
> cor(data.x, data.y) [1] 0.5580547
ブートストラップ
11組のデータからランダムに11個復元抽出し相関係数を計算する、ような関数を作る。
bs <- function(x){ bx <- sample(data.x,size = 11,replace = T) by <- sample(data.y,size = 11,replace = T) return( cor(bx,by) ) }
上の関数を10,000回繰り返す。
data.r <- sapply(1:10000,bs)
結果
par(mfrow=c(2,1)) hist(data.r,breaks = seq(-1,1,0.05), main="Histogram of correlation",freq = F,xlab="range of r") lines(density(data.r), col = "orange", lwd = 2) boxplot(data.r,horizontal = T)
考察
母相関係数が0になることもあるよってことなのだろうか?ブートストラップ法について調べる必要がある。
期待値の基本からモーメント母関数まで
期待値の性質
モーメント母関数
上記の式を結集すると、モーメント母関数が理解できてく。はず。。
となるので、
を得る。
統計検定2級 2018年6月 問4の2
2010年の輸出物価指数をとすると、2011年の輸出物価指数は変化率を用いて
と書ける。
以下同様に書き出すと、
の式が得られる。さて、前年からの変化率が常にrであるならば
となるので、得られた式を下から上に掛けて代入していくと、
となる。ところで、「変化率が常にrである」とはをと置き換えるに等しい。
したがって、
を得る。よって、 を代入し、
となる。答えは②である。