本開示の原理は、いくつかの例示的な実施形態を参照して説明される。これらの実施形態は、例示の目的で記載されることにすぎず、本開示の範囲に関する制限をするものではなく、当業者が本開示を理解及び実施することを助けることを理解されたい。本明細書で説明される開示内容は、以下で説明されるもの以外の様々な形態で実施されることができる。
以下の説明及び特許請求の範囲において、別途定義されない限り、本明細書で使用されるすべての技術用語及び科学用語は、本開示が属する技術分野の当業者によって一般的に理解されるものと同じ意味を有する。
本明細書で使用されるとき、単数形「1つ(a)」、「1つ(an)」、及び「該(the)」は、文脈からそうでないことが明確に示されていない限り、複数形も含むことを意図している。「含む」という用語及びその変形は、「含むがこれに限定されない」ことを意味するオープンな用語として読まれる。「に基づいて」という用語は、「少なくとも部分的に基づいて」と読まれる。「一実施形態」及び「実施形態」という用語は、「少なくとも1つの実施形態」と読まれる。「他の実施形態」という用語は、「少なくとも1つの別の実施形態」と読まれる。「第1」、「第2」などの用語は、異なるオブジェクト又は同じオブジェクトを指すことができる。明示的及び暗黙的なその他の定義は、以下に含まれる。
いくつかの例では、値、手順、又は装置は、「最もよい」、「最も低い」、「最も高い」、「最小」、「最大」などとして見なされる。このような説明は、多くの使用される機能的選択肢から選択を行うことができることを指し、このような選択は他の選択よりもっと良く、小さく、高く、又はより好ましい必要はないことを意図している。
上述したように、市場調査、製造、保健医療、小売など多くの分野では、物事がなぜ、どのように発生したかを発見し、かつ所望の物事の発生を可能にする戦略を見出すことは、急務となっている。例えば、市場調査の分野では、どの因子が通信事業者の顧客満足度に影響を与えるか、及びどのようにして顧客満足度を向上するかを知りたい。製品製造の分野では、どの因子が製品の歩留まりに影響を与えるか、及びどのようにして製品の歩留まりを向上するかを知りたい。小売の分野では、どの因子が製品の販売に影響を与えるか、及びどのようにして製品の販売を向上するかを知りたい。ソフトウェア開発の分野では、どの因子がソフトウェアの故障率に影響を与えるか、及びどのようにしてソフトウェアの故障率を下げるかを知りたい。従って、複数の因子間の因果関係を発見し、該因果関係に基づいて複数の因子のうちの目標因子に影響を与える戦略を推奨する因果分析システムを提供することが望まれている。
いくつかの従来のソリューションでは、手動で因果分析を支援し、且つ因果分析を行うために多くの手動でのやりとりが必要となり、その結果、効率が低下し、分野によって上記需要を満たすことができない。
上記課題及び/又は1つ又は複数の他の潜在的な課題を解決するために、本開示の実施形態は、因果分析のためのソリューションを提供する。該ソリューションでは、複数の因子の観測サンプルから複数の因子間の因果関係を自動的に発見することができる。該因果関係を表す因果構造をユーザに提示することができる。ユーザはいくつかの先験的知識を入力するように該因果構造を調整することによって、発見された因果構造を最適化することができる。ユーザは、複数の因子の中から目標因子を指定し、且つ複数の因子から目標因子に対する効果が最も大きい1つ又は複数のキー因子を検索することができる。また、該ソリューションによって、目標因子に影響を与えるためにユーザが入力した戦略の効果を評価することができる。該ソリューションによって、目標因子が、ユーザ希望の値に達することを可能にする最適な戦略を推奨することもできる。
本明細書で使用されるとき、用語「因子」は「変数」とも呼ばれる。用語「観測サンプル」は、直接に観測できる複数の因子の観測値の組を指し、直接に観測できる因子は、「観測可能な変数」又は「観測可能な因子」とも呼ばれる。用語「目標因子」は、人々が影響を与えると予想する因子を指す。例えば、市場調査の分野では、観測可能な因子は、顧客属性に関する因子(例えば、顧客レベル、顧客電話番号など)、顧客の行動に関する因子(例えば、毎月消費する通信量、無料通信量の割合、毎月消費する通信量の合計費用など)、顧客からのフィードバックに関する因子(例えば、苦情の数、顧客満足度)、及び戦略に関する因子(例えば、特定の事件のリマインド数など)を含んでもよい。顧客満足度は、目標因子と考えられることができる。別の例として、ソフトウェア開発の分野では、観測可能な因子は、ソフトウェア開発のための人的資源量、ソフトウェア開発の期間、関数の数、コードの行数、ソフトウェア開発に使用されるプログラミング言語、ソフトウェア故障率などを含んでもよい。例えば、ソフトウェア故障率は、目標因子と考えられることができる。観測サンプルは、観測可能な因子の観測値の組を含んでもよい。
以下、図面を参照しながら本開示のいくつかの例示的な実施形態を説明する。しかし、例示の目的のみで本開示のこれらの図面に関する詳細な記述を提供し、本開示の範囲に関する如何なる制限を示唆しないことは、当業者が容易に理解できる。
図1Aは、本発明の実施形態を実施することができる例示的な環境100を示す。図1Aに示すように、環境100は、ユーザ110と、因果分析サーバ120と、データ収集デバイス130とを備える。因果分析サーバ120は、ユーザインタフェースモジュール121と、因果分析エンジン122と、データベース123とを備える。環境100及び/又は因果分析サーバ120の構造は、本開示の範囲に関する如何なる制限を示唆することなく、例示の目的のみで示されていることは理解されたい。本開示の実施形態は、異なる構造を有する異なる環境及び/又は異なるコンポーネントを有する異なる因果分析サーバに適されてもよい。
いくつかの実施形態において、データ収集デバイス130は、複数の因子の観測サンプルを自動的に収集するように配置されてもよい。各観測サンプルは、複数の因子の観測値の組を含んでもよい。いくつかの実施形態において、データ収集デバイス130は、観測サンプルを収集するための1つ又は複数のセンサを含んでもよい。代替的に、いくつかの実施形態において、データ収集デバイス130は、異なるタイプの因子の観測値をそれぞれ収集するための1つ又は複数の収集ユニットを含んでもよい。
いくつかの実施形態において、データ収集デバイス130は、収集した観測サンプルを、後続の記憶、処理及び/又は分析のために、因果分析サーバ120に伝送してもよい。例えば、データ収集デバイス130により収集された観測サンプルは、ユーザ入力インタフェースモジュール121を介して因果分析サーバ120に伝送されてもよい。その後、観測サンプルは、後続の記憶、処理及び/又は分析のために、ユーザ入力インタフェースモジュール121から因果分析エンジン122に伝送されてもよい。例えば、因果分析エンジン122は、複数の因子間の因果関係を発見し、及び/又は観測サンプルに基づいて因果分析を行ってもよい。代替的に、いくつかの実施形態において、データ収集デバイス130は省略されることができる。例えば、観測サンプルは、ユーザ110によってサーバ120に入力されることができる。
いくつかの実施形態において、ユーザ110は、因果分析システム120と通信することができる。例えば、ユーザ110は、ユーザ入力インタフェースモジュール121を介して因果分析サーバ120にユーザ情報、観測サンプル、1つ又は複数の要求、有用な知識及び/又は因果分析のための1つ又は複数の構成を入力してもよい。ユーザ入力は、ユーザ入力インタフェースモジュール121から因果分析エンジン122に伝送されてもよい。いくつかの実施形態において、ユーザ入力を受信したことに応答して、因果分析エンジン122は、ユーザ入力に関連する因果分析のための1つ又は複数の動作を実行し、ユーザインタフェースモジュール121を介してユーザ110に1つ又は複数の結果又はフィードバックを提示してもよい。因果分析エンジン122は、受信したデータ、生成された構造、専門家知識及び/又は任意の有用な情報を、後続利用のためにデータベース123に格納してもよい。
図1Bは、本発明の実施形態を実施することができる別の例示的な環境105を示す。図1Bに示すように、環境105は、ユーザ110と、データ収集デバイス130(図1Aに示すデータ収集デバイス130と同一又は類似)と、ユーザデバイス140と、因果分析サーバ160とを備える。例えば、ユーザデバイス140は、インターネットなどのネットワーク150を介して因果分析サーバ160と通信することができる。環境105、ユーザデバイス140及び/又は因果分析サーバ120の構造は、本開示の範囲に関する如何なる制限を示唆することなく、例示の目的のみで示されていることを理解されたい。本開示の実施形態は、異なる環境、異なるユーザデバイス及び/又は異なる因果分析サーバに適用されてもよい。
本明細書で使用されるとき、用語「ユーザデバイス」は、無線又は有線の通信機能を有する任意のデバイスを指す。ユーザデバイスの例として、ユーザ機器(UE:User Equipment)、パーソナルコンピュータ、デスクトップ、携帯電話、セルラー電話、スマートフォン、携帯情報端末(PDA:Personal Digital Assistant)、ポータブルコンピュータ、デジタルカメラなどの画像撮像装置、ゲーム装置、音楽ストレージ及び再生機器、又は無線や有線インターネットアクセス及びブラウジングを可能にするインターネット機器などが挙げられるが、それらには限定されない。
図1Bに示すように、例えば、ユーザデバイス140は、ユーザインタフェースモジュール121(図1Aに示すユーザインタフェースモジュール121と同一又は類似)と、ローカルデータベース141とを備える。いくつかの実施形態において、ユーザデバイス140は、ユーザインタフェースモジュール121を介して、データ収集デバイス130から観測サンプルを受信し、及び/又はユーザインタフェースモジュール121を介して、ユーザ110からユーザ入力を受信してもよい。ユーザデバイス140は、受信した観測サンプル、データ、専門家知識及び/又は有用な情報を、後続利用のためにローカルデータベース141に格納してもよい。ユーザデバイス140は、受信した観測サンプル、データ及び/又は情報を、後続の処理及び/又は分析のために、ネットワーク150を介して因果分析サーバ160に伝送してもよい。
図1Bに示すように、例えば、因果分析サーバ160は、因果分析エンジン122(図1Aに示す因果分析エンジン122と同一又は類似)と、データベース161とを備える。いくつかの実施形態において、複数の因子の観測サンプルを受信したことに応答して、因果分析エンジン122は、複数の因子間の因果関係を発見し、及び/又は観測サンプルに基づいて因果分析を行ってもよい。ユーザ入力(ユーザ情報、観測サンプル、1つ又は複数の要求、有用な知識及び/又は因果分析のための1つ又は複数の構成など)を受信したことに応答して、因果分析エンジン122は、ユーザ入力に関連する因果分析のための1つ又は複数の動作を実行し、且つ1つ又は複数の結果又はフィードバックをユーザデバイス140に返送してもよい。因果分析エンジン122は、受信したデータ、生成された構造、専門家知識及び/又は任意の有用な情報を、後続利用のためにデータベース161に格納してもよい。ユーザデバイス140は、ユーザインタフェースモジュール121を介して、1つ又は複数の結果又はフィードバックをユーザ110に提示してもよい。
図2Aは、本開示のいくつかの実施形態に係る因果分析のための一般的なシステム200を示す。図2Aに示すように、ユーザインタフェースモジュール121は、ユーザ110及び/又はデータ収集デバイス130から1つ又は複数の入力201を受信する。ユーザインタフェースモジュール121は、1つ又は複数の入力201を因果分析エンジン122に伝送する。因果分析エンジン122は1つ又は複数の入力201に関連する動作を実行する。因果分析エンジン122は、動作を実行することによって、1つ又は複数の出力202を生成する。代替的又は追加的に、因果分析エンジン122は、1つ又は複数の出力202を、ユーザ110に提示するように、ユーザインタフェースモジュール121に返送してもよい。
図2Bは、本開示のいくつかの実施形態に係るユーザインタフェースモジュール121の例示的なブロック図を示す。図2Bに示すように、ユーザインタフェースモジュール121は、データ入力インタフェース210、因果構造発見インタフェース220、因果構造評価インタフェース230、因果関係図管理インタフェース240及び戦略管理インタフェース250のうちの少なくとも1つを含んでもよい。図2Bに示すインタフェースは、本開示の範囲に関する如何なる制限を示唆することなく、例示の目的のみで図示されていることを理解されたい。ユーザインタフェースモジュール121は、本開示の実施形態を実施するのに適する任意の適切な数のインタフェースを提供してもよい。例えば、いくつかの実施形態において、ユーザインタフェースモジュール121は、ユーザ110が因果分析エンジン122にログイン、ログアウトすることができるログインインタフェースも提供してもよい。
いくつかの実施形態において、データ入力インタフェース210は、ユーザ110又はデータ収集デバイス130が、因果分析エンジン122によってサポートされるフォーマットでデータ(複数の因子の観測サンプルなど)を準備することを可能にしてもよい。データ入力インタフェース210は、さらに、ユーザ110がデータのうち敏感情報を非敏感情報に変更することを可能にしてもよい。
図2Bに示すように、いくつかの実施形態において、データ入力インタフェース210は、ユーザ110又はデータ収集デバイス130がデータ(複数の因子の観測サンプルなど)をアップロードすることを可能にするデータアップロードインタフェース211を提供してもよい。アップロードされたデータは、その後、因果分析エンジン122に伝送されてもよい。
代替的又は追加的に、いくつかの実施形態において、データ入力インタフェース210は、ユーザ110が因果分析エンジン122によってサポートされる1つ又は複数のデータ前処理方法からデータ前処理方法を選択することを可能にする前処理方法選択インタフェース212を提供してもよい。これによって、データ品質の向上に寄与できる。
いくつかの実施形態において、因果構造発見インタフェース220は、ユーザ110が複数の因子の中から目標因子(例えば、顧客満足度、製品の歩留まり、ソフトウェア故障率など)を指定できる目標因子選択インタフェース221を提供してもよい。
代替的又は追加的に、いくつかの実施形態において、因果構造発見インタフェース220は、発見アルゴリズム選択インタフェース222を提供してもよい。発見アルゴリズム選択インタフェース222は、因果分析エンジン122によってサポートされる因果発見アルゴリズム群を、選択のためにユーザ110に提示してもよい。例えば、異なる因果発見アルゴリズムは、例えば離散データ、連続データ、混合データなど異なる種類のデータセットに適用されてもよい。いくつかの実施形態において、発見アルゴリズム選択インタフェース222は、ユーザ110が、因果発見アルゴリズム群から、後続の因果構造の発見に使用される適切な因果発見アルゴリズムを選択することを可能にしてもよい。
代替的又は追加的に、いくつかの実施形態において、因果構造発見インタフェース220は、ハイパーパラメータ調整インタフェース223を提供してもよい。ハイパーパラメータ調整インタフェース223は、ユーザ110が、選択された因果発見アルゴリズムのいくつかのハイパーパラメータを調整することを可能にする。これによって、因果構造の発見の速度及び/又は正確性を向上することができる。
代替的又は追加的に、いくつかの実施形態において、因果構造発見インタフェース220は、ユーザ110が複数の因子間の因果関係に関する専門家知識を入力することを可能にする専門家知識入力インタフェース224を提供してもよい。これによって、因果構造の発見の速度及び/又は正確性を向上することができる。専門家知識の例として、2つの因子間に直接な因果関係があること、2つの因子間に直接な因果関係がないこと、一方の因子は他方の因子の間接な原因であること、1組の因子は他組の因子の原因ではないことなどを含むが、これらに限定されない。入力された専門家知識は、後続利用のためにデータベースに格納されてもよい。
代替的又は追加的に、いくつかの実施形態において、因果構造発見インタフェース220は、因果構造簡略化インタフェース225を提供してもよい。因果構造簡略化インタフェース225は、ユーザ110が、発見された因果構造を最適化し、例えば、発見された因果構造から合理でないいくつかの因果関係を削除するように、独立テストを開始することを可能にする。
いくつかの実施形態において、因果構造評価インタフェース230は、複数の因子の観測サンプルに対する発見された因果構造の適合度を特定するように、様々な評価指標及び/又は評価方法に基づいて、発見された因果構造の評価をユーザ110が開始することを可能にしてもよい。いくつかの実施形態において、因果構造評価インタフェース230は、発見された因果構造を評価することに用いられる評価指標及び/又は評価方法をユーザ110が選択することを可能にする評価指標/評価方法選択インタフェース231を提供してもよい。
いくつかの実施形態において、発見された因果構造は、以下では「因果関係図」とも呼ばれる図として提示されてもよい。例えば、因果関係図は、複数の因子に対応する複数のノードと、複数のノードを結ぶ1つ又は複数の辺を含んでもよい。2つのノードを結ぶ辺は、2つのノードに対応する2つの因子間の因果関係を示してもよく、以下では、「因果辺」とも呼ばれる。
いくつかの実施形態において、因果関係図管理インタフェース240は、ユーザ110が複数の因子から任意の2つの因子を選択し、選択された2つの因子間の因果パスの検索を開始することを可能にする因果パス検索選択インタフェース241を提供してもよい。
代替的又は追加的に、いくつかの実施形態において、因果関係図管理インタフェース240は、因果関係図編集インタフェース242を提供してもよい。因果関係図編集インタフェース242は、因果関係図を最適化するためにいくつかの専門家知識を入力するように、ユーザ110が、提示される因果関係図を編集することを可能にする。いくつかの実施形態において、ユーザ110による因果関係図に対する編集は、2つのノード間の直接な因果関係を示すために因果関係図に辺を追加すること、2つのノード間に直接な因果関係がないことを示すために因果関係図から既存辺を削除すること、2つのノード間の因果関係を再指定するために因果関係図における既存辺を再指定すること、又はいくつかの先験的知識を示すために因果関係図に1つ又は複数のラベルを追加すること、のいずれかを含んでもよい。そして、専門家知識は、発見された因果関係図の最適化に用いられることができる。いくつかの実施形態において、専門家知識が既に記憶されている知識と衝突すると、因果関係図管理インタフェース240(例えば、因果関係図編集インタフェース242)を介して該衝突の指示がユーザ110に提示されてもよい。
代替的又は追加的に、いくつかの実施形態において、因果関係図管理インタフェース240は、発見された因果関係図の因子の組合せ操作をユーザ110が許可又は禁止することを可能にする因子組合せ選択インタフェース243を提供してもよい。例えば、因子の組合せ操作において、発見された因果関係図を最適化又は簡略化するように、発見された因果関係図における2つ以上の因子を1つの因子に組合せてもよい。因子の組合せ操作は、検証的因子分析(CFA:Confirmatory Factor Analysis)又は探索的因子分析(EFA:Exploratory Factor Analysis)に基づいて実行されてもよい。
いくつかの実施形態において、因果構造発見インタフェース220は、因子組合せ選択インタフェース243と同一又は類似する因子組合せ選択インタフェースも提供してもよい。これによって、因果構造の発見を容易にするために、因果構造が発見される前に因子の組合せ操作を実行することができる。
代替的又は追加的に、いくつかの実施形態において、因果関係図管理インタフェース240は、ユーザ110が目標因子を選択し、且つ目標因子に影響を与える検索すべきキー因子の数を入力することを可能にするキー因子分析インタフェース244も提供してもよい。そして、キー因子分析インタフェース244は、目標因子に影響を与えるキー因子をユーザ110に提示してもよい。例えば、目標因子に対するキー因子の因果効果に基づいてキー因子をランク付けてもよい。
いくつかの実施形態において、戦略管理インタフェース250は、ユーザ110が1つ又は複数の因子への制約(例えば、製品の価格が5ドル~9ドルの範囲内に落ちる間、製品の販売量が予想される販売量を超える)を入力することを可能にする戦略選択/制御インタフェース251を提供してもよい。そして、戦略選択/制御インタフェース251は、これらの制約を満たす1つ又は複数の制御戦略、及びこれらの制御戦略の対応効果を自動的に提示してもよい。
代替的又は追加的に、戦略管理インタフェース250はまた、評価のために1つ又は複数の戦略をユーザ110が入力することを可能にする戦略評価インタフェース252を提供してもよい。例えば、ユーザ110によって入力される戦略は、目標因子に影響を与える少なくとも1つの因子の値を示してもよい。そして、戦略評価インタフェース252は、これらの戦略が実行される場合のそれぞれの効果を提示し、ユーザ110が、提示された効果に応じて最適な戦略を選択することを可能にする。
上述したユーザインタフェースモジュール121における各インタフェースは、因果分析エンジン122における対応するモジュール又はユニットと対話してもよいことを理解されたい。以下、図2C~2Eを参照して因果分析エンジン122における例示的なモジュール又はユニットを説明する。
図2Cは、本開示のいくつかの実施形態に係る例示的な因果分析エンジン122のブロック図を示す。図2Bに示すように、因果分析エンジン122は、例えば、データ処理モジュール260、因果構造発見モジュール270及び因果分析モジュール280を備えてもよい。因果分析エンジン122のモジュールは、本開示の範囲に関する如何なる制限を示唆することなく、例示の目的のみで示されていることを理解されたい。いくつかの実施形態において、因果分析エンジン122は、追加のモジュールを有してもよく、及び/又は図示するいくつかのモジュールが省略されてもよい。例えば、いくつかの実施形態において、データ処理モジュール260が省略されてもよい。
いくつかの実施形態において、データ処理モジュール260は、データ入力インタフェース210から観測データ(例えば、複数の因子の観測サンプル)を受信し、受信した観測データに対してデータ前処理を実行してもよい。また、データ処理モジュール260は因果構造発見インタフェース220から情報を受信し、因果構造が発見される因子を最適化するための更なる処理を実行してもよい。以下、図2Dを参照してデータ処理モジュール260における例示的な機能ユニットを説明する。
図2Dは、本開示のいくつかの実施形態に係る例示的なデータ処理モジュール260のブロック図を示す。図2Dに示すように、データ処理モジュール260は、例えば、データ前処理ユニット261、因子エンジンリングユニット262及び因子減縮ユニット263のうちの少なくとも1つを備えてもよい。データ処理モジュール260のユニットは、本開示の範囲に関する如何なる制限を示唆することなく、例示の目的のみで示されていることを理解されたい。いくつかの実施形態において、データ処理モジュール260は、追加のユニットを有してもよく、及び/又は図示するいくつかのユニットが省略されてもよい。例えば、いくつかの実施形態において、因子エンジンリングユニット262及び/又は因子減縮ユニット263が省略されてもよい。
いくつかの実施形態において、データ入力インタフェース210を介してアップロードされるデータ(例えば、複数の因子の観測サンプル)は、データの前処理のためにデータ前処理ユニット261に提供されてもよい。いくつかの実施形態において、データ前処理ユニット261は、合理範囲にないノイズデータ(例えば、年齢が200歳である、価格の割引が1.2であるなど)を処理や掃除することを可能にするデータ掃除機能を提供してもよい。いくつかの実施形態において、データ前処理ユニット261は、データ内の欠落値を充填するいくつかの方法を提供してもよい。例えば、平均値、近傍値、予測値などを用いてデータ内の欠落値を充填する。いくつかの実施形態において、データ前処理ユニット261は、欠落率がユーザ110により設定される閾値を超えた観測サンプル/変数を自動的に除去するデータフィルタ機能を提供してもよい。代替的又は追加的に、いくつかの実施形態において、データ前処理ユニット261は、アップロードされたデータに対して統計を実行するデータ統計機能を提供してもよい。統計として、例えば、各観測可能な変数の最大値、最小値、平均値又は分散値を計算し、各観測可能な変数の欠落率を計算するなどである。前処理されたデータは、後続利用のためにデータベース(例えば、図1Aに示すデータベース123又は図1Bに示すデータベース161)に格納されることもできる。
いくつかの実施形態において、因子エンジンリングユニット262は、観測サンプルに基づいて複数の因子の特徴を分析し、且つ、複数の元の因子を新しい因子群に最適化してもよい。これらの新しい因子は、元の因子の特徴、例えば、一定の時間内で又は一定の次元での元の因子の変化率を反映して、因果関係/構造の発見を容易にすることができる。なお、いくつかの実施形態において、因子エンジンリングユニット262が省略されることができる。
いくつかの実施形態において、上述したように、因果構造発見インタフェース220(例えば、目標因子選択インタフェース221)は、ユーザ110が複数の因子の中から目標因子(例えば、顧客満足度、製品の歩留まり、ソフトウェア故障率など)を指定することを可能にする。因子減縮ユニット263は、因果構造発見インタフェース220から目標因子の指示を受信し、ある分析技術により複数の因子から目標因子の原因になる可能性の低い1つ又は複数の因子を削除してもよい。これによって、以下の因果関係/構造への発見の効率を向上することができる。なお、いくつかの実施形態において、因子減縮ユニット263が省略されることができる。
再び図2Cを参照して、いくつかの実施形態において、因果構造発見モジュール270は、複数の因子の観測サンプルから複数の因子間の因果関係/構造を発見してもよい。以下、図2Dを参照して因果構造発見モジュール270における例示的な機能ユニットを説明する。
図2Dは、本開示のいくつかの実施形態に係る例示的な因果構造発見モジュール270のブロック図を示す。図2Dに示すように、因果構造発見モジュール270は、例えば、因果構造発見ユニット271と因果構造簡略化ユニット272のうちの少なくとも一方を備えてもよい。因果構造発見モジュール270のユニットは、本開示の範囲に関する如何なる制限を示唆することなく、例示の目的のみで示されていることを理解されたい。いくつかの実施形態において、因果構造発見モジュール270は、追加のユニットを有してもよく、及び/又は図示するいくつかのユニットが省略されてもよい。例えば、いくつかの実施形態において、因果構造簡略化ユニット272が省略されてもよい。
いくつかの実施形態において、上述したように、因果構造発見インタフェース220は、ユーザ110が、因果発見アルゴリズム群から、因果関係の発見に用いられる適切な因果発見アルゴリズムを選択することを可能にする。代替的又は追加的に、いくつかの実施形態において、因果構造発見インタフェース220は、ユーザ110が、選択された因果発見アルゴリズムのいくつかのハイパーパラメータを調整することを可能にする。これによって、因果分析の速度及び/又は正確性を向上することができる。代替的又は追加的に、いくつかの実施形態において、因果構造発見インタフェース220は、ユーザ110が、複数の因子間の因果関係に関する専門家知識を入力することを可能にする。これによって、因果構造の発見の速度及び/又は正確性を向上することができる。選択された因果発見アルゴリズム、調整されたイパーパラメータ及び/又は専門家知識の指示は、因果構造発見モジュール270に提供されてもよい。
いくつかの実施形態において、因果構造発見モジュール270は、選択された因果発見アルゴリズム、調整されたハイパーパラメータ及び/又は専門家知識に基づいて、複数の因子の観測サンプルから、複数の因子間の因果関係を発見してもよい。因果構造発見モジュール270は、発見された因果関係を表す因果構造を生成してもよい。いくつかの実施形態において、生成された因果構造は、例えば、フォーム、因果関係図など異なる視覚形態にて提示されることができる。いくつかの実施形態において、生成された因果構造は、因果関係図として提示されてもよい。例えば、因果関係図は、複数の因子に対応する複数のノードと、複数のノードを結ぶ1つ又は複数の因果辺とを含んでもよい。いくつかの実施形態において、上述したように、ユーザ110は、因果構造発見インタフェース220(例えば、因果構造簡略化インタフェース225)を介して独立テストを開始して発見された因果構造を最適化してもよい。いくつかの実施形態において、この場合、因果構造簡略化ユニット272は、因果構造簡略化インタフェース225から指示を受信し、独立テスト技術を利用して生成された因果関係図を最適化してもよい。例えば、生成された因果関係図から合理でないいくつかの因果辺を削除する。いくつかの実施形態において、生成及び/又は最適化された因果関係図は、ユーザ110に提示するために因果構造発見インタフェース220に提供されることができる。また、生成及び/又は最適化された因果関係図は、後続利用のためにデータベース(例えば、図1Aに示すデータベース123又は図1Bに示すデータベース161)に格納されてもよい。
再び図2Cを参照して、いくつかの実施形態において、因果分析モジュール280は、因果構造評価インタフェース230、因果関係図管理インタフェース240及び/又は戦略管理インタフェース250を介した1つ又は複数のユーザ入力に基づいて、因果分析のための動作を実行してもよい。以下、図2Eを参照して因果分析モジュール280における例示的な機能ユニットを説明する。
図2Eは、本開示のいくつかの実施形態に係る例示的な因果分析モジュール280のブロック図を示す。図2Eに示すように、因果分析モジュール280は、例えば、因果構造評価インタフェース230と対話可能な因果構造評価ユニット281と、因果関係図管理インタフェース240と対話可能な図分析ユニット282と、戦略管理インタフェース250と対話可能な戦略ユニット283を備えてもよい。図分析ユニット282は、例えば、因果パス検索機能291と、因果関係図編集機能292と、因子組合せ機能293と、キー因子分析機能294とを有してもよい。戦略ユニット283は、戦略制御/評価機能295と、戦略レシピ機能296とを有してもよい。因果分析モジュール280のユニット又は機能は、本開示の範囲に関する如何なる制限を示唆することなく、例示の目的のみで示されていることを理解されたい。いくつかの実施形態において、因果分析モジュール280は、追加のユニット又は機能を有してもよく、及び/又は図示するいくつかのユニット又は機能が省略されてもよい。例えば、いくつかの実施形態において、因子組合せ機能293が省略されてもよい。
いくつかの実施形態において、上述したように、因果構造評価インタフェース230は、複数の因子の観測サンプルに対する発見された因果構造の適合度を特定するように、様々な評価指標及び/又は評価方法に基づいて、発見された因果構造の評価をユーザ110が開始することを可能にする。例えば、評価指標/評価方法選択インタフェース231は、発見された因果構造を評価することに用いられる評価指標及び/又は評価方法をユーザ110が選択することを可能にする。評価指標は、絶対指標又は相対指標であってもよい。絶対指標の例として、RMSEA(Root Mean Square Error of Approximation)、SRMR(Standardized Root Mean Square Residual)、BIC(Bayesian information criterion)などを含むが、これらに限定されない。RMSEAは、モデルの残差に関する。RMSEA値の範囲は、0~1である。その中、RMSEA値は小さいほど、モデルの適合性が良好であることを示す。例えば、許容可能なモデル適合度は、0.05以下のRMSEA値にて示されてもよい。SRMRは、適合された残差に基づく全体的な適合度の悪さを示す指標である。SRMRは、ゼロに近いほど、適合性が良好であることを示す。経験則によれば、SRMRが0.05未満であれば適合が良好であるが、0.10よりも小さい値は、許容可能と解釈されることができる。BICは、データの適合性とモデルのスパース性のバランスを考慮したスコアである。例えば、最も小さいBICを有するモデルが好ましいものである。相対指標の例として、CFI(Comparative Fit Index)、NNFI(Non-normed Fit Index)又はTLI(Tucker-Lewis Index)などを含むが、これらに限定されない。CFIは、サンプルサイズについて調整した偏差関数に等しい。CFIの範囲は、0~1である。その中、値が大きいほど、モデルの適合性が良好であることを示す。この指数の経験則によれば、0.97は、独立モデルに対する適合性が良好であることを示し、0.95よりも大きい値は、許容可能な適合と解釈されることができる。NNFI又はTLI(これらは同じである)の値の範囲は0~1である。その中、値が大きいほどモデルの適合性が良好であることを示す。この指数は、0.97よりも大きい場合、独立モデルに対する適合性が良好であることを示し、0.95よりも大きい値は、許容可能な適合と解釈されることができる。
いくつかの実施形態において、選択された評価指標及び/又は評価方法の指示は、因果構造評価ユニット281に提供されてもよい。因果構造評価ユニット281は、選択された評価指標及び/又は評価方法に基づいて、発見された因果構造を評価することによって、複数の因子の観測サンプルに対する発見された因果構造の適合度を特定してもよい。因果構造評価ユニット281は、ユーザ110に提示するために、評価の結果を因果構造評価インタフェース230に提供してもよい。
いくつかの実施形態において、因果パス検索機能291、因果関係図編集機能292、因子組合せ機能293及びキー因子分析機能294のうち少なくとも1つを有する図分析ユニット282は、因果関係図管理インタフェース240と対話してもよい。
上述したように、因果関係図管理インタフェース240(例えば、因果パス検索選択インタフェース241)は、ユーザ110が複数の因子から任意の2つの因子を選択し、選択された2つの因子間の因果パスの検索を開始することを可能にする。いくつかの実施形態において、選択された因子の指示は、因果パス検索機能291に提供されてもよい。因果パス検索機能291は、選択された2つの因子間の因果パスについて、発見された因果構造(例えば、因果関係図)を検索してもよい。因果パス検索機能291は、ユーザ110に提示するために、因果パスを因果関係図管理インタフェース240に提供してもよい。
上述したように、いくつかの実施形態において、因果関係図管理インタフェース240(例えば、因果関係図編集インタフェース242)は、因果関係図を最適化するためにいくつかの専門家知識を入力するように、ユーザ110が、提示される因果関係図を編集することを可能にする。いくつかの実施形態において、ユーザ110による因果関係図に対する編集は、2つのノード間の直接な因果関係を示すために因果関係図に辺を追加すること、2つのノード間に直接な因果関係がないことを示すために因果関係図から既存辺を削除すること、2つのノード間の因果関係を再指定するために因果関係図における既存辺を再指定すること、又はいくつかの専門家知識を示すために因果関係図に1つ以上のラベルを追加すること、のいずれかを含んでもよい。因果関係図への編集により示される専門家知識は、既に記憶されている専門家知識と比較されてもよい。いくつかの実施形態において、衝突があると、該衝突の指示は、因果関係図管理インタフェース240(例えば、因果関係図編集インタフェース242)を介してユーザ110に提示されてもよい。いくつかの実施形態において、衝突がないと、因果関係図への編集により示される専門家知識は、後続利用のためにデータベースに格納されてもよい。また、因果関係図への編集により示される専門家知識は、図分析ユニット282(例えば、因果関係図編集機能292)に提供されてもよい。
いくつかの実施形態において、図分析ユニット282は、専門家知識と複数の因子の観測サンプルとに基づいて複数の因子間の因果関係/構造を新たに発見し、且つ、新たに発見された因果関係を表す他の因果構造(例えば、他の因果関係図)を新たに生成してもよい。新たに生成された因果構造は、専門家知識を統合し、且つ元の因果関係図に対する編集を反映してもよい。例えば、新たに生成された因果構造は、ユーザ110に提示するために因果関係図管理インタフェース240に提供されることができる。また、新たに生成された因果構造/図は、後続利用のためにデータベース(例えば、図1Aに示すデータベース123又は図1Bに示すデータベース161)に格納されてもよい。
上述したように、いくつかの実施形態において、因果関係図管理インタフェース240(例えば、因子組合せ選択インタフェース243)は、発見された因果関係図の因子の組合せ操作をユーザ110が許可又は禁止することを可能にしてもよい。因子の組合せ操作を許可又は禁止する指示は、図分析ユニット282(例えば、因子組合せ機能293)に提供されてもよい。因子組合せ機能293は、発見された因果関係図における2つ以上の因子を1つの因子に組合せることによって、因子の組合せ操作を実行してもよい。これによって、発見された因果関係図を最適化又は簡略化する。因子の組合せ操作は、検証的因子分析(CFA)又は探索的因子分析(EFA)に基づいて実行されてもよい。最適化又は簡略化された因果関係図は、ユーザ110に提示するために、因果関係図管理インタフェース240に提供されてもよい。また、最適化又は簡略化された因果構造/図は、後続利用のためにデータベース(例えば、図1Aに示すデータベース123又は図1Bに示すデータベース161)に格納されてもよい。
上述したように、いくつかの実施形態において、因果関係図管理インタフェース240(例えば、キー因子分析インタフェース244)は、ユーザ110が目標因子を選択し、目標因子に影響を与える検索すべきキー因子の数を入力することを可能にする。目標因子及びキー因子の数は、図分析ユニット282(例えば、キー因子分析機能294)に示されてもよい。いくつかの実施形態において、キー因子分析機能294は、目標因子に影響を与える因子について因果関係図を検索してもよい。各因子には、目標因子に対する重要性を反映するスコアが割当てられてもよい。ユーザ110に提示するために、キー因子分析機能294は、キー因子、及び目標因子に対するキー因子の因果効果を因果関係図管理インタフェース240に提供してもよい。いくつかの実施形態において、例えば、因果関係図管理インタフェース240は、因果関係図でキー因子に対応する1つ又は複数のノードを強調表示してもよい。代替的又は追加的に、因果関係図管理インタフェース240は、キー因子の重要性の視覚的表現(例えば、テキスト、数字、プログレスバー、円グラフ、棒グラフなど)を提示してもよい。
いくつかの実施形態において、戦略制御/評価機能295と戦略レシピ機能296とを有する戦略ユニット283は、戦略管理インタフェース250と対話してもよい。
上述したように、いくつかの実施形態において、戦略管理インタフェース250(例えば、戦略選択/制御インタフェース251)は、ユーザ110が1つ又は複数の因子への制約(例えば、製品の価格が5ドル~9ドルの範囲内に落ちる間、製品の販売量が予想される販売量を超える)を入力することを可能にする。1つ又は複数の因子への制約は、戦略ユニット283(例えば、戦略レシピ機能296)に提供されてもよい。いくつかの実施形態において、戦略レシピ機能296は、因果関係図に基づいて、制約を満たす1つ又は複数の戦略を決定してもよい。いくつかの実施形態において、戦略レシピ機能296は、全ての制約を満たす戦略を見つけることができないと、少なくとも一部の制約を満たすことができる1つ又は複数の戦略の見つけを試してもよい。いくつかの実施形態において、戦略レシピ機能296は、目標因子の予測値(例えば、製品の販売量)が予想販売量に近づく(例えば、製品の予測販売量と予想販売量との差が閾値よりも小さい)1つ又は複数の戦略を見つけてもよい。戦略レシピ機能296は、決定された1つ又は複数の戦略及びこれら戦略のそれぞれの効果を、ユーザ110に提示するために、戦略管理インタフェース250に提供してもよい。戦略管理インタフェース250は、ユーザ110が、提示された効果に応じて最適な戦略を選択することを可能にする。
上述したように、いくつかの実施形態において、戦略管理インタフェース250(例えば、戦略評価インタフェース252)は、ユーザ110が、評価のために1つ又は複数の戦略を入力することを可能にする。例えば、ユーザ110によって入力される戦略は、目標因子に影響を与える少なくとも1つの因子の値を示してもよい。入力された戦略は、戦略ユニット283(例えば、戦略制御/評価機能295)に提供されてもよい。いくつかの実施形態において、戦略制御/評価機能295は、因果関係図と、該戦略によって示される少なくとも1つの因子の値とに基づいて、目標因子の値を予測するシミュレーションを実行してもよい。戦略制御/評価機能295は、目標因子の予測値を、ユーザ110に提示するために戦略管理インタフェース250に提供してもよい。このように、ユーザ110は、戦略が実行される場合の効果を予見することができる。
ユーザインタフェースモジュール121と因果分析エンジン122との対話が図3に纏められる。図3に示すように、そして図2B~図2Eを参照して上記で説明したように、データ入力インタフェース210は、データ処理モジュール260と対話してもよい。因果構造発見インタフェース220は、データ処理モジュール260及び/又は因果構造発見モジュール270と対話してもよい。データ処理モジュール260により処理された観測データは、因果構造発見モジュール270に提供されてもよい。因果構造発見モジュール270により発見された因果構造は、因果分析モジュール280に提供されてもよい。因果分析モジュール280は、因果構造評価ユニット281と、図分析ユニット282と、戦略ユニット283とを有する。図3に示すように、そして図2B~図2Eを参照して上記で説明したように、因果構造評価インタフェース230は、因果分析モジュール280における因果構造評価ユニット281と対話してもよい。因果関係図管理インタフェース240は、因果分析モジュール280における図分析ユニット282と対話してもよい。戦略管理インタフェース250は、因果分析モジュール280における戦略ユニット283と対話してもよい。
いくつかの実施形態において、因果分析エンジン122は、さらに、表示制御モジュール(図示せず)を備えてもよい。表示制御モジュールは、ユーザ110の操作に応答して、発見された因果構造(例えば、因果関係図)の表示を制御してもよい。表示制御モジュールは、以下の動作(1)~(12)のうちの少なくとも1つを実行するように設定されてもよい。ここで、(1)因子の大きさと色のうちの少なくとも1つを変更することによって、目標因子に対する該因子の因果関係の重要性を示し、(2)因子に関連する辺(又は矢印)の太さと色のうちの少なくとも1つを変更することによって、関連因子間の因果関係の重要性を示し、(3)因果関係図における目標因子の形状を変更することによって、目標因子が選択されているかどうかを示し、(4)全体的な重要性が高い因子を、全体的な重要性が低い別の因子よりも上にランク付けるようにチャートを提示し、(5)因子間の因果関係の密度を示すように、特定の形状(例えば、円形)に因子を再配置し、(6)因果関係の重要性に応じて因果関係図における因子をシャッフルして、因子間に短い辺(又は矢印)を有する簡略化された図を示し、(7)ユーザ110が因子の名称を選択すると、動画(例えば、点滅)を利用して因子を示し、(8)ユーザ110による所定の操作(例えば、因子を選択し一定時間押し続ける)に応答して、他の因子を隠しながら、選択された因子と直接な因果関係を有する因子、及び直接な因果関係を表す辺(又は矢印)を示し、(9)ユーザ110がドラッグ及びドロップによって1つ又は複数の因子を移動したことに応答して、因果関係を表す辺(又は矢印)が結ぶままこれらの辺(又は矢印)を移動し、(10)ユーザ110が因子を選択し、且つ該因子上に一定時間留まったことに応答して、因子への記述を示し、(11)因果関係図における辺(又は矢印)と関連する因果関係の重要性の現し及び隠しを制御し、(12)辺(又は矢印)と関連するそれぞれの因果関係の重要性に応じて、因果関係図における少なくともいくつかの辺(又は矢印)の現し及び隠しを制御することなどである。なお、対応する操作インタフェースは、ユーザインタフェースモジュール121に含まれてもよい。ユーザが、該操作インタフェースを利用して上記動作のうちの少なくとも1つの動作の実行をトリガーしてもよい。
図4は、本開示のいくつかの実施形態に係る例示的な方法400を示す。方法400は、図2Aに示す因果分析システム200によって実行されることができる。いくつかの実施形態において、例えば、方法400は、図1Aに示す因果分析サーバ120で実行されることができる。代替的に、いくつかの実施形態において、例えば、方法400は、図1Bに示すユーザデバイス140と因果分析サーバ160で実行されることができる。なお、方法400は、図示されない追加のブロックを含んでもよく、及び/又は図示のいくつかのブロックを省略してもよい。本開示の範囲はこれらに限定されない。
ブロック410において、複数の因子の観測サンプルから、複数の因子間の第1の因果関係を示す第1の因果構造を決定し、各観測サンプルは、複数の因子の観測値の組を含む。
いくつかの実施形態において、上述したように、ユーザ110又はデータ収集デバイス130は、データ入力インタフェース210(例えば、データアップロードインタフェース211)を介して、複数の因子の観測サンプルをアップロードしてもよい。例えば、各観測サンプルは、複数の因子の観測値の組を含んでもよい。いくつかの実施形態において、アップロードされた複数の因子の観測サンプルは、データ処理モジュール260(例えば、データ前処理ユニット261、因子エンジンリングユニット262及び因子減縮ユニット263のうちの1つ又は複数)によって処理されることができる。因果構造発見モジュール270(例えば、因果構造発見ユニット271)は、複数の因子の観測サンプルから、複数の因子間の第1の因果関係を示す第1の因果構造を決定してもよい。
いくつかの実施形態において、上述したように、因果構造発見インタフェース220は、ユーザ110が、因果発見アルゴリズム群から因果関係の発見に使用される適切な因果発見アルゴリズムを選択することを可能にする。代替的又は追加的に、因果構造発見インタフェース220は、選択された因果発見アルゴリズムのいくつかのハイパーパラメータをユーザ110が調整することを可能にしてもよい。これによって、因果分析の速度及び/又は正確性を向上する。代替的又は追加的に、因果構造発見インタフェース220は、ユーザ110が複数の因子間の因果関係に関する専門家知識を入力することを可能にしてもよい。これによって、因果構造発見の速度及び/又は正確性を向する。いくつかの実施形態において、因果構造発見モジュール270(例えば、因果構造発見ユニット271)は、選択された因果発見アルゴリズム、調整されたハイパーパラメータ及び/又は専門家知識に基づいて、複数の因子の観測サンプルから、複数の因子間の第1の因果関係を発見してもよい。
いくつかの実施形態において、上述したように、ユーザ110は、因果構造発見インタフェース220(例えば、因果構造簡略化インタフェース225)を介して、発見された因果構造を最適化する独立テストを開始してもよい。いくつかの実施形態において、因果構造発見モジュール270(例えば、因果構造簡略化ユニット272)は、因果構造簡略化インタフェース225から指示を受信し、且つ、独立テスト技術を利用して生成された因果構造を最適化又は簡略化してもよい。例えば、生成された因果構造から合理でないいくつかの因果関係を削除する。
ブロック420において、第1の因果構造をユーザ110に提示する。生成された因果構造は、異なる視覚形態(例えば、フォーム、因果関係図など)で提示されてもよい。いくつかの実施形態において、第1の因果構造は、因果関係図として提示されてもよい。例えば、因果関係図は、複数の因子に対応する複数のノード、及び複数のノードを結ぶ1つ又は複数の因果辺を含んでもよい。以下、用語「因果構造」、「因果関係図」及び「因果関係」は互いに置換可能に使用されることができる。これは、本開示の範囲に関する如何なる制限を示唆することなく、単に例示のためのものであることを理解されたい。
図5Aは、本開示のいくつかの実施形態に係る例示的な因果関係図510を示す。図5Aに示すように、因果関係図510は、複数の因子に対応する複数のノード501、502…506を含む。説明の目的のため、以下、ノード501は「因子501」とも呼ばれ、ノード502は「因子502」とも呼ばれ…ノード506は「因子506」とも呼ばれることがある。因果関係図510における因子の数は、本開示の範囲に関する如何なる制限を示唆することなく、例示の目的のみで提供されていることを理解されたい。本開示の実施形態に係る因果関係図は、任意の適切な数のノード又は因子を含んでもよい。異なる分野で、因子501、502…又は506は、異なる意味を有する場合があることを理解されたい。例えば、市場調査の分野において、因子501、502…又は506は、顧客レベル、顧客電話番号、毎月消費する通信量、無料通信量の割合、毎月消費する通信量の合計費用、苦情の数、顧客満足度などのいずれかを含んでもよい。ソフトウェア開発の分野において、因子501、502…又は506は、ソフトウェア開発のための人的資源量、ソフトウェア開発の期間、関数の数、コードの行数、ソフトウェア開発に使用されるプログラミング言語、ソフトウェア故障率などのいずれかを含んでもよい。
図5Aに示すように、因果関係図510は、さらに、複数のノード501、502…506を結ぶ複数の因果辺511、512…516を含んでもよい。例えば、ノード501からノード503に指向する辺511は、因子501が因子503の直接な原因であることを示してもよい。ノード502からノード503に指向する辺512は、因子502が因子503の直接な原因であることを示してもよい。…ノード505からノード506に指向する辺516は、因子505が因子506の直接な原因であることを示してもよい。いくつかの実施形態において、因果関係図510における因果辺は異なる色を有してもよい。例えば、辺511が第1の色(例えば、赤)である場合、因子503の値は、因子501の値が増加するにつれて増加することを意味する。辺511が第1の色とは異なる第2の色(例えば、青)である場合、因子503の値は、因子501の値が増加するにつれて減少することを意味する。
ブロック430において、第1の因果構造に関する少なくとも1つのユーザ入力をユーザ110から受信したかどうかを判定する。少なくとも1つのユーザ入力を受信したことに応答して、ブロック440において、第1の因果構造に基づいて、少なくとも1つのユーザ入力に関連する動作を実行する。その後、ブロック450において、ユーザ110に動作の実行結果を提示する。
いくつかの実施形態において、少なくとも1つのユーザ入力は、ユーザ110による第1の因果構造(例えば、因果関係図)への編集操作を含んでもよい。上述したように、例えば、因果関係図管理インタフェース143は、ユーザ110が、発見された因果構造を最適化するためにいくつかの先験的知識を入力するするように、提示された因果構造(例えば、因果関係図)を編集することを可能にする。いくつかの実施形態において、ユーザ110による因果関係図への編集は、2つのノード間の直接な因果関係を示すために因果関係図に辺を追加すること、2つのノード間に直接な因果関係がないことを示すために因果関係図から既存辺を削除すること、2つのノード間の因果関係を再指定するために因果関係図における既存辺を再指定すること、又はいくつかの先験的知識を示すために因果関係図に1つ又は複数のラベルを追加すること、のいずれかを含んでもよい。
いくつかの実施形態において、複数のノードは、複数の因子のうちの第1の因子に対応する第1のノード(例えば、図5Aにおけるノード501)と、複数の因子のうちの第2の因子に対応する第2のノード(例えば、図5Aにおけるノード503)を含み、かつ、少なくとも1つの辺は、第1の因子が第2の因子の直接な原因であることを示すために、第1のノードから第2のノードに指向する第1の辺(例えば、図5Aにおける辺511)を含んでもよい。いくつかの実施形態において、ユーザ110による因果関係図への編集操作は、第1の因子が第2の因子の直接な原因ではないことを示すように、因果関係図から第1の辺を削除することを含んでもよい。代替的又は追加的に、いくつかの実施形態において、ユーザ110による因果関係図への編集操作は、第2の因子が第1の因子の直接な原因であることを示すように、第1の辺を、第2のノードから第1のノードへの指向に再指定する(例えば、辺511を、ノード503からノード501への指向に再指定する)ことを含んでもよい。
代替的又は追加的に、いくつかの実施形態において、複数のノードは、複数の因子のうちの第3の因子に対応する第3のノード(例えば、図5Aにおけるノード502)と、複数の因子のうちの第4の因子に対応する第4のノード(例えば、図5Aにおけるノード506)を含んでもよい。いくつかの実施形態において、ユーザ110による因果関係図への編集操作は、第3の因子が第4の因子の直接な原因であることを示すように、第3のノードから第4のノードに指向する第2の辺を因果関係図に追加することを含んでもよい。代替的又は追加的に、いくつかの実施形態において、ユーザ110による因果関係図への編集操作は、第3の因子が第4の因子の間接な原因であることを示すように、第3のノードと第4のノードとに関連する第1のラベルを因果関係図に追加することを含んでもよい。
代替的又は追加的に、いくつかの実施形態において、複数のノードは、複数の因子のうちの第1組の因子に対応する第1組のノードと、複数の因子のうちの第2組の因子に対応する第2組のノードを含む。いくつかの実施形態において、ユーザ110による因果関係図への編集操作は、第1組の因子が第2組の因子の原因ではないことを示すように、第1組のノードと第2組のノードとに関連する第2のラベルを因果関係図に追加することを含んでもよい。
いくつかの実施形態において、ユーザ110が編集操作を実行したことに応答して、編集操作から、第1の因果構造を最適化するための先験的情報を決定してもよい。第1の因果関係と異なる複数の因子間の第2の因果関係は、該情報と複数の因子の観測サンプルから決定されてもよい。その後、第2の因果関係を表す第2の因果構造をユーザ110に提示してもよい。例えば、第2の因果構造は、先験的情報を統合し、且つ、第1の因果構造に対して実行された編集を反映してもよい。
いくつかの実施形態において、少なくとも1つのユーザ入力は、複数の因子から目標因子に影響を与える第1の数の因子を検索するための第1の要求を含んでもよい。例えば、第1の要求は、因果分析システム200に目標因子と第1の数(即ち、検索するキー因子の数)を示してもよい。上述したように、例えば、因果関係図管理インタフェース240(例えば、キー因子分析インタフェース244)は、ユーザ110が目標因子を選択し、かつ、検索する目標因子に影響を与えるキー因子の数を入力することを可能にしてもよい。いくつかの実施形態において、第1の要求を受信したことに応答して、因果関係図管理インタフェース240(例えば、キー因子分析インタフェース244)は、第1の要求から目標因子と第1の数(即ち、検索するキー因子の数)を決定してもよい。目標因子及びキー因子の数は、図分析ユニット282(例えば、キー因子分析機能294)に示されてもよい。
いくつかの実施形態において、図分析ユニット282(例えば、キー因子分析機能294)は、第1の因果構造に基づいて、複数の因子から、目標因子に影響を与える少なくとも1つの因子を決定してもよい。例えば、少なくとも1つの因子は、目標因子の直接な原因又は間接な原因である因子を含んでもよい。図分析ユニット282(例えば、キー因子分析機能294)は、観測サンプルと第1の因果構造とに基づいて、目標因子に対するの少なくとも1つの因子のそれぞれの因果効果を推定してもよい。図分析ユニット282(例えば、キー因子分析機能294)は、推定された因果効果に基づいて少なくとも1つの因子を(例えば、高い順から)ランク付け、且つ、ランク付けられた結果に基づいて、(目標因子に対する因果効果が最も大きい)第1の数のキー因子を選択してもよい。
いくつかの実施形態において、第1の数の因子は、因果関係図における複数のノードのうちの第1の数のノードに対応してもよい。因果関係図管理インタフェース240は、因果関係図における第1の数のノードを強調表示してもよい。代替的又は追加的に、因果関係図管理インタフェース240は、目標因子に対する第1の数の因子の因果効果を示す視覚的表現をユーザ110に提示してもよい。
図5Bは、本開示のいくつかの実施形態に係る、目標因子に影響を与えるキー因子を示す例示的な因果関係図510を示す。図5Bに示すように、目標因子506に対して最大効果を有する2つのキー因子503と505が因果関係図510で強調表示されている。特に、ノード505がノード503よりも大きく示され、これは、目標因子506に対する因子505の因果効果(即ち、因子505の重要性)が目標因子506に対する因子503の因果効果(即ち、因子503の重要性)を上回っていることを示す。代替的に、いくつかの実施形態において、他の視覚的表現(例えば、テキスト、数字、プログレスバー、円グラフ、棒グラフなど)を利用して目標因子に対するキー因子のそれぞれの因果効果を示してもよい。
いくつかの実施形態において、少なくとも1つのユーザ入力は、複数の因子のうちの目標因子が期待値に達することを可能にする戦略を得るための第2の要求を含んでもよい。例えば、第2の要求は、因果分析システム200に目標因子と目標因子の期待値を示すものであってもよい。上述したように、例えば、戦略管理インタフェース250(例えば、戦略選択/制御インタフェース251)は、ユーザ110が1つ又は複数の因子への制約(例えば、製品の価格が5ドル~9ドルの範囲内に落ちる間、製品の販売量が予想される販売量を超える)を入力することを可能にする。いくつかの実施形態において、第2の要求を受信したことに応答して、戦略管理インタフェース250(例えば、戦略選択/制御インタフェース251)は、第2の要求から目標因子と目標因子の期待値を決定してもよい。目標因子と目標因子の期待値は、戦略ユニット283(例えば、戦略レシピ機能296)に示されてもよい。
いくつかの実施形態において、戦略レシピ機能296は、因果関係図に基づいて、制約を満たす1つ又は複数の戦略を決定してもよい。いくつかの実施形態において、戦略レシピ機能296は、全ての制約を満たす戦略を見つけることができないと、少なくとも一部の制約を満たすことができる1つ又は複数の戦略の見つけを試してもよい。いくつかの実施形態において、戦略レシピ機能296は、目標因子の予測値(例えば、製品の販売量)が、予想販売量に近づく(例えば、製品の予測販売量と予想販売量との差が閾値よりも小さい)1つ又は複数の戦略を見つけてもよい。戦略レシピ機能296は、決定された1つ又は複数の戦略及びこれらの戦略のそれぞれの効果(例えば、これらの戦略が実行される場合の目標因子の予測値)を、ユーザ110に提示するために、戦略管理インタフェース250に提供してもよい。戦略管理インタフェース250は、ユーザ110が、提示された効果に応じて最適な戦略を選択することを可能にしてもよい。
いくつかの実施形態において、少なくとも1つのユーザ入力は、複数の因子のうちの目標因子に関する戦略の評価を開始するための第3の要求を含んでもよい。例えば、第3の要求は、因果分析システム200に目標因子を示すものであってもよい。いくつかの実施形態において、第3の要求は、戦略管理インタフェース250(例えば、戦略評価インタフェース252)によって受信されてもよい。いくつかの実施形態において、第3の要求を受信したことに応答して、戦略管理インタフェース250(例えば、戦略評価インタフェース252)は、第3の要求から目標因子を決定してもよい。戦略管理インタフェース250(例えば、戦略評価インタフェース252)は、目標因子の指示を戦略ユニット283(例えば、戦略制御/評価機能295)に提供してもよい。
いくつかの実施形態において、戦略制御/評価機能295は、第1の因果構造に基づいて、複数の因子から、目標因子に影響を与える少なくとも1つの因子を決定し、且つ、目標因子と少なくとも1つの因子とに基づいて第1の因果構造のサブ構造を生成してもよい。いくつかの実施形態において、例えば、サブ構造は、因果関係図のサブ図として表現されてもよい。該サブ図は、目標因子と少なくとも1つの因子に対応するノードの組、及びこの組のノードを結ぶ1つ又は複数の辺を含んでもよい。いくつかの実施形態において、戦略制御/評価機能295は、第1の因果構造のサブ構造(例えば、サブ図)を、ユーザ110に提示するために、戦略管理インタフェース250(例えば、戦略評価インタフェース252)に提供してもよい。これによって、ユーザ110が、提示されたサブ構造に基づいて評価のために1つ又は複数の戦略を入力することができる。
図5Cは、本開示のいくつかの実施形態にかかる因果関係図510の例示的なサブ図520を示す。図5Cに示すように、ユーザ110から受信された、戦略の評価を開始するための第3の要求は、目標因子が因子506であることを示してもよい。いくつかの実施形態において、第3の要求は、さらに、サブ図に示される、少なくとも1つの因子に関するいくつかの追加の情報を示してもよい。例えば、第3の要求は、さらに、少なくとも1つの因子のそれぞれから目標因子までの距離(即ち、因果辺の数)が閾値(例えば、図5Cにおいて2である)より小さいべきであることを示してもよい。図5Cに示すように、決定された目標因子に影響を与える少なくとも1つの因子は、3つの因子503、504と505を含んでもよい。これで、3つのノード503、504と505のそれぞれからノード506までの距離は2より小さいことが分かる。特に、図5Cは、さらに、3つの因子503、504と505及び目標因子506のそれぞれの値を示す。例えば、因子503、504、505と506の値は、それぞれ、「50.03」、「50.01」、「50.05」と「50.08」として示される。このように、ユーザ110が、ノード503、504と505のうちの1つ又は複数のノードの値を編集して、評価のために目標因子506に影響を与える制御戦略を入力することができる。
いくつかの実施形態において、戦略管理インタフェース250(例えば、戦略評価インタフェース252)は、さらに、ユーザ110から、評価のために戦略を受信してもよい。該戦略は、提示されたサブ構造(例えば、サブ図520)に基づいて入力される。上述したように、例えば、戦略管理インタフェース250(例えば、戦略評価インタフェース252)は、ユーザ110が、評価のために1つ又は複数の戦略を入力することを可能にしてもよい。例えば、ユーザ110が入力した戦略は、目標因子に影響を与える少なくとも1つの因子の値を示してもよい。入力された戦略は、戦略ユニット283(例えば、戦略制御/評価機能295)に提供されてもよい。いくつかの実施形態において、戦略制御/評価機能295は、因果関係図と、該戦略によって示される少なくとも1つの因子の値とに基づいて目標因子の値を予測するシミュレーションを実行してもよい。戦略制御/評価機能295は、目標因子の予測値を戦略評価の結果として、ユーザ110に提示するために戦略管理インタフェース250に提供してもよい。このように、ユーザ110は、戦略が実行される場合の効果を予見することができる。
図5D及び図5Eは、本開示のいくつかの実施形態にかかる、目標因子に影響を与えるための異なる戦略の評価の例を示す。図5Dに示すように、例えば、ユーザ110は、因子503の値を図5Cに示す「50.03」から「80」に変更してもよい。戦略制御/評価機能295は、因果関係に基づいて、因子503によって影響される因子504、505と506の値を予測してもよい。例えば、因子504の予測値は、図5Cに示す元の値「50.01」と異なる「53.04」である。因子505の予測値は、図5Cに示す元の値「50.05」と異なる「70.89」である。目標因子506の予測値は、図5Cに示す元の値「50.08」と異なる「65.62」である。予測値は、評価の結果としてユーザ110に提示されてもよい。図5Eに示すように、例えば、ユーザ110は、さらに、因子504の値を、図5Dに示す「53.04」から「70」に変更してもよい。戦略制御/評価機能295は、因果関係に基づいて、因子504によって影響される因子506の値を予測してもよい。例えば、因子506の予測値は、図5Dに示す「65.62」と異なる「70.79」である。特に、因子504の値がユーザ110によって制御されるため、因子504は、因子504の影響を受けなくなる。従って、図5Eに示すように、因子503が因子504の直接な原因であることを示す因果辺513は、因果関係図520から削除された。
図6は、本開示のいくつかの実施形態にかかる、目標因子に影響を与えるキー因子を位置付ける例示的な方法600を示す。方法600は、図1A~図1B、図2A及び/又は図2Cに示す因果分析エンジン122で実行されることができる。例えば、いくつかの実施形態において、方法600は、因果分析エンジン122における因果分析モジュール280のキー因子分析機能294によって実行されることができる。
ブロック610において、因果分析エンジン122は、複数の因子の観測サンプルと、複数の因子間の因果関係を示す因果構造とを取得する。いくつかの実施形態において、複数の因子の観測サンプルは、ユーザインタフェースモジュール121を介して受信され、且つデータベース(例えば、図1Aに示すデータベース123又は図1Bに示すデータベース161)に格納されてもよい。因果構造は、因果分析エンジン122(例えば、因果構造発見モジュール270)によって発見され、且つデータベースに格納されることができる。つまり、因果分析エンジン122は、データベースから、複数の因子の観測サンプルと因果構造を取得してもよい。代替的に、いくつかの実施形態において、因果分析エンジン122は、ユーザインタフェースモジュール121から、複数の因子の観測サンプルを取得し、かつ、観測サンプルから因果構造を発見することによって因果構造を取得してもよい。
ブロック620において、複数の因子の中で目標因子が特定されたことに応答して、因果分析エンジン122は、因果構造に基づいて複数の因子から目標因子に影響を与える少なくとも1つの因子を決定してもよい。
ブロック630において、因果分析エンジン122は、少なくとも1つの因子のそれぞれについて、観測サンプルと因果構造に基づいて、目標因子に対する該因子の全体的な因果効果を推定してもよい。本明細書で使用されるとき、「全体的な因果効果」は、目標因子に対する因子の直接な因果効果と間接な因果効果の合計を示してもよい。いくつかの実施形態において、因果分析エンジン122は、因果効果推定アルゴリズムに基づいて目標因子に対する因子の全体的な因果効果を推定してもよい。なお、因果効果推定アルゴリズムは、現在知られている、又は将来に開発される任意の推定アルゴリズム又は推定器であり得ることを理解されたい。
いくつかの実施形態において、因果分析エンジン122は、因果構造から、因子と目標因子との間の1つ又は複数の因果パスを決定してもよい。因果分析エンジン122は、さらに、1つ又は複数の因果パスのそれぞれについて、目標因子に対する因子の因果効果を推定してもよい。そして、因果分析エンジン122は、1つ又は複数の因果パスに対する因果効果の合計を、目標因子に対する因子の全体的な因果効果として決定してもよい。
図7は、本開示のいくつかの実施形態に係る、目標因子に対する原因因子の全体的な因果効果を決定する例を示す。図7に示すように、因果構造700は、因子701、702…706を含んでもよい。因子705は目標因子と識別される。目標因子705に対する因子702の全体的な因果効果を決定することを仮定する。因果分析エンジン122は、まず、因子702と目標因子705との間の因果パスを特定してもよい。例えば、因子702と目標因子705との間の因果パスは、(1)因子702→因子705、(2)因子702→因子706→因子705、(3)因子702→因子701→因子706→因子705、及び(4)因子702→因子703→因子704→因子705を含んでもよい。因果分析エンジン122は、上記4つの因果パスのそれぞれについて、目標因子705に対する因子702の因果効果を推定してもよい。そして、因果分析エンジン122は、推定された因果効果を合計して目標因子705に対する因子702の全体的な因果効果を得てもよい。
再び図6を参照して、ブロック640において、因果分析エンジン122は、推定された目標因子に対する少なくとも1つの因子の全体的な因果効果に基づいて、少なくとも1つの因子をランク付けてもよい。これによって、目標因子に影響を与えるキー因子のシーケンスを取得する。
いくつかの実施形態において、目標因子に対する原因因子の全体的な因果効果は、正の値又は負の値と推定されてもよい。例えば、正の値は、目標因子の観測値が原因因子の値の増加につれて増加することを示すが、負の値は、目標因子の観測値が原因因子の値の増加につれて減少することを示してもよい。
いくつかの実施形態において、因果分析エンジン122は、目標因子に対する少なくとも1つの因子の全体的な因果効果のそれぞれの絶対値を決定し、そして、決定された絶対値に基づいて、少なくとも1つの因子をランク付けてもよい。
本開示のいくつかの実施形態に係る因果分析のための一般的なプロセス800は、図8に纏められる。図8に示すように、一般的なプロセス800は、データ收集のための1つ又は複数の動作810(例えば、観測サンプルの收集)、データ入力のための1つ又は複数の動作820(例えば、観測サンプルのアップロード)、データ処理のための1つ又は複数の動作830(例えば、データ前処理、因子エンジンリング及び/又は因子減縮)、因果関係/構造の発見のための1つ又は複数の動作840、発見された因果関係/構造を出力するための1つ又は複数の動作850、因果分析のための1つ又は複数の動作860、及び戦略を実行するための1つ又は複数の動作870を含んでもよい。プロセス800は一回以上実行されることができる。プロセス800は、図示されない追加の動作を含んでもよく、及び/又は図示されているいくつかの動作を省略してもよいことを理解されたい。また、プロセス800は、単一の物理デバイス又は複数の物理デバイスによって実行され得ることを理解されたい。本開示の範囲は、この点で限定されない。
上述した内容から、本開示の実施形態は、複数の因子間の因果関係の自動発見を実現することが分かる。該因果関係を表す因果構造をユーザに提示することができる。ユーザは、いくつかの先験的知識を入力するように該因果構造を調整することによって、発見された因果関係を最適化することができる。目標因子に影響を与えるキー因子を、複数の因子の中に位置づけることができる。また、本開示の実施形態は、ユーザによって入力され、目標因子に影響を与えるための戦略の効果を評価することができる。本開示の実施形態は、更に、1つ又は複数の最適な戦略をユーザに推奨することができる。
図9は、本開示の実施形態を実施するために使用され得るデバイス900の簡略的なブロック図を示す。例えば、図1Aに示す因果分析サーバ120、図1Bに示すユーザデバイス140又は因果分析サーバ160、及び/又は図1A~1B、図2A及び/又は図2Cに示す因果分析エンジン122は、デバイス900によって実装されることができる。図9に示すように、デバイス900は、中央処理ユニット(CPU)901を備え、CPU901は、読み出し専用メモリ(ROM)902に格納されたコンピュータプログラム命令、又は記憶ユニット908からランダムアクセスメモリ(RAM)903にアップロードされたコンピュータプログラム命令に基づいて、様々適切な動作及び処理を実行することができる。RAM903には、更に、デバイス900の操作に必要な各種プログラム及びデータが記憶されている。CPU901、ROM902及びRAM903は、バス904を介して互いに接続されている。入力/出力(I/O)インタフェース905もバス904に接続されている。
デバイス900におけるコンポーネントは、I/Oインタフェース905に接続されている。コンポーネントは、キーボード、マウスなどの入力ユニット906、各種のディスプレイやスピーカなどの出力ユニット907、磁気ディスクや光ディスクなどの記憶ユニット908、ネットワークカード、モデム、無線通信トランシーバなどの通信ユニット909を含む。通信ユニット909は、デバイス900が、インターネット及び/又は遠隔通信ネットワークなどのコンピュータネットワークを介して、他のデバイスとデータ/情報を交換することを可能にする。
上記方法又はプロセス、例えば、方法400、600及び/又はプロセス800は、処理ユニット901によって実行されることができる。例えば、いくつかの実装において、方法400、600及び/又はプロセス800は、記憶ユニット908などの機械読み取り可能な媒体に有形に含まれるコンピュータソフトウェアプログラムとして実行されることができる。いくつかの実装において、コンピュータプログラムは、ROM902及び/又は通信ユニット909によってデバイス900に部分的又は全体的にロードされ、及び/又はマウントされることができる。コンピュータプログラムがRAM903にアップロードされ、CPU901によって実行されると、上記方法200の1つ又は複数のステップが実行されることができる。
本開示は、システム、装置、デバイス、方法及び/又はコンピュータプログラム製品であってもよい。コンピュータプログラム製品は、プロセッサが本開示の態様を実行させるためのコンピュータ読み取り可能なプログラム命令を有するコンピュータ読み取り可能な記憶媒体(又は媒体)を含んでもよい。
コンピュータ読み取り可能な記憶媒体は、命令実行デバイスによって使用される命令を保持、格納する有形なデバイスであり得る。コンピュータ読み取り可能な記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、又は前述の任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的例の非網羅的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブル読み出し専用メモリ(EPROM又はフラッシュメモリ)、SRAM(static RAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピィディスク、命令が記録されたパンチカード又は溝内の隆起構造物などの機械式コーディングデバイス、及び前述の任意の適切な組み合わせが含まれる。本明細書で使用されるコンピュータ読み取り可能な記憶媒体は、電波又は他の自由に伝播する電磁波、導波管又は他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを介して伝送の電気信号など、一時的信号自身と解釈すべきではない。
本明細書で記載されたコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体から各コンピューティング/処理デバイスにダウンロードされ、又はネットワーク(例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク及び/又は無線ネットワーク)を介して外部のコンピュータ又は外部記憶デバイスにダウンロードされることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び/又はエッジサーバを含んでもよい。各コンピューティング/処理デバイスにおけるネットワークアダプタカード又はネットワークインターフェースが、ネットワークからコンピュータ読み取り可能なプログラム命令を受信し、それらのコンピュータ読み取り可能なプログラム命令を、対応するコンピューティング/処理デバイス内のコンピュータ読み取り可能な記憶媒体に格納するように転送する。
本開示の操作を実行するためのコンピュータ読み取り可能なプログラム命令は、アセンブラ命令、ISA(instruction-set-architecture)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、又は、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び「C」プログラミング言語もしくは類似のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語の任意の組合せで記述されたソースコード又はオブジェクトコードであってもよい。コンピュータ読み取り可能なプログラム命令は、全体がユーザのコンピュータ上で実行され、一部がユーザのコンピュータ上で実行され、スタンドアロンのソフトウェアパッケージとして実行され、一部がユーザのコンピュータ上で実行され一部がリモートコンピュータ上で実行され、又は全体がリモートコンピュータもしくはリモートサーバ上で実行されることが可能である。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)又は広域ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され、あるいは、(例えば、インターネットサービスプロバイダを使用してインターネットを介して)外部のコンピュータに接続されてもよい。いくつかの実施形態において、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電子回路は、本開示の各態様を実行するために、コンピュータ読み取り可能なプログラム命令の状態情報を利用してその電子回路をカスタマイズすることによって、コンピュータ読み取り可能なプログラム命令を実行してもよい。
本開示の態様は、本開示の実施形態にかかる方法、装置(システム)、及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して、本明細書で説明された。フローチャート及び/又はブロック図の各ブロック、ならびにフローチャート及び/又はブロック図におけるブロックの組合せは、コンピュータ読み取り可能なプログラム命令によって実施され得ることを理解されたい。
これらのコンピュータ読み取り可能なプログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されて機械を作り出すことによって、命令がコンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行されると、フローチャート及び/又はブロック図の1つ又は複数のブロックに規定される機能/動作を実施する手段を作成してもよい。これらのコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体に記憶され、コンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスを特定の方法で機能させるように指示することによって、命令が格納されたンピュータ読み取り可能な記憶媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックに規定される機能/動作の態様を実施する命令を含む製造品を備えてもよい。
コンピュータ読み取り可能なプログラム命令は、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードされ、コンピュータ、他のプログラマブル装置、又は他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを作り出すことによって、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックに規定される機能/動作を実施してもよい。
フローチャート及びブロック図は、本発明の様々な実施形態にかかるシステム、方法、及びコンピュータプログラム製品の実施可能なアーキテクチャ、機能、及び動作を示す。これに関して、フローチャート又はブロック図における各ブロックは、指定された論理機能を実施するための1つ又は複数の実行可能な命令を含むモジュール、セグメント、又は命令の部分を表してもよい。いくつかの代替的な実施形態において、ブロックに記載される機能は、図に記載される順序で発生しなくてもよい。例えば、連続して示される2つのブロックが、実際には、実質的に同時実行されてもよく、又は、関与する機能に応じて、時には逆の順序で実行されてもよい。また、ブロック図及び/又はフローチャートの各ブロック、ならびにブロック図及び/又はフローチャートにおけるブロックの組合せは、規定された機能又は動作を実行する専用ハードウェアベースのシステム、もしくは専用ハードウェア命令とコンピュータ命令の組合せによって実施されることができることにも留意されたい。
本開示の様々な実施形態の説明は、網羅すること又は開示された実施形態に限定することなく、例示の目的のみで提供されている。多くの修正および変形は、記述された実施形態の範囲及び精神から逸脱することなく、当業者にとって明らかである。本開示に使用された用語は、実施形態の原理、実際の応用又は市場で発見された技術の改良を最もよく解釈し、あるいは、当業者が本開示の実施形態を理解できるようにするために選択されたものである。