メインコンテンツ

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

cordexch

R2026a

座標交換 D 最適計画

説明

dCE = cordexch(nfactors,nruns) は、nfactors 個の因子に対する実行回数が nruns 回の D 最適計画を含む数値行列 dCE を返します。この計画は、定数項をもつ線形加法モデルに対するものです。既定では、各因子には 2 つの水準があります。dCE の各行 (実行) には、計画内の各因子の設定が含まれ、これは座標交換アルゴリズム (アルゴリズムを参照) を使用して cordexch によって生成されます。

例

dCE = cordexch(nfactors,nruns,modelspec) は、modelspec で指定された項をもつ D 最適計画を返します。

例

dCE = cordexch(___,Name=Value) では、前の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、各因子の上限と下限や、カテゴリカル因子のインデックスを指定できます。

例

[dCE,X] = cordexch(___) は、計画行列 X を追加で返します。この行列の列は dCE の各行で評価されるモデル項です。

例

例

すべて折りたたむ

3 因子の線形加法モデルに対する 5 回の実行の D 最適計画を生成します。

dCE = cordexch(3,5)
dCE = 5×3

    -1    -1    -1
     1    -1     1
    -1     1     1
     1     1    -1
     1     1     1

dCE の各行には実行の因子の設定が含まれます。既定では、各因子には 2 つの水準があります。

3 つの因子と 5 つの項をもつ以下のモデルのパラメーターを推定するために 9 回の実行の D 最適計画を生成します。

y=β0+β1X1+β2X2+β13X1X3+β23X2X32+ϵ

dCE = cordexch(3,9,[0 0 0; 1 0 0; 0 1 0; 1 0 1; 0 1 2])
dCE = 9×3

     1     1     1
     1    -1    -1
    -1     1     1
     1     1    -1
     1    -1     1
    -1     1    -1
    -1    -1     0
    -1    -1    -1
    -1     1     0

dCE の各行には実行の因子の設定が含まれます。因子 X1 と X2 には 2 つの水準、因子 X3 には 3 つの水準があります。既定では、各因子の水準の数は 1+ モデル項の最大指数として設定されます。

2 因子の純粋な 2 次モデルのパラメーターを推定するために 10 回の実行の D 最適計画を生成します。最初の因子には水準 1、2、および 3 があり、2 番目の因子には水準 –1、0、および 1 があります。

dCE = cordexch(2,10,"purequadratic",Bounds={[1,2,3],[-1,0,1]})
dCE = 10×2

     2    -1
     1    -1
     1     1
     3    -1
     2     1
     1     0
     2     0
     3     0
     3     1
     1     0

dCE の各行には実行の因子の設定が含まれます。

以下の 3 因子、7 項の交互作用モデルのパラメーターを推定するために D 最適計画を生成します。

y=β0+β1X1+β2X2+β3X3+β12X1X2+β13X1X3+β23X2X3+ϵ

10 個の異なる初期開始点を使用して最適な D 最適計画を求め、計画行列を返すように指定します。

[dCE,X] = cordexch(3,7,"interactions",NumTries=10)
dCE = 7×3

    -1     1     1
     1     1     1
    -1    -1     1
    -1    -1    -1
     1    -1     1
    -1     1    -1
     1    -1    -1

X = 7×7

     1    -1     1     1    -1    -1     1
     1     1     1     1     1     1     1
     1    -1    -1     1     1    -1    -1
     1    -1    -1    -1     1     1     1
     1     1    -1     1    -1     1    -1
     1    -1     1    -1    -1     1    -1
     1     1    -1    -1    -1    -1     1

計画 dCE の各行には実行の因子の設定が含まれます。既定では、各因子には 2 つの水準があります。

計画行列 X の列は、dCE の各行で評価されたモデル項です。これらの項は、左から右への順で現れ、定数項 (β0)、線形項 (係数が β1、β2、β3)、交互作用項 (係数が β12、β13、β23) です。

入力引数

すべて折りたたむ

計画の因子数。正の整数スカラーとして指定します。

例: 3

データ型: single | double

計画の実行数。非負の整数スカラーとして指定します。

例: 5

データ型: single | double

モデル項。次の表の値または数値行列として指定します。

値モデルの内容
"linear" または "additive" (既定の設定)定数項および線形項
"interactions"定数項、線形項および交互作用項
"quadratic"定数項、線形項、交互作用項および 2 乗項
"purequadratic"定数項、線形項および 2 乗項

modelspec を数値行列として指定する場合、因子ごとに 1 つの列とモデルの多項式の項ごとに 1 つの行が必要です。各行のエントリは列の因子の指数です。たとえば、モデルに因子 X1、X2、および X3 が含まれている場合、modelspec の行 [0 1 2] によって X10X21X32 項が指定されます。modelspec のすべてがゼロの行は定数項を示します。

データ型: single | double | char | string

名前と値の引数

すべて折りたたむ

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: cordexch(2,5,NumLevels=3) は、2 因子の線形加法モデルに対する 5 回の実行の D 最適計画を生成します。各因子には 3 つの水準があります。

D 最適計画の重複行を回避するためのフラグ。数値または logical の 0 (false) または 1 (true) として指定します。AvoidDuplicates=true を設定し、cordexch が重複していない実行を計算する場合、D 最適計画の行は一意です。AvoidDuplicates が false (既定) の場合、cordexch は重複行の計算を回避しません。

例: AvoidDuplicates=true

データ型: logical

各因子の上限と下限。2 行 nfactors 列の数値行列、または nfactors 個の要素の cell 配列として指定します。行列の場合、1 行目には下限が、2 行目には上限が格納されます。cell 配列の場合、各要素には、対応する因子の許容範囲値のベクトルが格納されます。Bounds が cell 配列の場合、cordexch は NumLevels の値を無視します。

例: Bounds=[0 0; 2 1]

例: Bounds={[0 1 2],[0 1]}

データ型: single | double | cell

カテゴリカル因子のインデックス。正の整数の数値ベクトルとして指定します。既定では、cordexch はカテゴリカル因子に対して 2 つの水準 (1 および 2) を設定します。

例: CategoricalVariables=[1 3]

データ型: single | double

固定共変量の値。nruns 行の数値行列として指定します。Covariates の各列に計画の固定共変量因子の値が格納されます。

メモ

dcovary 関数を使用して固定共変量因子をもつ D 最適計画を生成することもできます。

例: [1 1; 0 1; 0 -1]

データ型: single | double

反復カウンター ウィンドウを表示するフラグ。"on" または "off" として指定します。このウィンドウには、計算中の試行回数 (NumTries を参照) と反復回数が表示されます。

例: Display="off"

データ型: char | string

不要な実行を除外する関数。関数ハンドルとして指定します。関数が f の場合、b = f(S) という構文に対応しなければなりません。ここで、S は k 行 nfactors 列の行列です。b は k 個のブール値のベクトルです。b(i) は、S の i 番目の行が除外されている場合 true です。

例: ExcludeFcn=@excludefun

データ型: function_handle

固定計画。nfactors 列の数値行列として指定します。cordexch は、nruns 個の行を D が最適となるように FixedRows の行に追加します。

メモ

daugment 関数を使用して D が最適となるように固定計画に行を追加することもできます。

例: FixedRows=[1 -1 1; -1 -1 1; 1 1 -1]

データ型: single | double

初期計画行列。nruns 行 nfactors 列の数値行列として指定します。既定の設定は、無作為に選択された実行の集合です。

例: InitialDesign=[-1 0 1; 0 1 1; 0 -1 1]

データ型: single | double

座標交換アルゴリズムでの試行ごとの最大反復回数。正の整数スカラーとして指定します。詳細については、アルゴリズムを参照してください。

例: MaxIterations=20

データ型: single | double

各因子の水準の数。1 より大きい整数スカラー、または 1 より大きい整数の 1 行 nfactors 列の数値ベクトルとして指定します。Bounds を cell 配列として指定すると、cordexch は NumLevels の値を無視します。NumLevels の既定値は、modelspec の値に応じて変化します。

modelspec の値NumLevels の既定値
"linear" または "additive" (既定の設定)2
"interactions"2
"quadratic"3
"purequadratic"3

modelspec を数値行列として指定した場合、各因子の既定の水準の数は、1 + その因子の modelspec の最大指数です。CategoricalVariables でインデックスを指定した因子はすべて、既定で 2 つの水準 (1 および 2) をもちます。

メモ

AvoidDuplicates=true を指定すると、すべての非カテゴリカル因子について、計画の重複行を回避するために必要に応じてさらに水準が追加されます。

例: NumLevels=[2 3]

データ型: single | double

新しい初期計画行列を開始点として D 最適計画を生成するための試行回数。正の整数スカラーとして指定します。NumTries > 1 の場合に InitialDesign を指定すると、cordexch は最初の試行に InitialDesign を使用し、後続の試行では無作為に選択された実行の集合を使用します。

ヒント

NumTries=1 の場合、cordexch はローカルな D 最適計画を生成することがあります。NumTries に指定する値を大きくすると、グローバルな D 最適計画が返されます。詳細については、アルゴリズムを参照してください。

例: NumTries=3

データ型: single | double

並列計算と乱数ストリーム設定のオプション。構造体として指定します。statset を使用して Options 構造体を作成します。次の表は、オプションのフィールドとその値の一覧です。

フィールド名値既定の設定
UseParallel並列計算を行う場合は、この値を true に設定します。false
UseSubstreams

再現可能な方法で計算する場合は、この値を true に設定します。

再現性のある計算を行うには、Streams をサブストリームを許可する型 ("mlfg6331_64" または "mrg32k3a") に設定します。

false
StreamsRandStream オブジェクトまたはそのようなオブジェクトの cell 配列としてこの値を指定します。UseParallel の値が true でなく、UseSubstreams の値も false でない場合、単一オブジェクトを使用します。この場合は、並列プールと同じサイズの cell 配列を使用します。Streams を指定しなかった場合、cordexch は既定のストリームを使用します。

メモ

並列計算を行うには、Parallel Computing Toolbox™ が必要です。

例: Options=statset(UseParallel=true,UseSubstreams=true,Streams=RandStream("mlfg6331_64"))

データ型: struct

出力引数

すべて折りたたむ

modelspec の D 最適計画。p 列の数値行列として返されます。ここで、p は nfactors に Covariates (指定されている場合) の列数を加えた数になります。dCE には、FixedRows (指定されている場合) の行に続いて、nruns 個の追加行が格納されます。dCE の各行 (実行) には、計画内の各因子の設定が含まれ、これは座標交換アルゴリズムを使用して cordexch によって生成されます。

計画行列。nruns 行の数値行列として返されます。X の列数は、modelspec の値に応じて変化します。

modelspec を "quadratic" または定数項、線形項、交互作用項、2 乗項を含む数値行列として指定した場合、X の列は順番に次のようになります。

  1. 定数項

  2. 線形項 (1, 2, ..., nfactors の順)

  3. 交互作用項 ((1, 2), (1, 3), ..., (1, nfactors), (2, 3), ..., (nfactors – 1, nfactors) の順)

  4. 2 乗項 (1, 2, ..., nfactors の順)

modelspec に対してその他の名前付きの値を指定した場合、X には、これらの項のサブセットが同じ順序で格納されます。

アルゴリズム

cordexch と rowexch はどちらも、各反復で D = |XTX| を増加させるように、初期計画行列 X を増加するように変更する反復探索アルゴリズムを使用します。これら両方のアルゴリズムでは、初期の計画の選択と、漸進的変化の選択にランダム性が組み込まれます。結果として、両方のアルゴリズムは、グローバルな D 最適計画ではなくローカルな D 最適計画を返すことがあります。各アルゴリズムを複数回実行し、最終的な計画に対する最適な結果を選択します。この反復と比較を自動化するには、いずれかの関数の名前と値の引数 NumTries を設定します。

rowexch が使用する行交換アルゴリズムとは異なり、cordexch が使用する座標交換アルゴリズムは候補セットを使用しません。代わりに、計画空間全体が候補セットです。各ステップにおいて、座標交換アルゴリズムは、計画空間の隣接した点で評価した X の 1 つの要素を新しい要素と交換します。候補セットがないので、メモリへの要求は少なくなりますが、検索の規模が小さくなるので、座標交換アルゴリズムはローカルな最小値に陥る傾向があります。

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する