SAS Japan
活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全て2023年を迎えて間も無く1ヶ月が経とうとしていますが、皆様はどのよう新年のスタートをされましたでしょうか。With コロナに向けた取り組みが社会的には広がり、自らが管理する時間が増えた中で、質の良い学習時間を確保することは社会人・学生問わず大変重要なことかと思います。 さて、SASでは学習および教育を目的とする方向けに、SAS® OnDemand for Academics (ODA) というアナリティクス・ソフトウェアを無料で提供しています。実は、このSAS ODAですが昨年末にログイン画面のアップグレードが行われ、提供されている各種機能へのアクセス方法がわかりやすくなりました。このブログ記事では、アップグレード後の SAS ODAについて紹介していきます。 ①ホーム画面(中央) 画面中央には大きく3つのセクションがあり、それぞれ下記の内容が提供されています。 Code with SAS® Studio すべての教員・学生・個人学習者を対象として、Webサイトにアクセスするだけで使用可能です 提供されている”タスク”からGUI的にSASコードを生成可能です(もちろん自分でコーディングすることも可能) SAS Studio上にプログラムファイルの新規作成、既存ファイルのアップロードが可能です(最大5GB) アクセス可能なSASソフトウェア一覧: SAS/STAT® Base SAS® SAS/IML® SAS/OR® SAS/QC® SAS/ETS® Learn SAS Programming Programming 1, Statistics 1といった統計学やプログラミングに関するいくつかのe-learningや、動画教材を提供しています SASソフトウェアや統計解析・機械学習を中心とした基礎的な知識、スキルをe-learningを通じて習得可能なオンライン学習プラットフォームSAS Skill Builder for Studentsを学生を対象として提供しています(大学ドメインのアドレスが必要) SASの認定資格に関するガイドをていきょうしています Collaborate with SAS Communities いくつかのSASに関連するコミュニティ情報が掲載されています プログラミングや解析にあたっての疑問点、Tipsを共有し、世界中のSASユーザーからコメントをもらうことが可能です ②ホーム画面(右) 初期状態では次の5つのアイコンが表示されます。 Files
一、背景の紹介 "データアナリストのようなヘビーユーザと利用頻度が低いユーザや参照系のユーザなど、さまざまなユーザがおり、SASプログラムを実行する際に利用するCPUとメモリなどの計算リソースを、ユーザタイプごとに割り当てる設定をしたい"。これは、多くのViya4ユーザ様が持つ課題です。これを実現するためには、次の2つのステップが必要です 1.異なるタイプのユーザごとに利用できる計算リソースを設定します。 2.異なるタイプのユーザに対して、権限を個別に割り当てる必要があります。 前回の記事では、Viyaのシステム管理者に向けて、ユーザが利用できる計算リソースの上限値の変更方法を紹介していきます。本記事では、異なるタイプのユーザに対して、利用できる計算リソースを個別に設定する方法と権限を個別に割り当てる方法を紹介します。 二、準備 ユーザがSAS Studioを使用しているときにSAS Viyaがどのように計算リソースを呼び出すかは、前回の記事で説明したとおりですので、ここで割愛します。 興味のある方は、こちらのリンク先のブログをご参照ください。 以下の紹介内容は、基本的に一回目の記事と同じくデプロイメントファイルとK8sクラスターに変更を加える必要があるため、以下を準備する必要があります。基本的にViyaをデプロイ時に必要なものと同じですので、もし下記に対して不明なところがある場合、ご利用のViya環境のデプロイ担当者にお問い合わせください。 ・k8sクラスターのAPIサーバーに接続できる作業用のサーバー、OSはLinux系がおすすめです。 ・k8sクラスターに接続用コンフィグファイル(管理者権限が必要)。~/.kube/configとして保存します。 ・k8sのコマンドラインツール:kubectl ・Viyaデプロイメントアセットのコンパイル用ツール:kutomize ・Viyaをデプロイ時に使ったkustomization.yamlやsite-configフォルダを含めたファイルアセット また、ユーザの権限を設定するには、ViyaのGUI上での操作が必要のため、以下の準備も必要です。 ・管理者権限を持つViyaアカウント 三、ユーザごとに計算リソースの上限値を設定する方法 この章の項目は多いので、読者は以下のリンクを使って興味のあるセクションに直接ジャンプすることができます。 1.シナリオの紹介 2.ユーザグループの作成 3.SAS Viyaのデプロイメントファイルの修正 4.ヘビーユーザ用ポッドテンプレートを作成 5.ユーザ権限の設定 6.ユーザ権限設定の検証 1.シナリオの紹介 こちらの章の内容は、下記のシナリオに基づいて、ヘビーユーザとライトユーザ二種類のタイプのユーザに対して、それぞれ異なる計算リソースの上限を設定するシナリオを紹介します。 ・ユーザタイプA:ヘビーユーザ 利用する最大CPU:8CPU 利用する最大メモリ:8Gi ・ユーザタイプB:ライトユーザ 利用する最大CPU:2CPU 利用する最大メモリ:2Gi 2.ユーザグループの作成 まず、Viyaにヘビーユーザとライトユーザの2つの独立したユーザグループを作成する必要があります。この部分の作業はSAS ViyaのGUI上で実施します。 ①SAS Viyaへログインし、左側のメニューから「環境の管理」を選択します。 ②環境管理の画面に切り替わったら、左のメニューから「ユーザ」を選択します。 ③そして、画面上部の「ビュー」をクリックし、「カスタムグループ」を選択し、「新規作成」ボタンをクリックします。 ④ヘビーユーザ用グループを作成しますので、グループ新規作成の画面に、名前とID、説明を下記の図のように入力し、「保存」ボタンをクリックします。 ⑤そして、ライトユーザに対しても、同様の方法でグループを作成します。 ⑥次は、作ったユーザグループにユーザを追加しますので、作ったグループ名を選択し、右側の編集アイコンをクリックします。 ⑦ユーザ追加画面で、追加するユーザを選択し、追加アイコンで追加し、終わったら「OK」ボタンをクリックします。同様な操作でもう一つのヘビーユーザ用グループに対しても実施します。これで、ユーザグループの作成は完了しまた。 3.ライトユーザ用ポッドテンプレートを作成 ユーザグループごとに使用する計算リソースが異なるため、ユーザグループを作成した後に、ユーザグループごとに個別のポッドテンプレートを定義する必要があります。この部分の作業は、kubernetes側で実施します。 ①まず、ライトユーザ向けのポッドテンプレートを作成してみましょう。下記のコマンドで既存のポッドテンプレートをファイルとして、ローカルに保存します。 kubectl
SASが提供する大学講義「アナリティクス入門」のブログ・シリーズ、前回は記述的アナリティクスについてまとめました。今回は4つのアナリティクスのレベルの2つ目、診断的アナリティクスについてまとめます。診断的アナリティクスは、要因分析・効果検証・統計的因果推論などの手法を用い、事象がなぜ起こったかを分析します。 収入が多い家庭の子供は学力が高いか? 数年前のNewsweekの記事に、教育の不平等を取り上げたものがありました。子供の教育にはお金がかかり、収入が多い家庭しか良い学歴を得られないという論調です。東京大学生の親の年収分布と45-54歳男性の年収分布を比較し、前者では年収950万円以上が62.7%もいるのに対し、後者は12.2%であることをデータとして掲載しています。さて、このデータから「東大に入学できたのは親の収入が多いからである」と主張するのは正しいでしょうか? 子供の教育にお金がかかることは事実だと思いますが(日々実感しております)、先程のデータから「親の収入→東大」の因果関係を導くには、対応しなければいけない反論をいくつか思いつくことができます。 まず、取得したデータに偏りはないでしょうか。東京大学の学生は、東京を中心とした関東出身者が多いと思いますが、全国と比較して、東京在住者の収入は高いので、その影響が出た可能性があります。また、「一般の男性」は「大学生の子供がいる年代」のデータのようですが、「実際に大学生がいる」かどうかはわかりません。一般に、子供がいる世帯のほうが子供のいない世帯より収入が多いので、これも影響が出ている可能性があります。このように、集計対象のデータの偏り(バイアス)により、適切な比較がなされていない可能性があります。 また、「収入の多さ」と「東大への入学」に関係があっても、因果関係は無いかもしれません。例えば、家族や地域の「教育熱心に対する考え方」が収入や学歴に同時に影響を与える場合、擬似的な相関が現れる場合があります(偽相関)。このような交絡要因を考慮しないと、真の因果関係を割り出すことは難しいです。(念のため書いておきますが、Newsweekの記事が間違っていると主張しているわけではありません。考慮すべきバイアスや交絡がありそう、という主張です) キャンペーン・メールの効果 企業では、商品の購買促進のために、顧客に直接メールを送り、商品の案内をするということを行うことがあります。このとき、メール配信の効果を知るためには、メールを送った顧客の購買量とメールを送らなかった顧客の購買量の差分をとればよい、と考えることができます。しかし、もしメールの配信を「もともと買ってくれそうな人」を対象としていた場合はどうでしょうか。効果的にメールを送るには、このような対象に限定することは合理的ですので、このような場合は多いでしょう。しかし、買ってくれそうな人にメールを送っていたとすれば、メールを送った顧客は「もともとメールがなくても買っていた」人だったかもしれません。つまり、メールを配信した効果は単純比較の差分量より小さい可能性があります。このときの、「メールを送った人のほうがもともと購入しやすかった」という偏りをセレクション・バイアスと呼びます。 バイアスや交絡を除去する方法 バイアスや交絡を除去する最も強力な方法はランダム化比較実験です。対象を「メールを送るグループ」と「送らないグループ」に振り分けることにより、データ取得の段階からバイアスや交絡を含まない比較対象を作ることができます。薬剤やワクチンの効果の検証は、この方法が採られます。どれぐらいの実験対象を用意し、測定された効果が偶然現れたものではないことを統計学的に検証します。このあたりは、ライフサイエンスの事例の回で詳細に紹介します。 一方で、ランダム化比較実験はコストがかかります。さきほどのメールの例でいえば、買ってくれそうな人に送ったほうが効果的なメールを、あえて効果が低い人にも送る必要があります。薬剤の治験では、協力してくれた被験者に報酬を支払います。また、例えば「子供手当の効果」の検証など、そもそもランダムに振り分けることができない場合もあるでしょう。そういった場合には、実験で計測されたデータではない、観察データを用いて統計学的に効果や因果を検証することになります。この方法は統計的因果推論と呼ばれます。統計的因果推論については、こちらのブログ・シリーズで詳しく解説されています。 観察データから因果や効果を推定するには、「もしかしたらこういう要因があるのではないか」という候補を多く集め、それらの影響を丁寧に検証する必要があります。そういった候補を網羅的に思いつくには、その領域への深い知識が必要です。データサイエンスにおけるドメイン知識の重要性は、前回述べたデータ準備においてそれぞれのデータの意味や特徴を捉えるとともに、このような要因分析・因果推論における交絡要因を抜き出すことにも関連します。 研究における診断的アナリティクス 米国バージニア・コモンウェルス大学のMessyがんセンターで、がんによる死亡の社会要因を研究している事例があります。ここでは、所得や教育水準など、社会的な不利な立場ががんの死亡率に与える影響を研究しています。このためには、年齢や体重、喫煙、飲酒、食生活といったがんのリスク因子の他に、医療施設の場所や居住地域、人種、民族、収入などの社会的要因を総合的に検証する必要があります。このような多くの要因から、本当に影響がある要因を特定するためには、統計的因果推論が必要です。 また、ここでもやはり、データの質は重要です。多くのデータソースから個人をキーとしてデータを統合し、さまざまな要因(変数)を含む総合的なデータを作る必要があります。医療情報はセンシティブなデータになりやすいので、データの統合、研究者への共有、患者へのフィードバックといった利便性の追求と、セキュリティの確保の両面が大切です。
SASが提供する大学講義「アナリティクス入門」のブログ・シリーズ、1回目の前回はイントロダクションとして「アナリティクスとは」についてまとめました。今日は4つのアナリティクスのレベルの1つ目、記述的アナリティクスについてまとめます。 前回も書いたように、記述的アナリティクスは、過去に何が起こったか、いま何が起こっているかを知るためのアナリティクスです。データの集計し、統計量を計算したり、集計結果を表やグラフを用いて可視化したりすることで、データを理解したり情報伝達をすることが目的です。 納得して仕事をするために 私の娘が小学校を卒業するとき、「卒業式は友達みんな袴を着るって言ってるよ!」と言い出しました。つまり、だから自分も袴を着たいと主張しているわけです。「小学校の卒業式なんて一生に一回だしな…」なんてよくわからない理屈でレンタルしましたが、蓋を開けてみると、3割ぐらいの女子しか着ていませんでした。小学生の言う「みんな」は信じてはいけません。 ところで、SAS Japan では、毎年夏休みに「親子でデータサイエンス」というイベントを開催しています。小学生とその保護者が、一緒にデータを活用したポスターを作るイベントです。何年か前、自分のおこづかいが少ないと感じた小学生が、おこづかいアップを目指すためのポスターを制作しました。学校のお友達に毎月のおこづかいの金額をアンケートし、集計した結果をヒストグラムに表し、平均値、中央値、最頻値を算出して、親を説得するための材料にしたのです。「みんな私よりおこづかい多いよ!」という主観的で非定量的な主張より、このようにデータとグラフで示されると、親は納得せざるを得ません。 子供が親を説得するのに限らず、組織として多くの人が関わる仕事では、ある種の同意を形成する必要があります。そこには納得感が必要であり、そのためには客観的なデータを示すことが役に立ちます。同意が形成されていることを、英語で “be on the same page” と表現しますが、同じページの同じ図表を見ていることが重要なのです。おそらく、どこの会社でも同様のものがあると思いますが、SAS Japan では毎月、全社員が参加する(ことになっている)ミーティングのなかで、現在の売上の状況が報告されます。どの部門が目標に対してどれぐらいの位置にいて、来月以降はどの程度の売上を予測しているのか、図表を使って全社員に共有します。そのことにより、全員が同じ目標に向かって活動することができます。 可視化の役割 データサイエンスという言葉には、人工知能や機械学習のイメージが強いかもしれませんが、実際の社会におけるデータ活用では、まだまだこのような可視化の役割が大きいと感じています。多くの人の同意を得るために客観的なデータを提示するだけでなく、日常的なデータをモニタリングし、非日常的な変化を検知してアラートを上げることができます。例えば新型コロナウイルスの陽性者は毎日報告されて、その遷移が可視化されています(例: 東京都のページ)。これにより、「感染者が増えてきたな」と感じることができますし、数値が基準を超えると、まん延防止措置や緊急事態宣言などの対策が取られることになります。 他にも、例えば工場のカーボン・フットプリントの総量が規制されているような場合、各ラインが毎日どれぐらいエネルギーを消費しているかについての情報を管理することが必要になります。このためには、データを集計し、報告する必要があります。毎日することですので、手作業で実施するのは大変です。データ取得から報告書作成までを自動化できれば、仕事の効率を上げることができます。そのためには、どんな分析をするか、だけではなく、いつデータを持ってきて、分析結果をどこにどのタイミングで出力するかを考慮してシステムを設計する必要があります。世の中には、まだまだこのように記述的アナリティクスにより解決できる課題が多く残っていると思われます。 可視化をサービスの透明性の確保のために行っている例もあります。米国のダーラム市の事例では、警察が市民の信頼を得るために、警察官の活動データを可視化して市民が閲覧できるようにしました。逮捕、出勤、苦情、トレーニングなどのデータを集め、指標をダッシュボードに表示します。市民が自分でダッシュボードを操作して「分析」することができれば、より「自分が調べている」感が出て納得しやすくなり気がします。 記述的アナリティクスとデータ準備、データ探索 記述的アナリティクスは記述統計量を計算したり、データをグラフで表したりするだけだから簡単だ、と思われるかもしれませんが、実際はそうではありません。可視化も含めたデータ分析のためには準備が必要で、この工程に80%もの時間が使われることも珍しくありません。データはどこにあるのか、どのようにアクセスするのか、そのデータの項目は何を意味しているのか、入力漏れはないか、ありえない値が入力されていないか、表記は統一されているか、複数のデータソースに整合性はあるか、など、正しいデータ分析のために必要な準備は多岐にわたります。これについては、データの管理と準備の回で詳細を紹介します。 逆に、データの準備のために記述的アナリティクスが活用されることもあります。例えば、記述統計量やヒストグラムにより各変数の分布を調べることで、それが想定している分布と一致しているか、おかしな値が入力されていないかをチェックすることができます。変数間の相関を見たり、散布図を描いたりすることで、異常値を発見しやすくなることもあります。 また、このようなデータ探索は、診断的アナリティクスや予測的アナリティクスのような、さらなるデータ分析のための準備にも使われます。変数の分布をみることで、どのような統計モデルを当てはめるかを検討することができます。機械学習の精度を上げるためには、変数を操作して適切な特徴量をつくることが必要ですが、そのために変数の分布や欠損をチェックし、変数変換や補完を行うかどうかを決定します。 このように記述的アナリティクスは、データの準備から高度なアナリティクスまで、幅広いフェーズに活用される基礎的なスキルです。 記述的アナリティクスの学習 SASソフトウェアで記述的アナリティクスを実践するときは、SAS Visual Analytics を活用するのが便利です。マウス操作でデータの可視化とレポート作成、データ分析を行うことができます。 学生であれば、学習用ポータル Skill Builder for Students に登録して、e-learningで学ぶことができます。「SAS Visual Analytics 1 for SAS Viya: Basics」というコースでは、データ準備と可視化、レポーティングを学ぶことができます。ぜひご活用ください。