Uncategorized

Analytics
SAS ViyaでのSASプログラム実行用リソース管理(一):計算リソース上限の設定方法

一、背景の紹介 "データアナリストのようなヘビーユーザと利用頻度が低いユーザや参照系のユーザなど、さまざまなユーザがおり、SASプログラムを実行する際に利用するCPUとメモリなどの計算リソースを、ユーザタイプごとに割り当てる設定をしたい"。これは、多くのViyaユーザ様が持つ課題です。これを実現するためには、次の2つのステップが必要です 1.異なるタイプのユーザごとに利用できる計算リソースを設定します。 2.異なるタイプのユーザに対して、権限を個別に割り当てる必要があります。 本記事では、まずViyaのシステム管理者に向けて、ユーザが利用できる計算リソースの上限値の変更方法を紹介していきます。 二、準備 設定方法を紹介する前に、まずViyaでSASプログラムを実行時に計算リソースを調達する方法を説明します。ここでは、viyaのアーキテクチャとk8sの知識が必要になるので、なるべくわかりやすく解説していきたいと思います。 まず、ユーザがSAS Studioを使用する際、Viyaはそのユーザのみが使用できるセッションを作成します。 ユーザは、実行が必要なSASアプリケーションごとに個別のセッションを作成することができ、各セッションはバックグラウンドでk8sクラスタ上に対応するポッドを持ちます。 各ポッドには使用できるCPUとメモリの上限があり、デフォルトでは2vcpusと2Giのメモリが使用できます。Viyaがユーザのセッションのためにポッドを生成するとき、ポッドテンプレート(podTemplate)と呼ばれるものを参照します。ポッドテンプレートはviyaがデプロイされるときにyamlファイルで定義されるものです。そのため、ユーザセッションが利用できる計算リソースを変更したい場合は、viyaのデプロイに使用するポッドテンプレートのyamlファイルを変更する必要があります。また、ユーザの種類によって異なる計算リソースの制限を設定したい場合は、既存のポッドテンプレートをコピーして、名前と数値を変更するだけです。 デプロイメントファイルとK8sクラスターに変更を加える必要があるため、以下を準備する必要があります。基本的にViyaをデプロイ時に必要なものと同じですので、もし下記に対して不明なところがある場合、ご利用のViya環境のデプロイ担当者にお問い合わせください。 ・k8sクラスターのAPIサーバーに接続できる作業用のサーバー、OSはLinux系がおすすめです。 ・k8sクラスターに接続用コンフィグファイル(管理者権限が必要)。~/.kube/configとして保存します。 ・k8sのコマンドラインツール:kubectl ・Viyaデプロイメントアセットのコンパイル用ツール:kutomize ・Viyaをデプロイ時に使ったkustomization.yamlやsite-configフォルダを含めたファイルアセット 三、計算リソース上限値の修正方法 計算リソースの調達方法を簡単に紹介した後、次は、そのリソースを変更する方法について説明します。ここでは、主に以下の2つの方式を採用しています。以下はLinux OSを使用することを前提に説明します。 以下はこの章の項目の一覧です。読者は以下のリンクを使って興味のあるセクションに直接ジャンプすることができます。 1.デプロイ用ポッドテンプレートファイルを修正し、再デプロイでリソースの設定を更新する方法 2.K8sクラスター内にデプロイされたポッドテンプレートをそのまま修正する方法 3.設定後の検証方法 1.デプロイ用ポッドテンプレートファイルを修正し、再デプロイでリソースの設定を更新する方法 この方法のメリットは、デプロイメントファイルに対して変更を加えるため、後にViya環境のバージョンアップや設定変更があった場合でも、計算リソースの設定の変更が保持されることです。 デメリットは、設定時にデプロイメント手順を再実行する必要があるため、比較的面倒ではあるが、長期的には管理しやすいので、おすすめです。 ①まず、Viya のデプロイメントアセットを含むパスの一番下に移動する必要があります。 このパスを/opt/viyainstallと仮定して、以下のコマンドを実行する必要があります。 deploy=/opt/viyainstall cd $deploy パス$deployの下の構造は、おおよそ次のようになっているはずです。下記のファイルやフォルダが含まれていない場合、パスが正しいか、Viyaのデプロイに使用するファイルが欠落していないかを確認することが重要です。 ②次に、ポッドテンプレート内で定義されているcpuとmemoryの制限を変更するために、site-configフォルダに以下のファイルを作成する必要があります。実際には、設定したいCPUやメモリの上限値に合わせて、下記のコマンド内のvalueの値を変更する必要があります。下記のコマンドの例では、ユーザが利用できる計算リソースの上限を31vcpu/240Giに設定しました。 cat <<EOF > $deploy/site-config/modify-podtemplate.yaml #メモリの上限値を修正 - op: add path: "/metadata/annotations/launcher.sas.com~1default-memory-limit" value: 240Gi #利用できるメモリの上限値 - op:

Analytics
SAS ViyaでSASプログラムをバッチで実行する方法の紹介

一、背景の紹介 SAS Viyaに搭載されているSAS StudioはSASプログラムの作成と実行のツールとしてよくユーザーさんたちに利用されています。また、実際のビジネスの中では、SASプログラムのバッチ実行が必要となる場面もたくさん存在しています。しかし、多くのSAS9を活用している既存のユーザーは、Viyaでのバッチ実行方式に対してまだ詳しくないかもしれませんので、本ブログを通してViyaでバッチ方式でのSASプログラムの実行方法を紹介したいと思います。 以下は本記事内容の一覧です。読者は以下のリンクをで興味のあるセクションに直接ジャンプすることができます。 二、sas-viya CLIツールの紹介 1.sas-viya CLIとは 2.インストール方法の紹介 三、SASプログラムをバッチで実行する方法の紹介 1.バッチでSASプログラムの実行 2.実行されたバッチジョブの確認とログの取得方法 3.バッチジョブの削除と停止方法 二、sas-viya CLIツールの紹介 1.sas-viya CLIとは SAS Viyaのコマンドラインインターフェース(以下はsas-viya CLI)は、コマンドライン上で、SAS ViyaのRESTサービスを利用することによって、SAS Viyaの設定や機能を利用するためのツールです。CLIは、グラフィカル・ユーザー・インターフェース(GUI)を使用する代わりに、プログラム的にSAS Viyaを操作するために使用することができます。 sas-viya CLIのbatchプラグインは、SAS Viya環境にコマンドラインからSASプログラムやコマンドをアップロードし、バッチ処理することを可能にします。プログラムをアップロードした後は、サーバ側でバッチ処理を実施するので、処理中にViyaのサーバとの接続を維持する必要はありません。 2.インストール方法の紹介 従来SAS9を利用しているユーザーは、sas.exeなどでSASプログラムをバッチで実行していたと思いますが、Viyaの場合はsas-viyaというコマンドラインツールを利用します。別途でインストールは必要ですが、Viyaのサービスへ接続できるところであれば、WindowsでもLinuxでも、任意のマシン上から遠隔でViya上でSASジョブの実行ができます。以下ではsas-viyaコマンドラインツールのインストールとセットアップ方法を紹介します。 まずは下記のサイトからお使いのOS(Linux, Window, OSX)に応じて、インストールファイルをダウンロードします。 https://support.sas.com/downloads/package.htm?pid=2512/ ① Windowsをご利用の場合の手順は以下となります。Linuxユーザーの方は、こちらを参照ください。 (1)ダウンロードしたzipファイルを解凍し、sas-viya.exeのフォルダの下にshift+右クリックし、「PowelShellウィンドウをここで開く」をクリックします。 (2)利用開始の前に、接続先のViyaサーバ情報の初期登録が必要ですので、下記のコマンドを実行します。聞かれた内容を下記のように入力し、アクセス先を定義します。 .\sas-viya.exe profile init こちらのステップは初めて利用する際に、一回だけ実施します。Service Endpointは繋ぎ先のURLを入力し、それ以外の”Output type”と”Enable ANSI colored output”については、画面に出力されたメッセージのフォーマットを指定するものですので、お好みの設定で構いません。もしわからない場合は、それぞれにtextとyにすれば良いです。 (3)接続先の情報を設定し終わったら、次はサーバへのログインです。下記のコマンドを実行して、IDとPWを入力し、ログインします。 .\sas-viya auth login

Analytics
自然言語処理とSAS (3)

こんにちは!SAS Institute Japanの堀内です。今回も自然言語処理について紹介いたします。 前回の投稿では、実際にSASを使って日本語の文章を扱う自然言語処理の例を解説しました。 最終回の本投稿ではその応用編として、自然言語処理の代表的なタスクとSASによる実装方法を紹介します。なお、ここでいうタスクとは「定式化され一般に共有された課題」といった意味になります。自然言語処理には複数のタスクがあり、タスクごとに、共通する部分はあるとはいえ、問題解決のアプローチ方法は基本的に大きく異なります。SASには各タスクごとに専用のアクションセット1が容易されています。 要約タスク その名の通り文章を要約するタスクです。SASではtextSummarizeアクションセットで対応可能です。 ここでは、NHKのニュース解説記事「気になる頭痛・めまい 天気が影響?対処法は?」(https://www.nhk.or.jp/kaisetsu-blog/700/471220.html) の本文を5センテンスで要約してみましょう。 import swat conn = swat.CAS('mycashost.com', 5570, 'username', 'password') conn.builtins.loadActionSet(actionSet='textSummarization') conn.textSummarization.textSummarize(addEllipses=False, corpusSummaries=dict(name='corpusSummaries', compress=False, replace=True), documentSummaries=dict(name='documentSummaries', compress=False, replace=True), id='Id', numberOfSentences=5, table={'name':CFG.in_cas_table_name}, text='text', useTerms=True, language='JAPANESE') conn.table.fetch(table={'name': 'corpusSummaries'}) numberOfSentencesで要約文のセンテンス数を指定しています。結果は以下の通りです。 'まず体調の変化や天気、気温・湿度・気圧などの日記をつけ、本当に天気が影響しているのか、どういうときに不調になるのかパターンを把握すると役立ちます。 気温・湿度以外にも、気圧が、体調の悪化や、ときに病気の引き金になることもあります。 私たちの体は、いつも耳の奥にある内耳にあると言われている気圧センサーで、気圧の変化を調整しています。 ただ、天気の体への影響を研究している愛知医科大学佐藤客員教授にお話ししを伺ったところ、「台風最接近の前、つまり、気圧が大きく低下する前に、頭が痛いなど体調が悪くなる人は多い」ということです。 内耳が敏感な人は、わずかな気圧の変化で過剰に反応し、脳にその情報を伝えるので、脳がストレスを感じ、体のバランスを整える自律神経が乱れ、血管が収縮したり、筋肉が緊張するなどして、その結果、頭痛・めまいなどの体に様々な不調につながっているのです。' 重要なセンテンスが抽出されていることが分かります。   テキスト分類タスク 文章をいくつかのカテゴリに分類するタスクです。その内、文章の印象がポジティブなのかネガティブなのか分類するものをセンチメント分析と呼びます。ここでは日本語の有価証券報告書の文章をポジティブかネガティブか判定してみます。使用するデータセットは以下になります。 https://github.com/chakki-works/chABSA-dataset (なお、こちらのデータセットには文章ごとにポジティブかネガティブかを示す教師ラベルは元々付与されておりませんが、文章内の特定のフレーズごとに付与されているスコアを合算することで教師ラベルを合成しております。その結果、ポジティブ文章は1670文章、ネガティブ文章は1143文章、合計2813文章になりました。教師ラベルの合成方法詳細はこちらのブログをご覧ください。) pandasデータフレームにデータを格納した状態を確認してみましょう。 df = pd.read_csv(CFG.local_input_file_path) display(df)

Analytics
自然言語処理とSAS (2)

こんにちは!SAS Institute Japanの堀内です。今回も自然言語処理について紹介いたします。 第1回目の投稿では、最近の自然言語処理の応用例とSAS社が携わった自然言語処理関連の実案件の概要を紹介しました。 第2回目の本投稿では実際にSASを使って日本語の文章を扱う自然言語処理の例を解説していきます。 テキストデータって何? 自然言語処理を語る前に、自然言語処理が処理対象とするデータのことを知る必要があります。自然言語処理で扱われるデータはテキストデータと呼ばれています。ここからはテキストデータがどういうものか探っていきます。 テキストとは以下のようなものです。 「自然言語処理で扱われるデータはテキストデータと呼ばれています。本投稿ではテキストデータがどういうものか探っていきます。」 何の変哲もない日本語の文章です。日本語以外の言語で書かれた文章ももちろんテキストと呼ばれます。 ではテキストデータとは何でしょう?データと言うからには何らかの構造を持っていると考えます。例えば行と列が与えられたテーブルデータがわかりやすい例です。 テキストデータと呼ぶとき、テキストに何らかの構造を与えられたものを想起すると良いかと思います。上で挙げたサンプルのテキストをテキストデータに変換してみましょう。 ["自然言語処理で扱われるデータはテキストデータと呼ばれています。",  "本投稿ではテキストデータがどういうものか探っていきます。"] これは句読点でテキストを区切り、リストに格納した例です。やりかたは他にもあります、 [["自然言語処理",  "で", "扱われる", "データ", "は", "テキストデータ", "と", "呼ばれて", "います", "。"],  ["本投稿", "では", "テキストデータ", "が", "どういうもの", "か", "探って", "いきます", "。"]] これは先ほどの例で2つのテキストに区切ったうえで、それぞれのテキストを更に単語ごとに区切って別々のリストに格納した例になります。これをテーブルデータのように整えると、 ID COL1 COL2 COL3 COL4 COL5 COL6 COL7 COL8 COL9 COL10 1 自然言語処理 で 扱われる

Analytics
製造業における DX と SQC

こんにちは、SAS Japan の西井です。本ブログにアクセス頂きありがとうございます。私は 2019 年に SAS に入社しましたが、それまでは国内の自動車部品メーカーにて様々な化学素材や工業部材の基礎研究・量産化開発に 10 年以上携わって来ました。SAS 入社後は、国内の製造業のお客様へ業務課題解決のためのデータ分析のソリューション(ソフトウェアやサービス)を提供する仕事に従事しています。今回はそれらの経験を通じて感じた事をタイトルのブログ記事として記しました。製造業での DX 推進の一つのヒントになれば幸いです。 背景 近年、製造業におけるデジタルトランスフォーメーション (DX) が大きな注目を集めています。DX とは一般的に、データやデジタル技術を活用して、業務プロセスを変革し競争優位を確保していくことと定義されています (参照 1) 。 製造業で DX が求められる背景には、ビジネス環境の変化による製品競争力低下への強い危機感があると考えています。日本の製造業はこれまで、各社のコア技術を元にした高度な品質を有する製品群によって、長期にわたり競争力を維持して来ました。しかし2000年代以降、新興国の参入やサプライチェーンのグローバル化など様々なビジネス環境の変化により、その優勢性に陰りが見えるようになりました (参照 2) 。競争優位の再構築に向けて、単独の製品性能による価値だけでなく、バリューチェーンを横断する形での付加価値創出、例えばロジスティックの最適化や顧客サービスの高度化など、いわゆるビジネスモデルの変革へ向けた施策が多くの企業で試みられるようになりました。その際、重要な要素の一つがデジタル技術の活用であり、DX の概念と重なったため、最近より強く注目されるようになって来たと認識しています。 本ブログのスコープ 弊社 SAS Japan は国内の製造業のお客様へ分析ソフトやサービスの提供を行い、業務課題の解決や高度化への変革、DX 推進のサポートを進めております。その中でしばしばお客様から、このような DX の総論を聞いても、実感がわかない、自分の業務とどう関連するのかわからないというご意見をしばしば頂くことがあります。特に競争優位の中核である品質管理に関わっている技術者の方々にとっては、製造データを用いた生産・品質管理活動はかねてから実施しており、今後どのような変化が必要で具体的に何に着手して良いか理解しかねていると感じています。今回、そのような現場技術者の方や企業の DX 推進担当者の方々を対象に、一つの切り口の例として、これまで品質管理手法として長らく活用され今も活躍している SQC (Statical Quality Control: 統計的品質管理) にフォーカスを当て、どのように DX へ組み込み発展させることが可能か、提言したいと思います。 SQC とは SQC は、QC七つ道具などの可視化手法 (管理図など、参照

Analytics
自然言語処理とSAS (1)

こんにちは!SAS Institute Japanの堀内です。今回は自然言語処理について紹介いたします。 自然言語処理とは、人間が普段会話したりメールしたりする際に使う言語(日本語や英語など)を、一種の信号とみたてて、その信号を機械が理解し、機械によって意味のある出力を得られるように工夫して処理することを指します。”自然”と明記しているのは機械にとっての日常語であるプログラム言語や機械言語と区別するためです。近年のAIやディープラーニングの発展とともに、この自然言語処理の分野も驚異的な進歩が見られ、私たちの日常生活の様々な分野で実際に活用されるようになってきました。第1回目の本投稿では、その内のいくつかを紹介いたします。第2回目以降は、実際にSASを使った自然言語処理の例を解説していく予定です。最後まで読んでいただければ、自然言語処理のホットトピックの内のいくつかを実装レベルで把握することができるようになるかと思いますのでどうぞお付き合いください。 最近の自然言語処理の実務適用例 チャットボット フリーテキストを入力欄に書き込むと、それに応じてボット(プログラムされた自動応答マシン)が適切な返答をテキストで返してくれるものです。様々なウェブページやアプリケーションに内蔵されるようになってきました。 例えば、不動産検索アプリに内蔵されたチャットボットでは、希望の条件をフリーテキストで入力すると、条件に合う物件を瞬時にレコメンドしてくれます。これによりユーザーが不動産検索サイトで条件を指定したり、相談窓口に電話して担当者に希望を伝えたりする手間が省けるようになってきています。   文書検索 手元にある長文の文書(例えば小説や論文など)と類似する文書を探したいとき、皆さんはどうしていますか?検索キーワードをいくつかピックアップしてGoogleなどのサーチエンジンで検索する、というのが最もオーソドックスな方法かと思いますが、最近では文書をまるごとサーチエンジンに入力し、似ている文書を探してくる文書検索ができるようになってきました。似ている文書がどのくらい似ているのかという指標も併せて返してくれるので、大量の論文を検索しなければならないビジネスや研究分野においては、検索の手間が大幅に減り大変便利です。   自動採点 皆さんも学校の国語や英語の授業で、長文を読んで質問に対して答えを書くという長文読解問題を解いたことがあるかと思います。私はこの手の問題が大の苦手でした。なぜならまず長文を読まなければならないのと、答えも一定の長さの文章を書かなければならず、とても手間に感じていました。実はこれ、テストを受ける生徒が嫌がるだけでなく、採点をする先生も同じくらい嫌だったのではないかなと思います。生徒の書いた解答文を読み解き、模範解答とされる文章と意味的に合致しているかという判断を下さなければならないのは結構手間がかかるはずです。実は最近の自然言語処理の発展により、この採点の部分を自動化することができるようになってきています。生徒の書いた文章と模範解答文との意味的距離をモデルが計算し、意味が近ければ正解、遠ければ不正解とすることができます。 また、長文のどの部分が解答となる要素を含んでいるか、というところまで判断し、解答文を自動作成することもできるようになってきました。これはQAタスクと呼ばれる自然言語処理の代表的なタスクの直接的な応用例になります。   オートフィル機能・スペルチェック機能(ライティング支援機能) 文書をタイピングする際、先読みして候補の単語をレコメンドしてくれたり、タイプした文のスペルチェックをしてくれたりする機能を皆さんも使ったことがあるかと思いますが、最近のものは複数行のセンテンスをレコメンドしてくれるようになってきました。またプログラミングの支援機能として書きたい内容をフリーテキストで書くと、該当のコードを提案してくれる機能がGitHubに実装されるなど、世の中はますます便利になりつつあります。(今私はブログを書いているわけですが、書きたいことの概要だけを書くと実際のブログ記事が提案されるようになったらどんなに仕事が捗るかと思います。) このように、これまで人間が苦労をして行っていた言語処理を機械ができるようになってきました。上にあげた例は実務適用例のごく一部です。様々な分野で自然言語処理が適用されようとしています。では、実際にSASではどのような事例が扱われているのでしょうか?   SASによる事例紹介 ここではSASがこれまで手掛けてきた自然言語処理のプロジェクトの一部を紹介します。 MR活動最適化 フランスの製薬企業において、SNSデータを解析することでKOL (Key Opinion Leader: 製薬企業の販売促進に影響力を持つ医師などの専門家) のセグメンテーションを行い、MR活動の最適化を行いました。SNSデータの解析にVTA¹が用いられました。 紹介記事: https://www.linkedin.com/pulse/how-does-hcp-behavioral-segmentation-help-build-full-olivier-bouchard/   院内有害事象発生防止の取り組み ノルウェー北部の中規模病院にて院内有害事象発生の未然防止のため標準的なツールGTT(トリガーツール)を半自動化する改良を加えることで、同等の精度を保ちながら院内有害事象の発見に要する時間を94%削減させました。電子カルテにはフリーテキストで記載された様々な様式の文書がありますが、そこから院内有害事象のトリガーとなる事象を抽出する部分にSASの自然言語処理の技術が使われました。 紹介記事: https://www.sas.com/da_dk/customers/helse-nord-patient-safety.html   有害事象発生予測 市販後の医薬品安全性監視において、FDA(アメリカ食品医薬品局)に寄せられた患者テキストの内、対象とする有害事象の発生を真に報告しているものをディープラーニングにより自動抽出する試みがなされました。テキスト解析とそれに続くディープラーニングによる予測モデルの構築にSASの技術が使われました。 紹介記事: https://communities.sas.com/t5/SAS-Global-Forum-Proceedings/Developing-a-SAS-Deep-Learning-MedDRA-encoder-MedDRA-DeepCoder/ta-p/735360   院内感染発生状況モニタリングシステム デンマーク南部地域一体の病院における、院内感染発生状況をモニタリングするシステムの開発が行われましたが、フリーテキストで記載された電子カルテの文書の中から、院内感染が疑われる箇所を抽出するアルゴリズムにSASの自然言語処理の技術が使われました。 紹介記事: https://www.sas.com/da_dk/customers/the-region-of-southern-denmark.html   消費者安全に関する報告のテキスト解析 消費者安全を担当するアメリカの政府機関に寄せられた消費者による様々な商品の安全性に関する報告文書を、VTAで解析し, VA²で可視化することで、単なる検索では得られないインサイトを得られることが分かりました。

Analytics | Students & Educators
0
本当の原因は何か?:潜在アウトカムによる因果効果の定義

はじめに   データに基づいた意思決定が必要とされる場面が近年ますます増えており、そういった際には、データからいかに因果関係を導き出すかが非常に重要な問題です。”因果”を統計学的に捉え、いかにしてそれに迫るかは、統計的因果推論として体系化がなされています。SAS Blogでは、前回の記事からこの統計的因果推論に関する連載コラム・シリーズが始まりました。  因果関係を統計学的に導くことを目的とする統計的因果推論には、主に2つの枠組みがあります。1つは潜在アウトカムを用いるRubin流の考え方、そしてもう1つが構造的因果モデルを用いるPearl流の考え方です。これら2つの考え方は相反するものではなく、Pearl流の因果推論では、ある変数の特徴とそれらの関係を記述するために構造的因果モデル  (SCM; Structural Causal Model) が用いられています。このSCMには対応するグラフィカル因果モデルがそれぞれ存在しており、その際に使用されるのが有向非巡回グラフ (DAG; Directed Acyclic Graph)※1です。このDAGはRubin流の因果推論においても、変数間の関係を視覚的に理解するために補助的に利用がされています。本コラム・シリーズでは前者の潜在アウトカムの枠組みでの因果推論について紹介を行います。今回は特にその根底となる潜在アウトカムについて、また、それを用いた因果関係の定義について説明します。  ※1 補足資料を参照    相関関係と因果関係   相関関係とは、ある2つの変数において、一方が増加するにつれてもう一方も増加(減少)する傾向があるという双方向の関係を意味しています。これに対し因果関係とは、ある2つの変数のうち、一方の操作可能な変数(原因)の値を変化させる(介入を行う)と、もう一方(結果)の値が変化するという、原因から結果への一方向的な関係です。これらの関係の違いを理解することは社会生活を送る上で非常に重要です。例えば、相関関係がある有名な例として、年収と血圧の関係があります。この2つの変数の間には正の相関関係(年収が高くなるほど血圧が高い傾向)があります。しかし、年収を上げるために血圧を上げる(Ex, 暴飲暴食を行う)ことは妥当でしょうか。もしくは、血圧を下げるために年収を下げる(Ex, 転職をする)ことは受け入れられることでしょうか。おそらく多くの読者の方の意見は「No」であるかと思います。この例からも察することができるように、相関関係と因果関係の存在とその方向というものは必ずしも一致しません。また、これらの関係を混同することは大きな不利益につながる可能性があります。上記の例であれば、真には血圧の増加は年収増加に対して因果的な効果を持たないのにも関わらず年収を上げるために無駄に暴飲暴食を行ってしまうことで、結果として不健康につながる可能性があります。   このように興味の対象が因果関係、因果効果である場面は比較的多く存在します。統計的因果推論 (causal inference) とはこれらを形而的、哲学的にではなく、統計学的に考える学問分野です。また、単に因果推論と言われる場合もあり、コラム中で単に因果推論と呼称した場合には、統計的因果推論を意味していることにご注意ください。データから因果効果を推定するために「傾向スコア」を用いた手法など様々なものが用いられています。しかし、これらの手法は適用さえすれば因果効果を適切に推定することができるというわけではありません。因果推論を行うにあたっては因果関係を検討する集団はどういった集団であるか、考える因果効果はどのような介入の効果であるかといった因果的な疑問 (causal question) を明確にすることがまず重要です。その上でデータへの手法の適用があります。また、それぞれの手法は異なる仮定を必要とするため、無条件で因果効果を求めることはできず、その仮定が目の前にあるデータに対してどの程度成立するものであるかといった議論も必要です。 加えて、推定する対象が手法間で異なるといった点や真の関係をゆがませる要因は何が想定されるのかなど、他にも様々な事を考慮する必要があり、慎重に議論を行っていくことが大切です。本コラムでは潜在アウトカムの枠組みでの因果推論の理論(考え方)と、一部の因果効果の推定手法についてのみ取り扱いますが、現実的にはそのような総合的な議論が重要です。    本コラムにおける用語   今回のコラムでは、心臓移植とその5日後の生存の間の因果関係を具体例として考えます。すなわち、心臓移植という介入が5日間の生存というアウトカムに対して、因果効果を持つかどうかを検討します。医療の分野では原因として考える要因を介入 (intervention) や処置 (treatment) 、曝露 (exposure)、結果変数のことをアウトカム (outcome) と呼ぶことが一般的であり、このコラム・シリーズでは、具体例として主に医療関連の話題を取り上げるため、基本的にはこのような呼称を行います。経済・金融系の分野では、因果効果があるかどうか検討したい要因が施策等である場面があるかと思いますが、因果推論の理論に関して変わりはないので、本コラムの例を読者の方がそれぞれ抱えている疑問に置き換えて考えるとよいでしょう。ただ、今後紹介する因果推論に関する様々な仮定の妥当性や分析に用いられるデータの特徴は、それぞれの分野によって異なりますので、その点ご理解ください。    潜在アウトカムによる因果効果   それでは早速、例を用いて潜在アウトカムとは何か、因果関係とは何かを考えていきます。具体的には心臓移植(介入)が5日後の生存(アウトカム)に対して因果的な効果があるのかどうかを考えます。この関係を検討するために、まずゼウスとヘラというある2人に対し、ともに介入を行うことを想定し、何らかの方法で以下の結果が得られたものとします。  ゼウスは1月1日に心臓移植を受けると、その5日後には死亡している。 ヘラは1月1日に心臓移植を受けると、その5日後は生存している。   このもしもの結果(介入を行う場合の結果)が分かったとき、心臓移植はゼウスとヘラの5日間の生存に対してそれぞれ因果効果を持つと結論付けることは可能でしょうか。一見すると、ゼウスは心臓移植後に死亡し、ヘラは生存していますので、ゼウスに対してはnegativeな因果効果(心臓移植により死亡した)、ヘラに対してはpositiveな因果効果(心臓移植により生存した)があったように見えます。しかし、その結論は正しいのでしょうか。もしかすると心臓移植を受けずとも、ゼウスは5日後には亡くなり、ヘラは生きていたのかもしれません(結果は変わらなかった)。もしくは心臓移植を行わなければ、逆にゼウスは生存し、ヘラは亡くなっていたのかもしれません。つまり因果効果があるかどうかについては、この結果だけでは判断することはできません。   では、どのような状況であれば因果関係かどうかを判断することができるでしょうか。その1つのアイディアがもし介入を受けなかったらどのような結果が得られたのかを考えることです。実際にはゼウスもヘラも介入を受けるか受けないかのいずれかしか取り得ないため、必ずどちらか一方の結果は現実的には得られない(反事実)ものとなってしまいますが※2、先ほどと同様に何かしらの方法でその場合の結果を知ることができたと仮定し、それぞれの場合の結果を比較するわけです。そして、それらの値が異なるのであれば介入の因果効果があるとし、同一であるのならば因果効果がないと判断します。   ゼウスとヘラに関しては、以下のようなifの結果が得られたとします。  ゼウスは1月1日に心臓移植を受けないと、その5日後は生存している。 ヘラは1月1日に心臓移植を受けないと、その5日後は生存している。   先程の結果も含め、介入を受ける場合と受けない場合の結果をまとめたものが下図です。   介入を受けない場合の結果が得られたことにより、心臓移植はゼウスに対しては5日後の生存に対し因果効果を与えた(ネガティブな効果)、ヘラには因果効果を与えなかった(介入があってもなくても結果は同じ)と判断することができます。おそらく、この判断に関しては読者の方々も特に異論はないかと思います。この例のように、ある介入を受けた場合のifの結果のことを潜在アウトカム (potential outcomes)

Analytics | Students & Educators
0
本当の原因は何か?:コラム概要

はじめに   根拠に基づいた意思決定を行うこと (EBPM; Evidence Based Policy Making) が、近年分野を問わず重要視されるようになってきています。意思決定を行う立場としては、根拠となる事象と結果の事象の間に因果関係があるのか、それとも相関関係しかないのかは大変大きな違いです。   因果関係と相関関係を混同した1つの有名な例として、チョコレート摂取量とノーベル賞の受賞者数に関する研究があります。この研究では、「チョコレートを多く摂取するとノーベル賞受賞者数が増加する」という因果関係の存在について触れられています。この論文は、2012年に世界で最も権威のある医学雑誌の1つである New England Journal of Medicine に掲載され、世界規模で大きな論争を引き起こしました。論文では、国ごとのチョコレート消費量とノーベル賞受賞者数を調べたところ、チョコレート消費量の多い国ほどノーベル賞受賞者数が多いというデータが示されました。論争のポイントとなったのは、各国のチョコレート消費量とノーベル賞受賞者数の関係が以下のどちらの関係であるかについてです。  チョコレートを摂取すればノーベル賞受賞者は増加する(因果関係)  別の隠れた要因がそれぞれに影響を与えており、チョコレート消費量とノーベル賞受賞者数の間に見かけ上の関連性が生まれている(相関関係)   一体どちらの主張が正しいのでしょうか。読者の方には、ぜひ今の意見と、このコラム連載が終了した後の意見を比較していただきたいと考えています。   統計的因果推論 (Causal causal inference)  とは、因果関係をデータから導くための体系的な学問領域であり、2021年に David Card, Joshua Angrist, Guido Imbensの3名がノーベル経済学賞を受賞したことも相まって、現在大きな注目を集めています。しかし、その注目の程度と比べると、内容についてはあまり認知されていないように思います。そこで本ブログ・シリーズでは、統計的因果推論(または、単に因果推論)に関する連載を行います。データアナリティクスに関わる多くの方に、因果とは何か、それをデータから導くためには何が必要となるのかを理解をしていただき、適切なデータアナリティクスのために活用されることを望みます。連載コラムで取り扱う内容は以下を予定しています。  理論編 潜在アウトカムの枠組み 因果効果を求めるために必要な条件 観察研究と実験研究における交換可能性 選択バイアス (selection bias) 測定誤差 (measurement error) 手法・実装編 推定におけるモデルの必要性 層別化・回帰・標準化 傾向スコアとそれを用いた手法 操作変数法  理論編では、データから因果関係を考えるために必要となる概念、および仮定について取り扱います。また、観測される関係が真の関係と異なる要因について解説を行います。手法・実装編では、理論編で扱う潜在アウトカムの枠組みで因果効果を推定する手法についてSASでの実装方法とともに紹介を行います。SASソフトウェアでは、2016年以降のバージョンで、因果推論に特化した機能が利用できます。   なお、手法・実装編で紹介する因果効果の推定手法は、すべてを網羅しているわけではなく、回帰不連続デザインなど他にもいくつかの手法があることにご注意ください。 本コラムでは出来る限り数学的な記載は避け、直感的な表現をすることに努めますが、数理的な部分に興味がある方に向けた参考資料も準備しています。コラム中に登場する解析例で使用したプログラム・コードは著者のGithub上で公開を行う予定です。    謝辞  この連載記事では、参考文献として主に以下の2つを使用します。 Causal

Analytics | Data for Good | Data Visualization | Internet of Things | Learn SAS
0
サステナビリティ経営へのアナリティクス (2)

はじめに 今回は、地球環境に関する喫緊の課題であるカーボンニュートラル対策およびグリーン成長戦略におけるSASの取組みをご紹介します。 カーボンニュートラルに向けた動向 159か国・地域をカバーしたパリ協定*1に締結した日本は、2050年までにGHG(温室効果ガス)排出を全体としてゼロにする(GHGの排出量と吸収量を均衡させる)カーボンニュートラルを目指すことを宣言しています。すべてのインダストリーで多くの企業はこれをカバーするグリーンビジネス戦略の施策を展開し、マテリアリティの中核に置いたカーボンニュートラルに向けた事業を推進しています。すでにヨーロッパを中心に35の国(2021年9月時点)で炭素税が導入され、GHG排出量に応じた課税がされています。日本では地球温暖化対策税だけですが、今後より厳しい税率の炭素税の導入が検討されています。 グリーン成長戦略 温暖化への対応を成長の機会ととらえたグリーン成長戦略*2は、14の重点分野が設定されており、グローバル市場や世界の巨大なESG投資意識し国際連携を推進したゲームチェンジが始まっています。これらの重点分野での目標は、高いハードルによりイノベーションが必要と考えられています。企業はESGに係る情報開示を求められ、統合報告書やサスティナビリティレポートなどでESG情報を開示しており、カーボンニュートラルの取組みはその中核をなしています。SASにおいても長年にわたり推進しています。 サステナビリティのリーダーとしてのSAS SASは、企業のサステナビリティのリーダー*3として、従業員、サプライヤー、および顧客と緊密に連携し、省エネ、排出管理、汚染軽減、節水、グリーンビルディング、およびその他のプログラムに焦点を当てたプログラムで環境フットプリントを削減しています。スマートキャンパスプロジェクトを通じて運用を改善するためのデータのストリーミングから、ソーラーファームからのクリーンエネルギーでオフィスビルに電力を供給するまで、SAS Visual Analyticsを使用して、環境パフォーマンスを収集、管理、計算、および報告をしています。 SASの環境プログラムの成果 SASの2020年の環境プログラムの主な成果は次のとおりです。   カーボンニュートラルの取組み SASは、パリ協定の目標に引き続きコミットし、2050年のカーボンニュートラルな目標を設定しています。それによりサイエンスに基づく目標の達成に取組む最初の1,000社の1つとして認められました。 SASの主要なエネルギーおよびGHG排出削減イニシアチブには、積極的なエネルギーおよびGHG排出削減目標の設定、LEED® (建築や都市の環境性能評価システム) ガイドラインに準拠した施設の建設と維持、電気自動車充電ステーションの設置、再生可能エネルギーへの投資、オフィスビルおよびデータセンター向けのスマートなエネルギー効率の高い技術の追求、電話会議の奨励が含まれています。SASは、自社の独自のソフトウエアを使用して、世界中の施設のエネルギーと排出量の要件を収集、理解、管理するプロセスを改善し、消費傾向を報告して積極的に影響を与える能力を高めています。環境プログラムは、SASソフトウエアを使用して削減戦略を策定し、対策間の関係を分析して最大の効果を持つ施特定、決定パフォーマンス指標の開発および監視を実行しています。 次に代表的なイニシアチブを紹介します。 クリーンエネルギーシフト SDGs目標7「エネルギーをみんなにそしてクリーンに」とSDGs目標13「気候変動対策を支援するために」への施策 SASは再生可能エネルギーの導入とクリーンエネルギーの経済的および環境的利益を積極的に提唱しています。 SASは、ノースカロナイナ州ケリーにある広大なグローバル本部キャンパスに自らのSASソーラーファームを構築、グリーンエネルギー自社の電力、移動に利用するEVへの電源供給を実現しています。SASソーラーファームがノースカロライナ州知事ロイ・クーパーにクリーンエネルギー経済とパリ協定の支援のための執行命令に署名する場所として選ばれた後、SASはクリーンエネルギーと炭素政策の設計を支援するために州のクリーンエネルギー計画で推奨されているように利害関係者会議に継続的に参加ました。 スマートシティー SDGs目標11「住み続けられるまちづくりを」への施策 SASはSmart Cities Council*4、Envision America*5、Research Triangle Cleantech Cluster(RTCC)*6などの組織とも提携し、接続されたデバイス、ソーシャルメディア、モノのインターネット(IoT)から供給されるデータの爆発的な増加を利用して、自治体のスマート化(スマートシティー)を支援しています。人工知能(AI)、ブロードバンドワイヤレス、クラウドコンピューティング、IoTネットワークなどの相互依存テクノロジーの理解を深めることで、効率の向上、コストの削減、機会の特定、気候変動の影響の緩和を支援します。 スコープ別の世界のGHG排出量 サプライチェーン排出量(スコープ1からスコープ3に分類される*7)の全体像を把握し、効果的な削減対象を特定して長期的な環境負荷削減戦略や事業戦略策定のインサイトを抽出することが重要と考えています。 SASは自社ソフトウエアによりデータ収集、分析、可視化、予測を行っています。これにより現状を迅速かつ正確に把握し、統計モデルやAIモデルにより予測・最適化しゴールへの軌道や実現性を描いています。アナリティクスによる意思決定により確実な目標達成を実践しています。 *SAS Visual Analyticsによる環境ダイナミックレポート グラフ1: スコープ別GHG排出量   *SAS Visual Analyticsによる環境ダイナミックレポート グラフ2: スコープ1とスコープ2のGHG排出量トレンド その他の環境への取組み 環境におけるその他の分野でも次のように多くの取組みをSASのアナリティクスにより実施しています。詳細は割愛しますのでご興味がある方はCSRレポート*8をご覧ください。 廃棄物の転換(SDGs⽬標12)、紙の消費削減·リサイクル(SDGs⽬標12、15)、節水(SGD目標 6)、排水管理(SGD目標

1 2 3 4 5 6 14