Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

covariateSurvivalModel

残存耐用期間を推定する比例ハザード生存モデル

説明

covariateSurvivalModel は、コンポーネントの残存耐用期間 (RUL) を比例ハザード生存モデルを使用して推定するために使用します。このモデルは、コンポーネントの寿命に関する履歴情報と関連する共変量を使用してテスト コンポーネントの生存確率を示します。共変量は環境変数または説明変数で、コンポーネントの製造元や動作状態などがあります。共変量生存モデルは、同じ仕様で製造された複数のマシンなどの類似コンポーネントのアンサンブルに関する故障時間と関連する共変量のデータしかない場合に便利です。生存モデルの詳細については、比例ハザード生存モデルを参照してください。

特定のタイプのコンポーネントの covariateSurvivalModel オブジェクトを構成するには、fit を使用します。これにより、故障時間データと関連する共変量の集合を使用してモデルの係数が推定されます。共変量生存モデルのパラメーターを構成した後、類似コンポーネントの残存耐用期間を predictRUL を使用して予測できます。RUL 予測の基本的な例については、データの着信に応じた RUL 予測の更新を参照してください。

寿命の測定値のみがあり、共変量の情報がない場合は、reliabilitySurvivalModel を使用します。

残存耐用期間の予測に関する一般的な情報については、残存耐用期間を予測するモデルを参照してください。

作成

説明

mdl = covariateSurvivalModel は、RUL を推定するための共変量生存モデルを作成し、既定の設定でモデルを初期化します。

mdl = covariateSurvivalModel(initModel) は、共変量生存モデルを作成し、既存の covariateSurvivalModel オブジェクト initModel を使用してモデルのパラメーターを初期化します。

mdl = covariateSurvivalModel(___,Name,Value) は、ユーザー設定可能なモデル プロパティを、名前と値のペアで指定します。たとえば、covariateSurvivalModel('LifeTimeUnit',"days") は、日数をライフタイムの単位として使用する共変量生存モデルを作成します。複数の名前と値のペアを指定できます。各プロパティ名を引用符で囲みます。

入力引数

すべて展開する

共変量生存モデル。covariateSurvivalModel オブジェクトとして指定します。

プロパティ

すべて展開する

この プロパティ は読み取り専用です。

生存モデルのベースラインのハザード率。2 列の配列として指定し、関数 fit で推定します。2 列目にベースラインの生存時間関数の値が含まれ、1 列目に対応するライフタイム値が含まれます。

生存モデルの詳細については、比例ハザード生存モデルを参照してください。

EncodedVariables のカテゴリカル特徴の符号化手法。次のいずれかとして指定します。

  • "dummy" — N 個のカテゴリがあるカテゴリカル特徴について、(N - 1) ビットを使用して変数を符号化します。

  • "binary" — バイナリ符号化

次の場合に、EncodingMethod を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

コックス回帰のパラメーターの計算時に共変量の特徴を標準化するためのフラグ。logical 値として指定します。Standardizetrue の場合、共変量 X(X-mean(X))/std(X) になるように数値の共変量変数が標準化されます。

標準化は、符号化されたカテゴリカル変数には影響しません。

次の場合に、Standardize を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

同順位の故障時間を扱う方法。"breslow" または "efron" のいずれかとして指定します。これらの方法の詳細については、コックス比例ハザード モデルを参照してください。

次の場合に、Ties を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

コックス回帰の数値と表示の設定。statset('coxphfit') を使用して作成された構造体として指定します。構造体に含まれるオプションはドット表記を使用して変更できます。

次の場合に、Options を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

この プロパティ は読み取り専用です。

生存モデルの共変量乗算係数。スカラーとして指定し、関数 fit で推定します。生存モデルの詳細については、比例ハザード生存モデルを参照してください。

この プロパティ は読み取り専用です。

共変量乗算係数の共分散。係数の数と等しいサイズの正の配列として指定し、関数 fit で推定します。

この プロパティ は読み取り専用です。

共変量乗算係数の名前。string 配列として指定し、モデルに学習させるときに関数 fit を使用して割り当てます。

数値の共変量に対応する係数は、DataVariables の対応するデータ変数と同じ名前になります。符号化された変数の場合は、係数の名前に EncodedVariables の対応する符号化変数の名前と符号化ビット順序の表現が含まれます。

打ち切り変数。有効な MATLAB® 変数名を含む string として指定します。打ち切り変数は、data のどの寿命測定値が耐用寿命末期の値でないかを示す 2 値変数です。

CensorVariable は、DataVariables または LifeTimeVariable のいずれの string とも一致してはなりません。

次の場合に、CensorVariable を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • 関数 fit を呼び出す際の引数として使用する

  • モデル作成後にドット表記を使用する

ライフタイム変数。有効な MATLAB 変数名を含む string として指定します。生存モデルの場合、コンポーネントの過去の寿命測定値がライフタイム変数に格納されます。

次の場合に、LifeTimeVariable を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • 関数 fit を呼び出す際の引数として使用する

  • 手動でドット表記を使用する

ライフタイム変数の単位。string として指定します。

ライフタイム変数の単位は時間ベースとする必要はありません。テスト コンポーネントの寿命は、走行距離 (マイル) や消費燃料 (ガロン) などの使用量変数で測定できます。

共変量データ変数。string または string 配列として指定します。DataVariables の string は、有効な MATLAB 変数名でなければなりません。共変量は環境変数または説明変数とも呼ばれます。

次の場合に、DataVariables を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • 関数 fit を呼び出す際の引数として使用する

  • モデル作成後にドット表記を使用する

符号化された共変量変数。string または string 配列として指定します。EncodedVariables の string は、有効な MATLAB 変数名でなければなりません。符号化された変数は、通常は非数値のカテゴリカル特徴で、fit で当てはめる前に数値ベクトルに変換されます。少数のセットから値を取る logical 値または数値を符号化の対象として指定することもできます。

符号化の方法を指定するには、EncodingMethod を使用します。

次の場合に、EncodedVariables を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • 関数 fit を呼び出す際の引数として使用する

  • モデル作成後にドット表記を使用する

EncodedVariables の string は、DataVariables の string のサブセットでなければなりません。

記録用のその他のモデル情報。任意のデータ型またはデータ形式として指定します。モデルでは、この情報を使用しません。

次の場合に、UserData を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

オブジェクト関数

predictRULテスト コンポーネントの残存耐用期間を推定
fit履歴データを使用して残存耐用期間モデルのパラメーターを推定
plot共変量残存耐用期間モデルの生存時間関数のプロット

すべて折りたたむ

学習データを読み込みます。

load('covariateData.mat')

このデータには、電池の放電時間や関連する共変量情報が含まれています。共変量変数は以下のとおりです。

  • 温度

  • 負荷

  • 製造元

製造元情報は、符号化する必要があるカテゴリカル変数です。

共変量生存モデルを作成します。

mdl = covariateSurvivalModel;

学習データを使用して、ライフタイム変数、データ変数、符号化された変数を指定し、生存モデルに学習させます。この学習データには打ち切り変数がありません。

fit(mdl,covariateData,"DischargeTime",["Temperature","Load","Manufacturer"],[],"Manufacturer")
Successful convergence: Norm of gradient less than OPTIONS.TolFun

モデルのベースラインの生存時間関数をプロットします。

plot(mdl)

Figure contains an axes object. The axes object with title Survival Function Plot, xlabel Time, ylabel S(t) contains an object of type stair. This object represents Baseline Survival Function.

学習データを読み込みます。

load('covariateData.mat')

このデータには、電池の放電時間や関連する共変量情報が含まれています。共変量変数は以下のとおりです。

  • 温度

  • 負荷

  • 製造元

製造元情報は、符号化する必要があるカテゴリカル変数です。

共変量生存モデルを作成し、学習データを使用して学習させます。

mdl = covariateSurvivalModel('LifeTimeVariable',"DischargeTime",'LifeTimeUnit',"hours",...
   'DataVariables',["Temperature","Load","Manufacturer"],'EncodedVariables',"Manufacturer");
fit(mdl,covariateData)
Successful convergence: Norm of gradient less than OPTIONS.TolFun

たとえば、製造元が B 社で、30 時間稼働したバッテリー パックがあるとします。使用時間 DischargeTime、測定された周囲温度 TestAmbientTemperature、電流 TestBatteryLoad を含むテスト データ table を作成します。

TestBatteryLoad = 25;
TestAmbientTemperature = 60; 
DischargeTime = hours(30);
TestData = timetable(TestAmbientTemperature,TestBatteryLoad,"B",'RowTimes',hours(30));
TestData.Properties.VariableNames = {'Temperature','Load','Manufacturer'};
TestData.Properties.DimensionNames{1} = 'DischargeTime';

バッテリーの RUL を予測します。

estRUL = predictRUL(mdl,TestData)
estRUL = duration
   38.332 hr

バッテリーの共変量データの生存時間関数をプロットします。

plot(mdl,TestData)

Figure contains an axes object. The axes object with title Survival Function Plot, xlabel Time, ylabel S(t) contains 2 objects of type stair. These objects represent Baseline Survival Function, Current Survival Function.

アルゴリズム

すべて展開する

拡張機能

バージョン履歴

R2018a で導入