SAS Japan

活用事例からデータ分析のテクニックまで、SAS Japanが解き明かすアナリティクスの全て
Analytics
SAS Viya環境のシングルサインオン設定方法(SAML編) 第2部 - 認証と認可の実装

背景 シングルサインオンのログイン方式(以下はSSO)は、多くのクラウドサービスの中で主流のログイン方法として、多くの利点があります。例えば、パスワードの使用が減少することで、セキュリティリスクを低下させることや一度のログインで複数のサービスやアプリケーションにアクセスできることによる、ユーザビリティの向上等です。 前回の記事(SAS Viya環境のシングルサインオン設定方法(SAML編) 第1部 - 基礎と準備)では、Azure ADとの連携でSSOを実現するための基礎概念と準備作業を紹介しました。本記事の第二部では、SAS Viyaのユーザーが運用や作業を行う際の参考となるよう、Azure ADとの連携でSSOを実現するための設定方法を下記のドキュメントの内容を基に整理することを目的としています。実際の設定を行う際は、常に最新バージョンのドキュメントを参照することをお勧めします。これにより、最新の情報に基づいた適切な手順で作業を進めることができます。 SAS Viyaドキュメント:SCIMの設定方法 SAS Viyaドキュメント:認証の設定方法 以下は本記事内容の一覧です。読者は以下のリンクで興味のあるセクションに直接ジャンプすることができます。 1.Microsoft Entra IDの作成 2.SCIM認可管理の設定 3.SAML認証の設定 1. Microsoft Entra IDの作成 1-1. 構築済みのSAS Viya環境とAzureのActive Directoryを連携するには、Azure側でAD Enterprise Appとアプリの管理者権限が必要です。 Azureポータル上で、「Microsoft Entra ID」と検索し、サービスを選択します。そして、左側メニューから「エンタープライズ アプリケーション」をクリックすると、既に登録したアプリの一覧画面が表示されます。新しいアプリを作成するために、画面上部の「新しいアプリケーション」ボタンをクリックします。その後に表示された画面の左上の「+独自のアプリケーションの作成」をクリックします。 1-2. アプリケーションの作成画面で、アプリの名前を設定し、「ギャラリーに見つからないその他のアプリケーションを統合します (非ギャラリー)」のオプションを選択し、「作成」ボタンをクリックします。 1-3. アプリの画面内で、左側の「Owners」をクリックし、アプリのオーナーが申請したユーザと一致しているかを確認します。これで、Microsoft Entra IDの作成は完了しました。 2. SCIM認可管理の設定 2-1. SAS Viyaのデフォルト認証方式はLDAPです。SSOログイン方式を利用するには、認証方式をSCIMに変更する必要があるため、まずはLDAPを無効にします。 ①sasbootユーザでSAS Viyaの環境管理画面にログインし、「Configuration」画面で「identities service」を検索し、右側の画面内の「spring」の編集ボタンをクリックします。 ②「profiles.active」からidentities-ldapを削除し、「Save」ボタンをクリックします。 ③右上の「New

Analytics
SAS Viya環境のシングルサインオン設定方法(SAML編) 第1部 - 基礎と準備

背景 シングルサインオンのログイン方式(以下はSSO)は、多くのクラウドサービスの中で主流のログイン方法として、多くの利点があります。例えば、パスワードの使用が減少することで、セキュリティリスクを低下させることや一度のログインで複数のサービスやアプリケーションにアクセスできることによる、ユーザビリティの向上等です。 SAS Viyaはクラウドネイティブアーキテクチャを採用したデータプラットフォームであり、様々な認証プロバイダーとSAMLやOIDCなどの接続方式を通じてSSOを実現し、ユーザーに高いセキュリティと利便性を提供することができます。 本記事の第1部では、SAS ViyaのユーザーがSAS Viya環境とAzure ADを連携させるためのSSOログイン方式を設定する際の基礎知識と初期準備に焦点を当てています。 以下は本記事内容の一覧です。読者は以下のリンクで興味のあるセクションに直接ジャンプすることができます。 1. SAS Viyaでの認可と認証 2. 作業の準備 3. 証明書のインストール 1. SAS Viyaでの認可と認証 SAS ViyaでのSSOログインは主にSCIM認可とSAML認証により実現されますが、この二つの概念についてまず簡単に紹介します。 1-1 SCIM認可とは SCIM(System for Cross-domain Identity Management)は、異なるシステム間でユーザー情報の管理と同期を効率化する標準化されたプロトコルです。SCIMを利用すると、ユーザーアカウントの作成や更新、削除を自動化できます。SAS ViyaとAzure ADの連携では、SCIMを使ってAzure ADのユーザー情報をSAS Viyaに同期し、管理作業を効率化します。 SAS ViyaでSCIM認可を利用するには以下のいくつかの注意点があります。 ・外部DNS名の要件: SAS Viyaでは公開インターネットで解決できる外部DNS名が必要です。SCIMクライアント(Azure AD)は、このDNS名を通じてSAS Viyaにアクセスします。 ・HTTPSを利用したセキュアな接続: SCIMクライアントは、HTTPSを通じてSAS ViyaのIdentitiesマイクロサービスに安全に接続する必要があります。 ・信頼できる証明書: SCIMサーバーの証明書は、Azure ADがサポートする商用証明機関から購入されるべきです。サポートされる証明機関にはCNNIC、Comodo、CyberTrust、DigiCertなどが含まれます。 ・ファイアウォール設定: SAS Viya環境へのアクセスを許可するため、適切なファイアウォールルールの設定が必要です。 1-2 SAML認証とは

Analytics
SAS Hackathon 2023 / チームSunny Compass参加報告

本記事では、Sunny Compass - analysis and suggestion of life satisfactionについて、チームメンバーに直接お話を聞き、背後にある思いやチャレンジなどについて解き明かします。 ユニークなチーム結成 チームSunny Compassは経済産業省主催のDX人材育成プログラム「マナビDX Quest 2022」(以下、マナビDX Quest)で出会ったメンバーで構成されるシビックテック・チームだ。 勤務先や居住地もまったく異なる中、オンライン上で交流し、それぞれの強みや専門性を活かしてデータとテクノロジーを使った課題解決に取り組んでいる。   SAS Hackathon 2023 参加の背景 SAS Hackathonが開催されるという話を聞き、どのようなテーマで取り組むかメンバー全員で話し合った。彼らにとって今回が初めての「ハッカソン」参加となったが、「人生の明るい方向を示す羅針盤になる」という想いをチーム名に込めたチームSunny Compassにとって、人々のウェルビーイングの向上を助ける取り組みをすることはメンバー全員が一致するところだった。データは自前で用意する必要があったため、内閣府の生活満足度調査データを使うことにした。 生活満足度調査の分析結果を可視化するモバイルアプリの開発をゴールに設定しました。ユーザーがアプリ上で性別、年齢、そして生活満足度を入力すると、自分が生活満足度の観点でどのくらいの位置にあるのかが分かり、どのような項目・活動に気を配ると更に生活満足度を向上させ得るのか、という改善に向けたヒントを得られる、というものです。   生活満足度調査データを使用するためには、内閣府に書面申請をする必要があった。書類審査に1週間程度要したが、市民に有益なアプリ開発のために利用するという点が評価され、無事データの提供を受けることができた。   ハッカソンに取り組む上で直面した様々な課題   初めての経験 最大の課題は、メンバー全員がハッカソンと呼ばれるイベントに参加するのは初めてであり、ハッカソンではどのようなことをすれば良いのか全く想像がついていなかったという点だった。また、メンバー全員がSAS製品を使ったことがなかったこと、モバイルアプリの開発も初めてだったこと、などがその他の課題として挙げられた。 完全リモートでのコミュニケーション メンバー全員が対面での面識が全くないところからのスタートだった。そのためグループチャットツールで頻繁に集まり、会話ベースで進捗やタスクを確認し合った。プロジェクトマネジメントの観点でタスクの洗い出しをして割り振るなどということよりも、口頭・テキスト問わずコミュニケーションを密に行って、動ける人が動く、全員が各自今抱えている問題について理解し助け合う、励ます、ということを重視した。 マナビDX Questの経験から、メンバー同士助け合うことが何よりも重要ということを全員が理解していたのと、メンバーごとに関連技術の知見・経験が少しずつあって、それを随所随所でうまく活かしたり、メンターの人が付いてくれて質問などに対応してくれたので何とかなりました。 具体的な取り組み内容 オープンデータを活用 内閣府による生活満足度調査のデータには、個人からの回答に基づき、様々な変数とともに、生活満足度が数値で表現されている。満足度が高いほど値が大きくなる。全体的に欠損値が多数含まれていたため前処理が必要だった。 これとは別にe-Statから取得した「都道府県・市区町村のすがた(社会・人口統計体系)」というデータも使用した。こちらには都道府県ごとの人口、世帯数、ヘルスケア関連情報、などが入っている。   モバイルアプリ メインのモバイルアプリの開発では、「どのような項目・活動が生活満足度の向上に役立つのか」という問いに答えられるよう、生活満足度を目的変数とした機械学習モデルを作成した。この機械学習モデルには変数ごとに変数重要度を出力できるタイプのものを採用し、最終的に変数重要度が高い順に上位5つまでの変数(重要変数)を取り出した。これらの重要変数をREST API経由でモバイルアプリから読みに行くという仕組みを作った。 SAS ViyaはREST APIに標準対応しているのでこういった仕組みづくりも無理なく進められました。 モバイルアプリ自体はオープンソースライブラリを利用して開発した。アプリの想定利用ユーザーは個人ということにした。ユーザーがアプリ上で性別、年齢、そして生活満足度を入力すると、類似の属性を持つ人の中で自分が生活満足度の観点でどのくらいの位置にあるのか、ということが可視化され、加えてどのような項目・活動に気を配ると更に生活満足度を向上させ得るのか、という改善に向けたヒントを取得できるようにした。 可視化ダッシュボード 次に可視化ダッシュボードの作成では、想定利用ユーザーを国や自治体の政策立案担当者とし、個人単位ではなくマクロ的な視点でデータを深堀りするための分析ツールというコンセプトに基づいて開発を進めた。モバイルアプリと同じ生活満足度調査データを使っているが、こちらは都道府県ごとに集計し直し、更に都道府県別の統計情報を加味するため、e-Statのデータと結合させたうえで利用した。

Analytics
0
本当の原因とはなにか:操作変数法(Instrumental variable methods)②

はじめに 因果推論コラム・シリーズでは潜在アウトカムモデルに基づく因果推論の解説を行なっています。今回のテーマは操作変数法(instrmental variable methods)です。 ある介入AがアウトカムYに及ぼす平均因果効果を推定する手法の1つに操作変数法があります。この手法は、操作変数と呼ばれる変数を利用することで交絡因子を調整することなく平均因果効果を推定する手法です。分野や状況によって交絡因子の特定や測定は困難であることは多く、それらの調整を行う必要がないという点で操作変数法は魅力的な手法です。ただ一方で、共変量調整に基づく因果効果の推定手法では必要とされない仮定が要求されますので、その点ご注意ください。ある変数が操作変数であるための条件は以下の3つです。各条件の詳細や実際にどのような変数が操作変数として提案されているか、操作変数と介入変数の相関が弱い場合に発生する問題については前回のコラムをご参照ください。 ZはAと関連する ZはYに対してAを介した以外の効果を持たない ZとYは共通原因を持たない 一般的な誤解として、操作変数法では操作変数が存在さえしていれば平均因果効果の推定が可能であるという認識があります。厳密には、操作変数が存在している場合に操作変数法によって推定可能なのはboundsと呼ばれる平均因果効果が含まれる幅であり、平均因果効果を推定するためには後述する仮定のいずれかが成立している必要があります。また、操作変数に関する3条件に加えて第4の条件としてどちらの仮定を置くかによっても、どのような集団における平均因果効果が推定可能であるかが異なります。本コラムではboundsと呼ばれる因果効果の部分識別について紹介した後、平均因果効果の識別に必要となるhomogeneity、およびmonotonicityについて紹介をします。なお、boundsは信頼区間とは異なる概念であることにご注意ください。   Bounds:因果効果の部分識別 このセクションでは本コラムシリーズの参考書籍である『Causal Inference: What If』の具体例を一部改変し、boundsについて簡単に紹介していきます。 「集団全員にある介入を行なった場合、行わなかった場合と比較して加法的なスケールで平均的にどの程度効果があるか」を示す平均因果効果E[Ya=1]-E[Ya=0]は、二値アウトカムに関してはPr[Ya=1=1]-Pr[Ya=0=1]と表すことが可能です。ここで、このPr[Ya=1=1]-Pr[Ya=0=1]のとりうる値の下限と上限を考えてみると、集団の潜在アウトカムに関して無情報である場合(データが何も存在しない場合)には、当然のことですが、下限は-1、上限は1です。 Pr[Ya=1=1]-Pr[Ya=0=1]=-1(下限) Pr[Ya=1=1]=0:介入を受ける場合の潜在アウトカムはすべての被験者に関して0 Pr[Ya=0=1]=1:介入を受けない場合の潜在アウトカムはすべての被験者に関して1 Pr[Ya=1=1]-Pr[Ya=0=1]=1(上限) Pr[Ya=1=1]=1:介入を受ける場合の潜在アウトカムはすべての被験者に関して1 Pr[Ya=0=1]=0:介入を受けない場合の潜在アウトカムはすべての被験者に関して1 すなわち、二値アウトカムに対する無条件での平均因果効果が含まれる幅(bounds)は[−1,1]です。例えば、集団が20名で構成されているとすると、下限と上限になる潜在アウトカムの状況は下図の通りです。 ここで集団(の一部)に関して実際にデータが得られた時、一致性の下でboundsはより狭く考えることが出来ます。これは、データとして一部の被験者らの潜在アウトカムYa=1, Ya=0の情報が得られるため、未知の部分に対して最も極端な場合の値を代入することによって下図のように下限と上限を計算することが出来ます。 なお、アウトカムが二値変数ではなく連続変数である場合にboundsを計算するためには、アウトカムが取り得る最小値と最大値を指定し、二値変数の場合と同様に代入する必要があります。また余談ですが、boundは前回のコラムで紹介した集団レベルでの除外制約 (condition (ii)) とmarginal exchangeability (condition (iii)) が成立する操作変数Zが存在する場合にはboundsをより狭く考えることが可能です。この場合のboundsはnatural boundsと呼ばれ、その幅はPr[A=1|Z=0]+Pr[A=0|Z=1] となり、データのみから識別されるものよりも狭くなります(Robins 1989, Manski 1990)。加えて、marginal exchangeabilityではなくjoint exchangeabilityが成立する場合には、さらに狭い幅となるsharp boundsを識別することが可能です。さらに追加の仮定を置くことでより狭いboundsが計算することができることも示されています(Richardson, Evans and Robins 2011)。しかし、上記のようなboundsは、一般には因果効果として用いる指標のnull value(e.g., E[Ya=1-Ya=0] であれば0)を含むかなり広い幅となり、有用でないことの方が一般的です。   第4の仮定:homogeneity(同質性)

1 5 6 7 8 9 59