Upgrade to Pro — share decks privately, control downloads, hide ads and more …

#経済学のための実践的データ分析 4.12 機械学習(決定木とSVMとRidgeとLasso)+最終レポート作業編

yasushihara
January 06, 2020

#経済学のための実践的データ分析 4.12 機械学習(決定木とSVMとRidgeとLasso)+最終レポート作業編

#経済学のための実践的データ分析
4.12 機械学習(決定木とSVMとRidgeとLasso)+最終レポート作業編

一橋大学大学院経済学研究科
原泰史
[email protected]

yasushihara

January 06, 2020
Tweet

More Decks by yasushihara

Other Decks in Education

Transcript

  1. 年末年始進行対応につきまして。 • プランA(春と夏と秋バージョン); このまま、1/9 に最終報告をする。 • 最終成果物はプレゼンテーションファイル • プランB(冬バージョン); •

    Step1; 1/9 (次回講義) に最終レポート案をグループごとにパワポで簡単に報 告して(10分以内)、改善案を質疑応答の形でディスカッションする。 • Step2; 2020/1/20; 12:30 までに最終報告書をPDF形式で文章+解析結果とし てまとめ、slack のチャンネルにアップロードする。 • Step3; 各グループレポートへの自己評価および得点をrespon またはslackの 投票機能を使い、2020/1/27; 12:30 までに投票する。 ※. 教務課への最終成績報告は2020/2/5. • 今いるメンバーで決めましょう。
  2. グループ分け(1) • グループα • 2116157u • 2116205a • 2117044k •

    2117102m • グループβ • 2115096s • 2117156k • 2118025h • 2118091b • 2117003u • グループγ • 2113015y • 2116260h • 2117124s • 2117222s • 2117223k • 2116114h • グループμ • 1118077h • 1117199m • 1117044b • 1118051z • 1118256h • グループδ • 2117119z • 2117198z • 2118059x • 2118149u • 2118084y • グループε • 2116015m • 2115018k • 2116221c • 2117092k • 2117232h
  3. まとめと最終報告レポート • テーマ • 「◦◦のための実践的データ分析」 • 卒論や修論や博論の作成の入り口になるような、データの調達とその データの解析を, 講義で取り上げたデータセットおよび分析手法で実施 する

    • 分析単位はマクロ (国レベル) でもメソ (企業/産業レベル) でもミクロ (個人レベル) でも問いません • 利用できるデータセット • 特に制限なし • 利用できるツール • Tableau, Excel, SQL, Jupyternotebook (Python) など, 特に制限なし
  4. まとめと最終報告レポート • 評価方法 • グループ内での自己評価 • グループ外からの評価 アンケートシステムをManaba or Google

    Docs で用意します。 • 評価基準 • (A.) グループ内の役割分担 (B.) データセットのユニークさおよび、それが適切に処理されているか (C.) 分析手法のユニークさおよび、それが適切に解析されているか (D.) プレゼンテーションのユニークさ (E.) 質疑応答にうまくリプライすることが出来ているか • 納品物 • プレゼンテーションに利用したファイル (Word か Powerpoint か Prezi か etc…) を, Manaba にアップロードすること • 発表(プランAの場合) • 2020/1/9
  5. 「定量分析の業務フロー」 2020/1/5 11 リサーチクエス チョンを決める 必要なデータを 探す 論文データ/書誌 情報を使う 特許データ/書誌

    情報を使う その他データを使う (プレスリリース /POS データ) デ ー タ の ク リ ー ニ ン グ / 接 合 を 行 う エクセル/Python/Rでグラフを描く Stata/R/Python で回帰分析する KHCoder/R/Python でテキスト分析 する R/Netdraw etc… でネットワーク分 析する 企業データを 使う
  6. 例.元 IIR 西口先生のネットワーク研究 • “コミュニティー・キャピタル 中国・温州人企業家ネットワー クの繁栄と限界” • http://doi.org/10.11207/taaos. 4.1_200

    • データに頼らずに, 足で稼いで ネットワークの動態をインタ ビュー調査から明らかにする • 足掛け10年(!) 2020/1/5 12
  7. 例. 元 IIR 西口先生のネットワーク研究 • “傑出したパフォーマンスで知られる中国・温州人企業家の国 際的ネットワークは、コミ ュニティー・キャピタルに依拠する 新たな社会ネットワーク分析に適した事例であり、近 年ビッグ

    データ一辺倒の観のある米国の定量分析 (Fleming et al. 2007) を補完する意味で、 詳細なフィールド調査に基づく豊かな実証 的知見を提供し得る。さらに Watts 等(1998, 1999, 2003) がシ ミュレーションで数学的に立証したスモールワールドの知見が、 現実に応用可 能なのは、実効的にコミュニティー・キャピタル に支えられた社会ネットワークに限定さ れることも示唆され る。 ” 2020/1/5 13
  8. 今日の最終レポートに向けたディスカッ ション (講義の最後の30分くらい) • 役割分担を決める • プレゼンの方法を決める • 何を問いにするのか? •

    先行研究として何が挙げられて, 仮説としてどのような内容が 提起できるか。 • データセットは何か?取得可能か? • データはどのように解析するのか? • 結論として何が言えるのか?
  9. プレゼン/報告ファイルの雛形 • 表紙 • イントロダクション • 先行研究 • 問い •

    仮説 • 集めたデータセット • データ解析結果 • 考察とインプリケーション
  10. Trends in the number of AI patents granted world-wide Figure

    • The number of patents granted has rapidly increased. • It shows the number of artificial intelligence (AI) patents granted by application country and reveals that it has increased more than threefold (from 708 items in 2012 to 2,888 items in 2016).’ • In particular, AI patents granted in the US increased by 1,628 items during this period (Figure 1a), accounting for approximately 75% of the increase worldwide . 28 (Source: Fuji and Managi (2017))
  11. Trends in the number of AI patents, technology-wise granted worldwide

    Figure • The patent share of each AI technology type changed from 2012 to 2016. • In 2012, biological and knowledge-based models were the leaders in patented AI technologies. • However, from 2012 to 2016, the number of patents granted for specific mathematical models and other AI technologies rapidly increased, doubling from 2015 to 2016. 29 (Source: Fujii and Managi (2017))
  12. AI : Number of Patents/Scientific Papers by Year Number of

    Papers Number of Patents 0 50000 100000 150000 200000 250000 USA PEOPLES R CHINA GERMANY JAPAN ENGLAND France Canada ITALY SPAIN Australia 0 200 400 600 800 1000 1200 1400 United States Japan Europe (Patent Office) Germany Korea Unite Kingdom France China Taiwan Israel India Source: Web of Science Core Collection Source: PatentsView(USPTO)
  13. Robotics : Number of Patents/Scientific Papers by Year Number of

    Papers Number of Patents Source: Web of Science Core Collection Source: PatentsView(USPTO) 0 50 100 150 200 250 300 350 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2010 2012 2014 2016 USA PEOPLES R CHINA GERMANY ENGLAND CANADA ITALY JAPAN FRANCE SPAIN AUSTRALIA 0 20 40 60 80 100 120 140 160 180 19761978198019821984198619881990199219941996199820002002200420062008201020122014 United States Japan Germany Korea France Sweden United Kingdom Italy China Europe (Patent Office) Switzerland
  14. 網羅的なもの(2) • 『経済セミナー』;機械学習は経済学 を変えるのか? • 特集= 機械学習は経済学を変えるの か? 【対談】デジタル化と機械学習が社会 を変える

    ……上野山勝也×成田悠輔 •経済分析のツールとしての機械学習 ……依田高典 •機械学習に潜む公平性の問題 ……小 宮山純平 •機械学習はデータを解釈できるの か?……今泉允聡 •機械学習は自然実験を作り出す…… 矢田紘平・成田悠輔 • https://www.nippyo.co.jp/shop/maga zine/8185.html
  15. 3-3. 必要なライブラリをインポートする # tensorflow を tf として import する import

    tensorflow as tf # numpy や pandas など, 計算やデータ処理のライブラリを import する import numpy as np import pandas as pd # データ可視化のライブラリをインポートする import matplotlib.pyplot as plt # データセットの取得&処理のライブラリをインポートする from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split # インポートの確認 print(tf.__version__) print(np.__version__) print(pd.__version__)
  16. tensorflow • tensorFlow™ は、データフローグラフを 使用して数値計算を行うためのオープン ソースソフトウェアライブラリです。グ ラフ内のノードは数値演算を表し、グラ フのエッジはノード間でやり取りされた データの多次元配列(テンソル)を表し ます。柔軟性の高いアーキテクチャが採

    用されているため、単一のAPIを使用して、 デスクトップ、サーバーまたはモバイル 端末の1つ以上の CPU またはGPUに計算 機能をデプロイすることができます • TensorFlow は本来、Google のマシンイ ンテリジェンス研究組織内の Google Brain チームに参加している研究者やエン ジニアが機械学習や高度なニュートラル ネットワークの研究用に開発したもので したが、このシステムは汎用性が高く、 他の領域にも幅広く適用することができ ます。 • https://www.tensorflow.org/ https://data.wingarc.com/tensor-flow-16087
  17. データセットの中身 CRIM 町ごとの人口一人あた りの犯罪率 AGE 1940年以前に建てられ た、所有者が住む建物 の割合 ZN 宅地の比率。25,000平

    方フィート以上のゾー ンで数えた値 DIS ボストンの5つの雇用中 心からの距離 INDUS 町ごとの非小売業の面 積比 RAD 放射状幹線道路からの 距離 CHAS チャールズ川に道がつ ながっているか TAX 固定資産税率 NOX NOx 濃度 PTRATIO 町ごとの教師あたりの 生徒数 RM 住宅あたり部屋数 B 町ごとの黒人比率 LSTAT 低階層人口の比率 MEDV 所有者が住む住宅の価 値の中央値
  18. 3-4. データセットを読み込む # データの読み込み boston = load_boston() # Pandasのデータフレーム形式へ変換 df

    = pd.DataFrame(boston.data, columns=boston.feature_names) df['target'] = boston.target # データの最初の5行を表示 df.head()
  19. 3-4. データセットを読み込む # 取り出したデータセットを, 特徴量 (回帰分析 における説明変数)とターゲット (回帰分析にお ける被説明変数) に切り分ける

    X_data = np.array(boston.data) y_data = np.array(boston.target) # 1行目のデータの特徴量(X)とターゲット (y)を確認 print(X_data[0:1]) print(y_data[0:1])
  20. 3-5. データの正規化を行う # 正規化 # 平均0, 分散1 となるように def norm(data):

    mean = np.mean(data, axis=0) std = np.std(data, axis=0) return (data - mean) / std # データを正規化したものに入れ替える # 正規化されたデータを確認する X_data = norm(X_data) print(X_data[0:1])
  21. 3-7. テストデータと訓練データへの切り 分けを行う # x とy について, 全体の2割をテストデータ として, 残りを訓練データへと切り分けする

    X_train, X_test, y_train, y_test = train_test_split(X_data, y_data, test_size=0.2, random_state=42) y_train = y_train.reshape(404,1) y_test = y_test.reshape(102,1) #分割したデータの長さを確認する print(X_train.shape) print(y_train.shape) print(X_test.shape) print(y_test.shape)
  22. 3-8. 線形回帰モデルの設定を行う # 学習率とエポック(反復処理回数)を設定する learning_rate = 0.01 training_epochs = 1000

    # 特徴量の数 n_dim = X_data.shape[1] # 特徴量(X)とターゲット(y)のプレースホルダー # (作成される変数のための空の箱)を用意する X = tf.placeholder(tf.float32,[None,n_dim]) Y = tf.placeholder(tf.float32,[None,1]) # 係数(W)と定数項(b)の変数を指定する W = tf.Variable(tf.ones([n_dim,1])) b = tf.Variable(0.0)
  23. 3-9. コスト関数の設定および最適化を行う # 線形モデルを規定する y = tf.add(b, tf.matmul(X, W)) #

    コスト関数を設定する # 予測値と実際の値の差が極力最小化するよう に, # yの値とY の値の差分を取る cost = tf.reduce_mean(tf.square(y - Y)) # 最適化を行う training_step = tf.train.GradientDescentOptimizer(learning_rat e).minimize(cost)
  24. 3-10. モデルを実行し, 誤差を確認する # 初期化 init = tf.global_variables_initializer() # モデルの訓練を開始する

    sess = tf.Session() sess.run(init) # cost_history 変数のために空の値を入れておく cost_history=0 # for文を使って, 学習ごとの誤差の値を # cost_history の配列に放り込んでいく for epoch in range(training_epochs): sess.run(training_step, feed_dict={X:X_train, Y:y_train}) cost_history = np.append(cost_history, sess.run(cost, feed_dict={X:X_train, Y:y_train})) if epoch % 1000 == 0: W_val = sess.run(W) b_val = sess.run(b) # 誤差(cost)を確認 print(cost_history[1]) print(cost_history[50]) print(cost_history[100]) print(cost_history[1000]) ←誤差が次第に減っていく
  25. 3-11. 学習に基づく推計結果と, 実際の値 との比較を行う # テストデータを使って予測を行う pred_test = sess.run(y, feed_dict={X:

    X_test}) # 予測した価格と実際の価格の比較を行う pred = pd.DataFrame({"実際の不動産価格 ":y_test[:,0], "予測した不動産価格 ":pred_test[:,0], "差分":y_test[:,0]- pred_test[:,0]}) pred.head()
  26. 3-13. 決定木モデルの作成 #決定木モデルの作成を行う #sklearn より tree パッケージをインポートする from sklearn import

    tree #DesisionTreeRegressor でモデルを構築する #木の深さは3 にする (max_depth=3) clf = tree.DecisionTreeRegressor(max_depth=3) #X と y それぞれのtrain データで計測を行い clf = clf.fit(X_train, y_train) #X_test 値に基づき予測を行う pred = clf.predict(X_test)
  27. 3-13. 決定木モデルの作成 #pydotplus をインポートする import pydotplus #StringIO をインポートする from sklearn.externals.six

    import StringIO dot_data = StringIO() #決定木を図示化する tree.export_graphviz(clf, out_file=dot_data, filled=True, rounded=True) graph = pydotplus.graph_from_dot_data(dot_data.getvalue()) #Notebook 上に表示する from IPython.display import Image Image(graph.create_png())
  28. 3-14. どの変数が作用するか確認 import matplotlib.pyplot as plt %matplotlib inline features =

    df.columns importances = clf.feature_importances_ indices = np.argsort(importances) plt.figure(figsize=(6,6)) plt.barh(range(len(indices)), importances[indices], color='b', align='center') plt.yticks(range(len(indices)), features[indices]) plt.show() AGE が寄与することが確認できる
  29. 3-15. 回帰モデルの可視化 from sklearn.linear_model import Ridge from yellowbrick.regressor import ResidualsPlot

    model = Ridge() visualizer = ResidualsPlot(model) visualizer.fit(X_train, y_train) # テストデータとの比較を行う visualizer.score(X_test, y_test) visualizer.poof();
  30. b. SVM モデルの構築 • “学習データに対する最小の距離を 最大化するような直線(超平面)を見 つける” • それぞれのグループの中で、最も境 界線に近い点

    (サポートベクター) との距離 (マージン) が最大化する ように線を引く http://labs.eecs.tottori- u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/ py_ml/py_svm/py_svm_basics/py_svm_basics.html
  31. 3.16 SVM モデルの構築 #svm のテストをする # データセットの取得&処理のライブラリをイン ポートする from sklearn.svm

    import LinearSVC from sklearn.model_selection import train_test_split from sklearn.datasets import load_breast_cancer cancer = load_breast_cancer() # x とy について, テストデータと訓練データへ の切り分けを行う X_train, X_test, y_train, y_test = train_test_split( cancer.data, cancer.target, stratify = cancer.target, random_state=0)
  32. 3.17 SVM モデルの構築(2) from sklearn.preprocessing import StandardScaler #標準化 sc =

    StandardScaler() sc.fit(X_train) X_train_std = sc.transform(X_train) X_test_std = sc.transform(X_test) #クラスの初期化と学習 model = LinearSVC() model.fit(X_train_std, y_train)
  33. c. スパース推定(Lasso) • Lasso(Least absolute shrinkage and selection operator); •

    モデル構築と変数選択を自動的に行う • サンプルサイズより特徴量が大きな状況でも実行できる https://stats.biopapyrus.jp/sparse-modeling/lasso.html
  34. c-2. スパース推定(lasso) • 目的変数は中心化, 説明変数は標準化 {N(0,1)} する • Lasso(least absolute

    shrinkage and selection operator) t は調整パラメータで, given • ラグランジュの未定乗数法で書き直すと • መ = 1 2 − σ =1 2 2 + σ =1 λは正則化パラメータ 引用: (Tibshirani 1996), (川野 2018)
  35. d. ラッソ回帰/リッジ回帰 • 線形回帰と違い, 過学習を防ぐためのモデル • 回帰関数の推定時, モデルの複雑さを示す項を損失関数 (cost function)

    に追加し, それを含め誤差を最小化するように回帰回 数を指定する • 損失関数 • σ =1 ( − ( ))2+ σ=1 • 二項目を正則化項と呼ぶ • M; 変数の数, w: 重み付け係数, λ: 正則化パラメータ • q=1 のときラッソ回帰, q=2 のときリッジ回帰と呼ぶ
  36. c-3. スパース推定(lasso) Lasso 推定 Ridge 推定 ・解を範囲内で探索する 1 = −

    1 1 − 2 2 2 2 2 = − 1 1 − 2 2 2 2 3 = − 1 1 − 2 2 2 2 最小二乗推定量 引用: (Tibshirani 1996), (川野 2018)
  37. 利用する Notebook • Jupyter Notebook バージョン • https://www.dropbox.com/s/ehn3rvbu66qh0ig/fifa19%20%E3%81% AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%A7%E5%8D%98 %E5%9B%9E%E5%B8%B0%E3%81%A8%E9%87%8D%E5%9B%9E%E

    5%B8%B0%E5%88%86%E6%9E%90%E3%81%A8%E6%95%99%E5%B 8%AB%E3%81%82%E3%82%8A%E5%AD%A6%E7%BF%92%E3%82% 92%E8%A1%8C%E3%81%A3%E3%81%9F%E7%B5%90%E6%9E%9C.i pynb?dl=0 • データセット • https://www.dropbox.com/s/e15f6z9swkim9t1/data3.xlsx?dl=0
  38. 3.26 Lasso (続き) • 使われているパラメータを確認 する • Alpha=1 のとき •

    Age; -1.89684646 • Reputation; 11.08361536 • least_contract; 0.14480343 • Overall; 7.20388477 線形回帰と結果がそんなにかわらな い • Alpha=0.1 のとき • age; -3.47603239 • reputation; 11.72772306 • least_contract; 0.5582404 • overall; 7.89572688 • finishing; 0.11362631 • Balance; 0.70103772 • ShotPower; 0.13964463 • stamina; -0.15779715 • Jumping; -0.14810666 • Strength; 0.04932909 • LongShots; -0.06731084 攻撃系のパラメータが高いことが給 与には寄与している?
  39. 3.31 FIFA データでも決定木を書いてみよ う • 決定木を描画する • Graphviz の dot

    へのパスを個別に指定する (Windowsと Mac で記法が異なるので注意)
  40. e. 回帰モデルの評価指標 • 平均二乗誤差 • 予測値と正解の差(残差)をサンプル毎に足し上げ, サンプルサイズで割る (Mean Squared Error;

    MSE) • 平均絶対誤差 • 残差の絶対値をサンプルごとに足し上げ、最後にサンプルサイズで割る (Mean Absolute Error; MAE) • 外れ値の影響を受けにくい • Median Absolute Error (MedAE) • 残差の絶対値の Median • 決定係数 • 検証データの平均値で予測をした場合の残差平方和 (Sum of Squared Total; SST) と, モデルの残差平方和 (Sum of Squared Errors; SSE) の比率. R2 = 1 – SSE/SST. 誤差がすべてなくなれば1.0, 平均値の予測と同等の場合 0.0 とな る.
  41. 今日のまとめ • 経済学徒として機械学習をどう使う? • 卒論や修論や博論で定量的な分析を使うのであれば、まずはコンベン ショナルな手段 (線形な回帰分析や主成分分析 etc…) でも解析したほ うが手っ取り早い

    (nearly equal Stata or R で済む部分でこなせるかど うか) • ただし、Lasso や決定木などを使えたほうが, ビッグデータ解析には向 いている (see sklearn のhack tree) • 道具は必要な場所とタイミングで
  42. 成績評価(1) • 平常レポート (40パーセント; 必須) • 講義計画に示したように、複数の回で学生にはレポートを課します。 レポートは Word/PowerPoint形式のメールあるいは, github

    経由で の提出が求められます(どの方法を採用するかは、初回の講義で決定し ます)。 • レポートには、(A.) 利用したデータセットとその内容, (B.) 分析の問 い, (C.) 分析手法, (D.) 分析結果 を明記する必要があります。ページ 数や文字数は問いませんが, これらの内容が含まれており, 講義中にア ナウンスする評価手法を満たす場合, 高い得点を得ることが出来ます。 • 平常点 (10パーセント) • 本講義は実習が多く含まれており, また取り扱うデータセットや内容も 多彩です。そのため、受講者同士が協力する必要があります。こうし た受講者の態度を評価するために、平常点を設けます。
  43. 成績評価(2) • 最終レポート (40パーセント; 必須) • 講義の最終回では最終レポートの報告会を行います。受講者は3名から4名か ら構成されるグループで、最終レポートの報告を行う必要があります(人数は 受講者の人数により変更される可能性があります)。最終レポートでは、プレ ゼンテーションの方法を学生は自由に選ぶことが出来ます。PowerPoint

    以 外にも、Prezi などのアクティブプレゼンテーションツールや、他のプレゼ ンテーション手法を用いることが出来ます(プレゼンテーションツールについ ては、必要であれば講義内で説明する機会を設けます)。最終レポートでは、 以下の点について評価を行います。 (A.) グループ内の役割分担 (B.) データセットのユニークさおよび、それが適切に処理されているか (C.) 分析手法のユニークさおよび、それが適切に解析されているか (D.) プレゼンテーションのユニークさ (E.) 質疑応答にうまくリプライすることが出来ているか • 最終レポートの360°グループ評価 (10パーセント) • 3. の最終レポートについて、グループの自己評価および他のグループからの 評価を行います。3. で挙げた評価ポイントに基づき、グループメンバーおよ び他のグループは評価を行います。
  44. 成績評価 • 平常レポート • レポート1; max 20 • レポート2; max

    20 • 最終レポート • 40点 • 最終レポートの360°評価 • 10点 • 投票システムから集計したデータを按分します
  45. 参考文献 • https://www.codexa.net/tensorflow-for-begginer/ • http://tekenuko.hatenablog.com/entry/2016/09/19/214330 • http://www.randpy.tokyo/entry/python_random_forest • FUJII Hidemichi,

    MANAGI Shunsuke (2017) «Trends and Priority Shifts in Artificial Intelligence Technology Invention: A global patent analysis», RIETI Discussion Paper Series 17-E-066, https://www.rieti.go.jp/jp/publications/dp/17e066.pdf • The Economics of Artificial Intelligence: An Agenda, https://www.nber.org/books/agra-1
  46. 参考文献(2) • 確率的勾配降下法のメリットについて考えてみた • https://qiita.com/koshian2/items/028c457880c0ec576e27 • Python で Lasso を実装

    • https://qiita.com/kotamatsukun/items/d09f09f23308627b42ab • LASSO 回帰 / Python • https://stats.biopapyrus.jp/sparse-modeling/python-glmnet.html • Lasso Regressor(回帰分析)【Pythonとscikit-learnで機械 学習:第15回】 • http://neuro-educator.com/ml15/
  47. 参考文献(3) • SDG Regressor(回帰分析)【Pythonとscikit-learnで機械学 習:第14回】 • http://neuro-educator.com/ml14/ • 【Python】Pythonではじめる機械学習のgraphvizでエラーが出 るときの対処方法

    • https://kazusa-pg.com/python-install-graphviz/ • pydotplusでgraphvizのパスが解決できない場合の対処法 • https://qiita.com/wm5775/items/1062cc1e96726b153e28 • macOS Sierraでpip install tweepyしたらエラー出たので対処 した • https://qiita.com/ArtemisHaD/items/0fb4e32c44c358c9ef0c
  48. 参考文献(4) • Tibshirani, Robert (1996) Regression Shrinkage and Selection via

    the Lasso, Journal of the Royal Statistical Society. Series B, 58, 1, pp. 267-288, https://www.jstor.org/stable/2346178 • 川野秀一(2019) スパース推定に基づく統計モデリング, HIAS Health ビッグデータ・ICT勉強会 • 川野秀一・松井秀俊・廣瀬慧 (2018) スパース推定法による統 計モデリング, 統計学 One Point