zashii-1434

Stats of My Life(おいしい人生を味わうために、コツコツとチャレンジしたことを書くブログ)

CBASプロジェクトマネージャー級(PM級)合格しました。:「データ分析実務スキル検定 公式テキスト(作者:株式会社データミックス)」 #CBAS #データ分析 #解答解説付き

 

1.はじめに

巻末に問題集があるのですが、解説が載っていなくて不便だったので、勉強時に解説を自ら書いてみました。解説を省略している問題もありますが良かったら参考下さい。

 

CBAS プロジェクトマネージャー級(PM級)は統計理解だけではなく、データ分析の実装もある程度理解してことが求められる試験だったので、自分のニーズに合っていると思い試験を受けてみました。

 

データ分析素人であることは間違いない一方で、データ分析のスペシャリスト(↓のようなブロガー)の言わんとしていることを少しだけでも理解できるようになったと思います。

tjo.hatenablog.com

 

今、実務で副業の営業数値をGoogle Colaboratoryを使って分析しています。


データ前処理に時間がかかるので、このあたりの苦労がきちんとわかることもプロジェクトマネージャーは知っておく必要があるかなと思います。

 

2.CBAS検定試験概要

結論、暗記するだけでは合格できない仕様になっています。本質的に理解しているかが重要です。

自分は本業でPython,SQLExcelピボとかは触っていたので、その当たりの問題には苦労しなかったが、統計手法や予測モデルの評価あたりは理解するのが難しかったです。

 

試験問題構成は下記の通り。

1.業務目的に応じた適切なKPIツリーの作成

2.データの取り扱いに関する利用規約、法令等の確認

3.データ分析に必要な前処理の理解

4.SQLの基礎の理解

5.データ可視化手法の基礎の理解

6.基礎集計に通じたデータの全体像や質の確認

7.業務目的に応じた適切なコーディング(R/Python)の確認

8.基礎的な統計手法の確認

9.主要な機会学習の概要と使い分けの理解

10.予測モデルの評価と改善手法の理解

11.施策の評価と効果検証の理解

3.テキストの問題解答&解説

エクセルを使った問題19〜23は割愛していますが、良かった参考ください。

<答え>

1:B
⇒Distinctは重複なしデータを抽出
2:A
⇒問題文はどちらも男性で60歳以上、30歳未満とあるので、 ‘male’ AND (age >=60 or age < 30) と表現できる
3:B
⇒結果はINNER JOINしていること。2つのテーブル結合時は”ON”を使うことに注意する
4:A
⇒最小値はMIN関数。会員ごとはGROUP BYを利用することを理解
5:D
⇒CASE WHEN X THEN Y ELSE Zの構文を理解しているかがポイント
6.A
⇒getwd() は現在の作業ディレクトリを取得する関数

7:D
⇒クロス表ごとに相対度数を出力する関数はprop.table()。2番目の引数 margin は、割合を計算する行または列を指定。 margin=2 を指定すると、各列の割合が計算。
8:B,E
rowMeans()関数は、ベクトルの平均値を計算。この場合、ベクトルは列3,4,5の値です。rowMeans()関数は、入力ベクトルの長さと同じ長さのベクトルを返します。
9:D
⇒52才の会員は”40才以上”に該当する
10:D
⇒mean()関数は、ベクトルの平均値を計算します。sd()関数は、ベクトルの標準偏差を計算。コード boxplot(Q2 ~ gender, data = mydata, ylim = c(0, 10), col = 4:5, names = c("F", "M")) は、Q2 変数を gender 変数で分割して箱ひげ図を作成。ylim 引数は、y 軸の範囲を 0 から 10 に設定し、col 引数はボックスの色を 4 と 5 に設定し、names 引数はボックスの名前を「F」と「M」に設定。
11:C
⇒1,4,7,10,13,13(for文抜けた後)
12:D
⇒0も5の商としては0になる
13:C
⇒appendで[2,3,4,3,1]、remove(3)で[2,3,4,1]、sortで[1,2,3,4]
14:B
⇒dictのValueは[500,300,800]
15:A,B
age列に欠損値がいくつあるかを計算。isnull()メソッドは、DataFrameの各要素が欠損値かどうかを判定します。sum()メソッドは、DataFrameの各列の要素の合計を計算します。axis=0を指定すると、各列の合計が計算されます。columns=['null']を指定すると、DataFrameの列名をnullに設定します。
np.mean(df'age', axis=0)は、DataFrameのage列の平均を計算。axis=0を指定すると、各列の平均が計算。
16:A,C
問題文からは質的変数の要約統計量かどうかはわからない
17:E
df_q4cts = pd.merge(df1,df2,left_on = 'q4', right_on ='q4_list,how='left').drop(columns='q4_list')

⇒df1とdf2をマージし、q4列をキーとして使用します。how='left'を指定することで、df1のすべての行を保持し、df2の行を追加します。最後に、q4_list列を削除。

・plt.subplots()は、図を作成するための関数。nrowsとncols引数で、図の行数と列数を指定できます。figsize引数で、図のサイズを指定。
例えば、plt.subplots(nrows=2, ncols=1, figsize=(6,6))は、行数2、列数1の図を作成。図のサイズは6インチx6インチ。

flgとaxesは、plt.subplots()によって返される2つの変数です。flg、図を表す変数。axesは、図の各軸を表す変数。


18:D
lm.fit(X_train, y_train)は、線形回帰モデルlmを学習させる関数です。X_trainは、訓練データの特徴量を表す行列です。y_trainは、訓練データの目的変数を表すベクトル。
coef = coef.rename(columns={0 : 'coef'})は、DataFramecoefの最初の列の名前をcoefに変更するコード。
coefは、線形回帰モデルの重みパラメータを表すDataFrameです。最初の列は、重みパラメータの値を表しています。このコードは、最初の列の名前をcoefに変更することで、重みパラメータの値を表す列の名前を分かりやすくしている。
coef['coef'] = (lm.coef_)は、DataFramecoefのcoef列に、線形回帰モデルlmの重みパラメータを格納するコード。
print(lm.score(x_train, y_train))は、線形回帰モデルlmの訓練データに対する決定係数を表示するコード。
19:C
20:A
21:A
22:C
23:B
24:C
CASE①のBのグラフは0から始まっていない。CASE②のAは”圧倒的”とは言えない。CASE③のBは売上の大きさの円の意味がない
25:A,C
Q1よりもQ2の方がスコアが中心(6点から8点)に集中している
26:A,B,C
図1は一定の割合で在籍数がAが減っている。BはAは13%、Bは6%
27:A,B,D

28:A,B,D
 ⇒"「スマホからのログイン」の方が「PCブラウザとスマホからログイン」と比べて頻繁にログインしやすい"に該当するのはD
 ⇒"20代は「スマホからのろのみログイン」の割合が多いため、年代ごとの差がログイン方法"の該当するのはB
 ⇒"ログイン方法別に分けて年代ごとの売上傾向を確認"に該当するのはA
29:D
⇒当社売上 % 当社シェア率 = 市場規模
商品回転率 ☓ 平均在庫高 = 売上
⇒当日申込者数 + 予約申込者 - 欠席者 = イベント参加者数
30:A
⇒Aは複数回答が多いということは延べ来店者数が多いとすると、購入率は下がる。Bは1週間来店者数が800とすると1ヶ月3,200。1,350 / 3200 = 0.42 で48.2%ではない。Cは購入率が不明ではあるものの、レシート単価1,500に延べ人数50をかけると75,000で購入率100%でないと成立しない値のため不適切
31:A,C
⇒Bは午後の来店客数を考慮していないため、1.2倍の売上とはならない
32:B,C
⇒Aは公開されているWebURLを共有するだけでは契約条項に反しない
33:A,C
⇒B記載のYは担当講師「佐藤」は全員38歳の講師であるため、Xとは差別化にならない
34:B
⇒Aは70歳以上のデータ取れていないのに、全体平均を出して補完することは欠損処理としては適切ではない。Cはたった1つでも無回答の人のデータも削除するのは欠損処理としては適切ではない
35:A,C,F,G
⇒回答時間が短いということは、回答していない可能性がある。回答率が低いも同等。FとGは回答していたとしても、きちんと回答していない可能性という意味において除外するのがよい
36:B,D
⇒BとDはベル型とならない可能性があるため
37:A,B,C
標準偏差(σ)とは、データの分散を測る尺度。データの平均から1σ離れた範囲とは、平均値を±1σだけ動かした範囲のことです。つまり、平均値から1σ離れた範囲には、データの約68.3%が含まれます。
38:D
⇒稀に0円に近い価格で販売と記載あり。とするとX軸とY軸の0は稀に近いデータ分布となるはず
39:B
⇒明らかに年代ごとに購入金額値の平均値が高くなっているため、高い相関があると考えられる
40:C
⇒二つの回帰直線がy=ax+b1とy=ax+b2の場合、切片の差はb1-b2となります。Bは回帰係数の値を示しているため違う。
年齢が目的変数に効果があるかどうかは、データによって異なります。データによっては、年齢が目的変数に効果がある場合もある。そのため、年齢を説明変数から除去するかどうかは、データの特徴をよく確認した上で判断する必要があり。13という数値をどう判断するかの基準がないため、除去していいにはならない。
41:C
⇒A一般消費者全体の解釈とはならない。Bは雑誌購読していない人も52いる(購読している人は65)。なので、比較してTV俳優Aをよく知っているとは言えない。
42:A
⇒所属部署は部署ごとのダミー変数を作成して説明変数に使っている。部署はA〜Dまでの4部署があるため、部署A〜Cへの所属を示す列を作成して、すべての列が0の時に部署Dへの所属を表す。
⇒部署はA〜Dまでの4つのカテゴリがあるため、4つのダミー変数を作成する必要があります。ダミー変数の値は、部署に所属している場合は1、所属していない場合は0となります。
検定結果の非有意とは、データから母集団の平均値に差があると結論付けることができないことを意味します。職務は相関あるため、消去法によりA
43:A
⇒目的変数が分類とかではなく数値化できるものが回帰モデルに向いている
44:A
⇒Bは株価、Cは確率となっているなか、Aは分類のため
45:C
⇒主成分分析(PCA)は、相関のある多数の変数から相関のない少数で全体のばらつきを最もよく表す主成分と呼ばれる変数を合成する多変量解析の一手法。データの次元を削減するために用いられる。
⇒ロジスティック回帰分析では、説明変数を使って目的変数が起こる確率を予測。目的変数が起こる確率は、ロジスティック関数で表されます。ロジスティック関数は、0から1までの値を取り、その値が大きいほど、目的変数が起こる確率が高くなる。
46:A,B,C
47:C
48.B
⇒k-meansアルゴリズムは、クラスタリングと呼ばれる教師なし学習の一種で、データを決められた数のカテゴリーに分類することができる。具体的には、以下の手順で動作。
1.データからランダムにk個のクラスタ中心を生成。
2.各データ点を、最も近いクラスタ中心に割り当。
3.各クラスタの中心を、そのクラスタに含まれるデータ点の平均値に更新。
4.2~3のステップを、データ点のクラスタ割り当てが変化しなくなるまで繰り返す。
→k-meansアルゴリズムは、データの特徴量が数値型である場合によく使用。
49:A,B,C
50:B
→暗記問題
51:A
→暗記問題
52:D
53:C
→暗記問題
54:D
→暗記問題
55:C
⇒①は適合率と再現率の算術平均 ②は正解率 ③適合率&適合率
56:B
⇒MSEは2乗。Bは絶対値の差を出したいことが記載されているため
57:C,D
帰無仮説:現デザインと新デザインでアンケートスコアの母平均に差がない
対立仮説:現デザインと新デザインでアンケートスコアの母平均に差がある
Cは高い確率でより精度が求められる。Dはキャンセル(つまりはサンプルを取得できない)確率が上がるため、よりサンプルが必要となる可能性がある
58:D
⇒Dがもっとも偏りに差が少ない
59:A,B
60:E

⇒一般的にサイト訪問者にとって。一般的に言えるかどうかはこの問題からはわからない

 

4.重要単語

試験で出る専門用語を掲載します。

回帰分析:残差の2乗の合計が最小になるように「切片」と「傾き」を求めること。
「残差の2乗の合計を最小」にすると、推定値が統計的に良い性質があることが理論的にわかっています。

 

回帰分析の検定:ある説明変数が被説明変数を説明するのに役立っているかどうかt検定でわかります。

→棄却できればその説明変数は被説明変数に対して説明力があると言えます。

 

決定係数 (coefficient of determination) :回帰分析において、説明変数が目的変数のどの程度を説明できるかを示す指標です。R2とも呼ばれます。R2は、0から1までの値をとり、1に近いほど説明変数が目的変数を良く説明できていることを示す。具体的には、残差平方和を総平方和で割った値に1からその値を引いたものになります。

 

ロジスティック回帰分析:2値分類問題を解決するために使用される統計的手法の1つです。以下は、ロジスティック回帰分析が用いられる具体例です。

医療分野:ある検査結果をもとに、病気があるかどうかを判定する場合に使用されます。たとえば、がんの診断において、あるバイオマーカーの値をもとに、がんがあるかどうかを予測するためにロジスティック回帰分析を使用することがあります。

マーケティング分野:ある製品やサービスを買うかどうかを予測するために使用されます。たとえば、ある広告に対する反応をもとに、商品を購入するかどうかを予測するためにロジスティック回帰分析を使用することがあります。

以上が、ロジスティック回帰分析が用いられる具体例です。ロジスティック回帰分析は、線形回帰分析とは異なり、目的変数が2値である場合に適用されます。目的変数が2値の分類問題を解決するために広く使用されており、データ分析や機械学習の分野でよく使用されます。

 

混合行列(confusion matrix):分類モデルの評価指標としてよく用いられます。分類モデルが正しく分類したデータと、誤った分類したデータの数を、真陽性(true positive)、真陰性(true negative)、偽陽性(false positive)、偽陰性(false negative)の4つのカテゴリーに分けて表現します。

 

真陽性(true positive)とは、正しいクラスに正しく分類されたデータの数を表します。例えば、がん患者を正しくがんと予測した場合などが該当します。

真陰性(true negative)とは、正しくないクラスに正しく分類されたデータの数を表します。例えば、健康な人を正しく健康と予測した場合などが該当します。

偽陽性(false positive)とは、正しくないクラスに誤って分類されたデータの数を表します。例えば、健康な人をがんだと誤って予測した場合などが該当します。

偽陰性(false negative)とは、正しいクラスに誤って分類されたデータの数を表します。例えば、がん患者を健康だと誤って予測した場合などが該当します。

 

→混合行列は、これらの4つのカテゴリーに分けて、分類モデルの予測結果がどのようになっているかを可視化するものです。混合行列を利用することで、分類モデルの性能を把握し、適切な改善を行うことができます。

 

適合率(precision):正しく分類されたデータのうち、実際にそのクラスに属している割合を表します。つまり、偽陽性を少なくすることが重要な場合に用いられます。

以下の式で計算されます。

適合率 = 真陽性 / (真陽性 + 偽陽性)

 

正解率(accuracy):全てのデータのうち、正しく分類されたデータの割合を表します。ただし、データの分布に偏りがある場合、正解率は偽陰性偽陽性に関係なく高い値を示すことがあります。

 

F1スコア:適合率と再現率の調和平均です。つまり、両者の値がバランスよく高い場合に高いスコアを示します。

以下の式で計算されます。

F1スコア = 2 * (適合率 * 再現率) / (適合率 + 再現率)

 

主成分負荷量:元の変数が主成分にどの程度貢献しているかを表す指標です。つまり、主成分負荷量は、主成分と各変数の相関係数の絶対値を表す。主成分負荷量が大きい変数ほど、主成分との関連性が強いということになる。また、主成分負荷量は主成分分析の結果を解釈する際に重要な指標となります。

主成分得点:各サンプルが主成分にどの程度寄与しているかを表す指標です。つまり、主成分得点は、各サンプルの元の変数値を主成分負荷量で重み付けして合計した値です。主成分得点は、主成分分析の結果を用いて各サンプルの位置を可視化するために利用されることがあります。

 

主成分負荷量主成分得点は、主成分分析の結果を解釈するために必要な指標であり、相互に関連している。主成分得点を求める際には、主成分負荷量を利用することが多い。また、主成分得点を求めることで、各サンプルの位置を可視化することができ、データの特徴を把握することができる。

 

正規分布正規分布は、連続型の確率分布で、ベル型曲線として知られています。平均値と標準偏差の2つのパラメータで特徴づけられ、データが平均値を中心に、標準偏差の範囲内で散らばっていると仮定されます。正規分布は、多くの場合、自然現象や社会現象など、連続的な現象をモデル化するために利用されます。

二項分布:二項分布は、離散型の確率分布で、試行回数が決まっている中で、2つの結果(成功と失敗)が起こる確率を求めるために使われます。例えば、コインを何度か投げて、表が出る回数や、ある商品を買った人のうち、特典を受け取った人の数などを計算する際に利用されます。

ポアソン分布ポアソン分布は、離散型の確率分布で、ある時間や空間において、ある現象が起こる回数をモデル化するために利用されます。例えば、一定時間内に起こる交通事故の件数や、一定地域での地震の発生回数などを計算する際に利用されます。

これらの確率分布は、データの特徴に応じて適切なものを選択し、解析することが重要です。また、これらの分布を利用した統計解析には、RやPythonなどのプログラミング言語を用いた実装が一般的です。

 

要約統計量

データの特徴を簡潔にまとめた数値です。主な要約統計量には、平均値、中央値、標準偏差、最大値、最小値、四分位範囲などがあります。以下にそれぞれの見方を説明します。

・平均値:データの合計を観測数で割った値で、データの中央に位置する傾向があります。ただし、外れ値が存在する場合は平均値が大きく影響を受けることがあります。
・中央値:データを小さい順に並べたとき、ちょうど真ん中に位置する値です。平均値と比べて外れ値の影響を受けにくく、データの中央に位置する傾向があります。
標準偏差:データの散らばり具合を示す指標で、平均値からの偏差の二乗平均の平方根です。標準偏差が小さいほど、データが平均値の周りに集まっていると解釈できます。
・最大値・最小値:データの中で最も大きな値と最も小さな値を示します。
・四分位範囲:データを小さい順に並べたとき、上位25%と下位25%の間の値の範囲です。データの外れ値を除いた範囲を示すためによく用いられます。

これらの要約統計量を用いることで、データの分布や特徴を簡潔に把握することができます。ただし、データに偏りがある場合や、外れ値が存在する場合には注意が必要です。そのため、要約統計量だけでなく、データの分布をグラフ化することや、外れ値の存在を検討することも重要です。

 

重相関:例:ある大学の研究者が、学生の成績に影響を与える要因を調査するため、以下の3つの説明変数を用意しました。
・学生の出席率
・学生が1日に費やす勉強時間
・学生の前学期の成績
そして、これらの説明変数と、今学期の成績(応答変数)との間の関係を分析し、重相関係数を求めたとします。

分析の結果、重相関係数は0.8となりました。この場合、重相関係数が0.8ということは、3つの説明変数が学生の今学期の成績に対して高い関連性を持っていることを示しています。

つまり、学生の出席率、勉強時間、前学期の成績が高い場合、今学期の成績も高い傾向があるということです。

相関係数は、複数の説明変数がある場合でも、それらの変数が応答変数とどの程度関連しているかを評価することができます。このような分析は、学術研究だけでなく、ビジネスやマーケティングなどの分野でも頻繁に利用されています。