メインコンテンツ

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

rowexch

R2026a

説明

dRE = rowexch(nfactors,nruns) は、行交換アルゴリズム (アルゴリズム を参照) を使用して、nfactors 因子 (dRE の列) をもつ線形加法モデルのnruns 回の実行 (dRE の行) をもつ D 最適計画 dRE を生成します。モデルには、定数項が含まれています。

例

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

例

dRE = rowexch(___,Name=Value) では、前述の構文におけるいずれかの入力引数の組み合わせに加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、計画を生成する際の開始点の最大数や、並列で計算するかどうかを指定できます。

例

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

例

例

すべて折りたたむ

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

dRE = rowexch(3,5)
dRE = 5×3

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

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

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

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

[dRE,X] = rowexch(3,7,"interactions")
dRE = 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

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

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

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

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

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

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

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

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

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

[dRE,X] = rowexch(3,7,"interactions",NumTries=10)
dRE = 7×3

   -1.0000    1.0000    1.0000
   -1.0000    1.0000   -1.0000
   -1.0000   -1.0000    1.0000
   -1.0000   -1.0000   -1.0000
    1.0000   -1.0000    1.0000
    1.0000   -1.0000   -1.0000
    1.0000    1.0000   -0.5000

X = 7×7

    1.0000   -1.0000    1.0000    1.0000   -1.0000   -1.0000    1.0000
    1.0000   -1.0000    1.0000   -1.0000   -1.0000    1.0000   -1.0000
    1.0000   -1.0000   -1.0000    1.0000    1.0000   -1.0000   -1.0000
    1.0000   -1.0000   -1.0000   -1.0000    1.0000    1.0000    1.0000
    1.0000    1.0000   -1.0000    1.0000   -1.0000    1.0000   -1.0000
    1.0000    1.0000   -1.0000   -1.0000   -1.0000   -1.0000    1.0000
    1.0000    1.0000    1.0000   -0.5000    1.0000   -0.5000   -0.5000

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

計画行列 X の列は、dRE の各行で評価されたモデル項です。これらの項は、左から右への順で現れ、定数項 (β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 は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

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

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

例: AvoidDuplicates=true

データ型: logical

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

例: Bounds=[0 0; 2 1]

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

データ型: single | double | cell

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

例: CategoricalVariables=[1 3]

データ型: 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

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

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

データ型: single | double

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

例: MaxIterations=20

データ型: single | double

各因子の水準の数。1 より大きい整数スカラー、または 1 より大きい整数の 1 行 nfactors 列の数値ベクトルとして指定します。Bounds を cell 配列として指定すると、rowexch は 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 を指定すると、rowexch は最初の試行に InitialDesign を使用し、後続の試行では無作為に選択された実行の集合を使用します。

ヒント

NumTries=1 の場合、rowexch はローカルな 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 を指定しなかった場合、rowexch は既定のストリームを使用します。

メモ

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

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

データ型: struct

出力引数

すべて折りたたむ

modelspec の D 最適計画。nruns 行 nfactors 列の数値行列として返されます。dRE の各行 (実行) には、計画内の各因子の設定が含まれ、これは行交換アルゴリズムを使用して rowexch によって生成されます。

計画行列。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 を設定します。

各反復において、行交換アルゴリズムは、X の行全体を、実行可能な処理の候補セットにおいて評価された計画行列 C の行と交換します。rowexch 関数は、candgen 関数と candexch 関数を順に呼び出すことによって 2 ステップで動作し、指定したモデルに適切な計画行列を自動的に作成します。candexch を直接呼び出すことによって、ユーザー独自の C を提供します。いずれの場合も、C が大きい場合は、そのメモリ内に静的に存在すると、計算速度に影響を及ぼすことがあります。

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する