Uncategorized

Analytics | Students & Educators
0
SASによる因果推論:PSMATCHプロシジャによる傾向スコアマッチング

はじめに 因果効果の推定手法の1つである傾向スコアマッチング、およびSASでの実装方法について紹介します。傾向スコアマッチングのSASでの実装にあたっては、本記事ではSAS/STAT 14.2(SAS 9.4)で追加されましたPSMATCHプロシジャを使用します。因果推論の基本的な枠組みや傾向スコア・傾向スコアマッチングの統計的理論については、詳しく解説を行いませんので、そちらに関心がある方は書籍等を参考にしていただければ幸いです。 理想的なランダム化比較試験においては、ランダム化により治療群と対照群間で測定・未測定の交絡因子(confounders)の分布が期待的に等しくなるため、単純な群間比較によって治療(介入、曝露)の興味のあるアウトカムに対する効果を評価することが可能です。しかし、ランダム化が行われなかった実験研究や観察研究のデータから因果関係を見出そうとする場合には、一般に交絡(confounding)と呼ばれるという問題が生じます。これは簡単に述べると、治療群と対照群で集団の特性が異なることで2つの集団が比較可能ではない状況、治療群と対照群でのアウトカムの違いが治療だけではなく集団の特性の違いにも依存する状況を意味しています。つまり、ランダム化が行われなかった実験研究や観察研究のデータから因果効果を推定する際には、交絡を十分に制御した上で群間比較を行う必要があり、世間一般で因果効果の推定手法と呼ばれるものは、交絡を調整方法する方法だと認識していただいてよいかと思います。因果効果の推定手法は回帰や層別化、標準化など様々なものがありますが、本記事ではマッチング法に注目します。マッチング法は、治療群と対照群から類似した特徴を持つ被験者をペアとし(マッチングさせ)、マッチした対象集団において治療を受けた群と受けなかった群を比較するという方法です。  ただ、一言にマッチング法と言っても複数の交絡因子(共変量)の情報をそのまま用いる「共変量マッチング」と、共変量の情報を傾向スコアという一次元の情報に落とし込んだ上でマッチングを行う「傾向スコアマッチング」という2つの方法に大きく分かれます。初学者にとっては前者の方がより直感的な方法かと思いますが、共変量が高次元である場合や変数のカテゴリ数が多い場合にはその実施が困難になります。そのような場合にしばしば用いられるのが後者の傾向スコアマッチングです。マッチングには、治療群と対照群の構成比率やマッチング方法など様々なオプションがありますが、傾向スコアの分布が同じ(治療群と対照群が交換可能)であるmatched populationを作成するというのが共通の考え方です。また、傾向スコアマッチングの実施手順は連続である単一の共変量を用いた共変量マッチングと同様であり、大きくは以下のような手順となります。 【傾向スコアマッチング法のステップ】 共変量の特定、測定 傾向スコアのモデル指定、傾向スコアの推定 マッチングアルゴリズムの決定、マッチングの実施 マッチングした対象者で構成された集団(matched population)における治療群と対照群での交絡因子の分布評価 4.で評価した共変量が不均衡である場合には2.に戻る 群間比較の実施 推定結果の解釈   記法と仮定 記法 以下の記法の下で傾向スコアマッチングに関する議論を行います。アルファベットの大文字は確率変数を、小文字はその実数値を意味するものとします。なお、以降でボ-ルド体としている場合は単一の変数ではなくベクトルであることを意味しているものとします。 A:二値の治療変数 Y:観察されるアウトカム Ya:潜在アウトカム X:共変量(一般にはベクトル) 仮定 本記事では以下の識別可能条件を仮定します。理想的なランダム化比較試験においては研究デザインによってその成立が認められますが、観察研究ではあくまで”仮定”となります。つまり、その成立を認めることが妥当であるかどうかの議論が別途必要となることにご注意ください。また、各条件の詳細や意図する内容については本記事では取り扱いませんので、他の記事や書籍等をご参照ください。 【識別可能条件 (Identifiability assumptions) 】 一致性 (consistency) If Ai = a, then YiA = Yia = Yi  特にAが二値であるとき、   Yi = AYia=1 + (1-A) Yia=0   条件付き交換可能性 (conditional

Analytics | Programming Tips
Jongman Jeong 0
파라미터(Parameter)란 무엇인가? – 시리즈 ①

SAS Visual Anaytics(이하, VA)를 사용할 때, 리포트의 형태를 고정하고 변수만 변경하면서 그래프 및 값들이 바뀌는 결과를 확인할 수 있으면 더 효율적이지 않을까 생각해 본 적이 있으신가요? VA에서 파라미터를 활용하면 가능합니다. 파라미터의 활용법을 다루기 전에 전반적인 이해를 돕고자 파라미터가 무엇인지, 어떻게 사용하는 것인지 등에 대한 내용을 먼저 살펴보고자 합니다. 이번 블로그

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

本記事では、ZEAL - Analysis and Projections of the Japanese Economyについて、チームメンバーに直接お話を聞き、背後にある思いやチャレンジなどについて解き明かします。 SAS Hackathon 2023 参加の背景 SIerであるZEALには、データアナリスト・データサイエンティストといったロールで働く社員は現状まだ多くはない。しかし今後はそういった人材を増やし、データ活用の世界に進出していくという目標を掲げている。 SAS Hackathon開催の知らせを受け取ったとき進むべき道が定まった。部内でプレゼンを行い、SASの取り扱い経験を問わず、興味を持った社員でチームZEALを結成した。 それがハッカソン開催の約1年前でした。そして半年前頃からテーマを何にするかチーム内で議論してきました。 SDGsをキーワードに、カーボンフットプリントを可視化することでCO2排出量を減らす事に貢献する、であったり、今後人類が必ず直面する喫緊の課題で身近な問題でもあり必ず解決する必要がある問題でもある食料問題に取り組む、など様々な案が出た。 最終的に定まったテーマは、「不確実性を消し去ることで、新型コロナのようなアウトブレイクに対して飲食業界が効果的な対策を立案できるよう支援すること」になった。当初は有価証券報告書による企業業績の変動をコロナ前とコロナ後で比べていく方針だったが、データ数が少なかったため断念せざるを得なかった。そこで、ある程度データ数が確保できる家計の支出データを使うことにした。 やはり当初から食料問題に取り組むという案が出ていたことと、コロナのようなパンデミックの影響が強く出た分野であったため、飲食業界を選択しました。家計の外食支出の変動から、間接的に飲食業界の隆盛を予測する、というものです。 コロナによる影響の強弱について念のため全産業分野を網羅的に確認した。ここでSAS Viyaの機能が役に立った。コロナの影響が特に大きかった産業分野は、飲食、交通(航空)、教育・娯楽だった。中でも交通(航空)は飲食業以上に影響が大きかった。しかし交通(航空)はテーマには選ばなかった。食糧問題に取り組むという基本方針があったからだ。 SAS Viyaは統計的知識がそこまで無くても十分に扱え、確実に結果を出すことができました。これはZEALが得意とする、「可視化によるインサイトの引き出し」というアプローチにもとてもフィットしていました。操作性も他のBIツールと比べて特段難しいというわけではなかったので問題はありませんでした。 ハッカソンに取り組む上で直面したチャレンジ 当初使用を想定していた有価証券報告書データのデータ数が時系列予測をするうえで足りないということが途中で判明したため、そこから別のデータを探し出す作業に急遽取り組む必要があった。3,4日で新しいデータが見つかった。 この部分はテーマ選定の際にも問題になりましたが、テーマはいろいろ考えられたとしても、それに必要なデータソースを集められなければ実際には分析を進めることができません。使えるデータの種類によって、取り組めるテーマが決まる、という側面がありました。 幸いZEALのサービスに、CO-ODEという日本の政府・自治体が出しているオープンデータを集積したデータベースがあり、そこに分野別家計支出データがあったので使うことにした。   具体的な取り組み内容 2つの時系列予測モデル 時系列予測モデルを2つ用意し、2つのモデルの予測値の差分をパンデミックの影響度合いとして可視化した。 つまりは、2019年12月末までをパンデミック前期間、2020年1月以降をパンデミック後期間とし、パンデミック前期間のデータで訓練したモデルをパンデミック前モデル、パンデミック後期間のデータで訓練したモデルをパンデミック後モデルとし、両者同じ将来期間のデータに対して予測をさせたうえで、その予測値の差分を取りました。 パンデミック前モデルとパンデミック後モデルの作成はいずれもSAS Viya Visual Forecastで複数のモデルを作成し、その中から精度が最も良いもの(=チャンピオンモデル)を選ぶという方法を採用した。いずれもチャンピオンモデルは、季節性モデルが選ばれた。 この辺り大変な作業のように聞こえますが、全てSAS Viya Visual Forecastによって自動処理されるのでとても簡単でした。 データの加工・整形で一工夫 必要なデータは全てCO-ODEから得ることができたが、データの加工・整形に多少の工数が必要だった。 CO-ODEの最大の売りは網羅性で、様々なソースからデータを手当たり次第かき集めてきています。使い方は使う人によって千差万別、逆に言うと使い方によってはひと手間かける必要があります。今回特に問題になったのは、時間粒度の違いでした。 データソースによって四半期粒度のもの、日次粒度のもの、と様々だったが、最終的に、月次粒度で統一した。四半期粒度のものは内挿によって月次粒度に変換した。 そこは少し試行錯誤が必要でした。一方データのETLに関しては、CO-ODEからはCSVがそのまま取り出せるので、それをそのままViyaにアップロードするだけで済みました。 成果 パンデミックによる影響を、予測値の差として可視化することに成功した。これは将来また別のパンデミックが起きたときにも参考値として利用できるものだ。 また、直接的な成果というわけではないのですが、ハッカソンを通して普段関わりのない社員同士が初めて関わりを持つようになり、社内のコミュニケーションが活性化しました。これは思わぬ収穫でした。 展望

Advanced Analytics
Zeynep Salman 0
How to make informed choices: Build vs. buy decisioning systems

In today’s world of financial services, a well-crafted decisioning system is paramount, whether you're dealing with credit risk, fraud prevention, financial compliance, or any other critical aspect.  Occasionally, financial services organizations decide whether to buy a risk decisioning system or build one using in-house resources.   This quandary demands careful consideration

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

本記事では、Critical Thinking Crew - Health Monitoring to Prevent Solitary Deathについて、チームメンバーに直接お話を聞き、背後にある思いやチャレンジなどについて解き明かします。 SAS Hackathon 2023 参加の背景 チームCTCのリーダー福永氏にとって今回のSAS Hackathon参加には特別な思いがあった。福永氏の個人的な活動として取り組んでいるプロボノを通して、孤独死にまつわる社会的課題があることを認識していたからだ。 日本では孤独死する人が年間25000人を超えていて、遺体が発見されるまでに平均2週間以上かかり、発見時に腐敗が進んでいることも多いそうです。これは高齢者の課題と捉えられがちですが、現役世代の孤独死も4割近くあるという報告があります。この社会的課題に取り組むという構想を2022年末頃から抱き始め、ソリューションの中身を漠然と考えていました。 それとは別にスマホカメラで脈拍を計測する手法があることを知った時、彼の頭の中で課題とソリューションが繋がり、構想が具体化し始めた。そこにタイミングよくSAS Hackathon開催の知らせが届いたためエントリーすることにした。 所属する部署においても企業のESG分析などに携わることもあり、ソーシャル・グッドのための活動としてハッカソン参加は会社も後押ししてくれました。 エントリー部門はヘルスケア&ライフサイエンス部門になった。福永氏にとって今回が3回目のSAS Hackathonの参加となった。1回目では数値データを、2回目ではテキストデータを扱ってきたが、3回目の今回では画像データを扱うことになった。 ハッカソンに取り組む上で直面した様々なチャレンジ 繁忙期と重なってしまった メンバー全員が非常に繁忙なタイミングと重なってしまったため、登録したあとにしばらく活動ができず、着手できたのは締め切りまで1か月を切ってからになってしまった。 結果的に最後の2週間でなんとか作り切ったという感じです。メンターさんが何度か相談会を設けてくれたこともあり、色々と困りごとを相談できましたし、良いペースメーカーになりました。 画像認識技術の習得と専用環境の準備 画像認識専門のエンジニアがメンバーにいなかったものの、画像認識に関するSASのブログとオープンソースの専用のライブラリを駆使して何とか乗り切った。まずは画像認識に関する知識を習得することろから始めた。 物体検知モデルのチュートリアルで骨格推定のやり方を学びました。遠回りのようで実はそれが一番手っ取り速かったと思います。 顔色から脈拍を推計する手法に関しては公開コードを探して利用することにした。姿勢推定のためのモデル訓練が短時間で収束するような工夫もした。また通常は必要になる環境構築のための工数を、Google Colaboratory(WEBブラウザ上で機械学習を実行できるサービス)を利用することで大幅に削減した。 また当初物体検知モデルをファインチューニングするうえで、与えられた環境とは別の環境を構築する必要がありました。そこはGoogle Colaboratoryを導入することで難なくクリア出来たのですが、GPUで事後訓練した後の物体検知モデルをCPU版に変更する部分でエラーが多発して大変でした。 その他、今回使用することにした物体検知モデルをSASとインテグレーションする部分の経験が無かったため新たな経験を得ることとなった。 具体的な取り組み内容 スマホで撮影した動画を利用 スマホで自身を撮影することで姿勢やバイタルを推定し、危険な状況になったら友人・家族に通知する自衛ツールを開発した。 一般的な見守りサービスですと、器材の設置や、知らない人に監視されている感じに抵抗感がある人が多く、特に比較的若い層にこの傾向があるとプロボノの活動を通して聞いたことがあります。そこでスマホを利用することにしたんです。 次に姿勢推定のための物体検知モデルをSAS Viya上に搭載した。スマホで撮影した動画から姿勢の状態を推定できるものだ。加えて、顔色の微妙な変化を波形から捉え、心拍数を推定した。最後に、姿勢と心拍数から、「倒れている」かつ「心拍数が極端に低い」等の閾値に該当する場合にアラートを発出する仕組みを構築した。 物体検知モデルの訓練とバイタル判定ルールの作成 使ったデータは2種類ある。まず物体検知モデルの事後訓練に必要な画像データについては、CTC社内にあった画像データを利用した。最終的に厳選した1500枚でモデルの事後訓練をした。 事後訓練には画像のアノテーションが必要だった。アノテーション作業の内容は、映っている人物を四角い枠線で囲い、囲われた人物がどのような姿勢でいるのか注釈を付ける、というものだ。姿勢の種類は全部で4種類、立っている、寄りかかっている、座っている、倒れている、の中からアノテーション作業者が手動で選択することになる。 そこは子会社のCTCひなり株式会社の障がい者スタッフさんの助けを借りることができ、大幅な工数削減を実現できました。1500枚のアノテーション作業を1週間で完了してもらえました。 脈拍の低下の推定に必要な心拍データについては、オープンデータを利用した。このデータは寝ている状態から運動して休息するという一連の流れを時系列で保持する波形データだ。 「こういう状況でこういう数値であれば生存を疑うレベルに該当すると言って良い」というルールを作るためにこのデータを用いました。心拍データのクレンジング作業には、Viyaのデータ準備機能を使いました。こちらはGUI上で簡単に実行できました。 成果 孤独死抑止ユースケースとして開発したが、事務作業員や建築現場の作業員のヘルスチェック、大規模災害時のトリアージ支援等、多くの応用例が考えられる。結果として技術部門賞を受賞することができた。 非常に名誉なことで会社のみんなや家族・友人もとても喜んでくれました。また、安定したViya環境を好きなだけ触れたことも大きな収穫でした。普段の業務では中々使うことのない機能を使うことができ、勉強になりました。 展望

Analytics
SAS Hackathon 2023 / ハッカソン紹介

Hack SAS! SAS HackathonはSAS社が毎年春に開催する完全オンライン開催のハッカソン・イベントです。参加チームは開催期間の1か月間を使って、自分たちで設定した社会課題やビジネス課題を、SAS Viya(および任意のツール)を使って解決に導きます。エントリーできる部門が複数用意されており、参加チームによって選べるようになっています。2023年は部門が計10個あり、部門ごとの賞に加え、技術賞、特別賞、地域賞の3つの部門横断賞が用意されました。各賞ごとに個別の審査基準が設けられているため、技術レベルを高めるのも良し、ビジネスインパクトを狙いに行くのも良し、等々様々な戦い方があり得ます。なお審査は部門ごとにSAS社員から選ばれたインダストリ・エキスパートが実施するため、常に適正な評価が期待できます。 今年は世界各国から130チーム以上がエントリーしました。受賞チームは9月開催のSAS Exploreに招待されました。その他ハッカソンについての詳しい内容については、EnterpriseZine編集部による日本語のSAS Hackathonについての紹介記事もありますのでご興味があればご覧ください。 ところでSAS Hackathonは他のハッカソン・イベントと比べてどんなところがユニークなのでしょうか?よくあるハッカソン・イベントでは、特定のツールの使い方を試行錯誤を通して学ぶ、であったり、新しいサービスやアプリケーションの開発、などが目的になっていますが、SAS Hackathonでは以下3点を主な目的にしています: ビジネス課題の解決 Data for Goodの観点から、データ分析の結果をより良い社会の実現のために使ってもらう(データ活用による人道支援や社会課題の解決) データリテラシーを備えた人材の育成・輩出・ネットワーキング そしてこれらの目的の先にあるもの、つまりはアプリケーションの開発およびサービス化といった段階における商業化の支援もSAS Hackathonで行います。もちろん、知的財産は参加者が保有します。 様々なオモテナシ 以上の3つの目的を達成するために重要な要素の一つが、組織の垣根を越えたコラボレーションの実現です。その実現を手助けするため、全世界のSAS社員が様々な工夫をして参加者をもてなします。オモテナシ駆動型ハッカソン・イベント、それがSAS Hackathon、と言っても過言ではありません。ではどのようにしてSAS社員はSAS Hackathonの参加者をもてなすのでしょうか? メンターによるオモテナシ イベントにエントリーしたチームにはそれぞれメンターが付きます。メンターはSAS製品やデータ分析に詳しいSAS社員から選ばれ、チームが成功裏にハッカソンを終えられるようサポートします。分からないことがあったら何でもメンターに質問できます。 学習コンテンツによるオモテナシ 普段は有償で提供されているSASのラーニング・コースやオンデマンド学習コンテンツが、ハッカソン期間中は参加者に無償で提供されるため、技術的なキャッチアップやデータリテラシーの習得がやり易くなっています。 分析環境によるオモテナシ 分析環境も無償で提供されます。既に構築済みですぐに使えるSAS Viya環境を使って直ちに分析を開始できます。そこにはJupyter Hubも入っていてPythonやRが使えます。環境構築の手間が要りません。その他、アプリケーション開発を簡便に行うためのツールなども提供されます。詳細はこちらのページをご覧ください。それ以外のツールを使いたい場合は、参加チーム自身で準備することになりますが、基本的にどんなツールを使ってもOKです。 フォーラムによるオモテナシ また、参加チームはSAS Hacker's Hubで他の参加チームと交流したりディスカッションすることができます。参加者同士のネットワーキングの場にもなっています。 自由闊達なムード醸成によるオモテナシ SASと聞くと少々お堅いイメージを持たれる方も多いかも知れません。しかし近頃のSAS社員はオレンジ色のSAS Hackathonフーディーを着て、課題解決のためのコラボレーションの重要性を表現したラップを歌います。   It's more than a competition It's your story told, the goals that

Analytics | Programming Tips
Junhyuk Jeong 0
컴퓨터가 사물을 보는 방법, CNN 실습 – 3편

지난 포스팅(컴퓨터가 사물을 보는 방법 1편, 2편)에서는 CNN(Convolution Neural Network)에서 사용될 수 있는 다양한 기법들과 함께 CNN의 학습이 어떤 방식으로 이루어지는지 알아보았습니다. CNN은 데이터(특히 이미지 데이터)에 합성곱, 풀링, 패딩 등의 작업을 거쳐 특징을 추출한 후 회귀 또는 분류를 수행하는 딥러닝 모델입니다. 오늘 포스팅에서는 지금까지 배운 기법들을 SAS Viya에서 구현하는 실습을

Analytics | Programming Tips
0
SAS Viya 4의 클라우드 분석 서비스(CAS) 라이프 사이클

SAS는 2020년 1월, LTS 2020.1 버전의 SAS Viya 4를 출시했습니다. SAS Viya 4는 기존 SAS의 솔루션인 SAS 9, SAS Viya 3.5 버전과는 달리 완전한 클라우드 네이티브 버전의 솔루션입니다. 오늘 포스팅에서는 클라우드 네이티브 SAS Viya 4의 서비스인 CAS(Cloud Analytics Service, 이하 CAS)의 라이프 사이클에 대해서 알아보겠습니다. 1. CAS란 무엇일까요? CAS는 고성능

Learn SAS | Programming Tips
Rick Wicklin 0
Functions for continuous probability distributions in SAS

The documentation for Python's SciPy package provides a table that concisely summarizes functions that are associated with continuous probability distributions. This article provides a similar table for SAS functions. For more information on the CDF, PDF, quantile, and random-variate functions, see "Four essential functions for statistical programmers." SAS functions for

1 5 6 7 8 9 255