メインコンテンツ

candexch

R2026b

行交換を使用した候補セットによる D 最適計画

説明

rlist = candexch(C,nrows) は、行交換アルゴリズムを使用して、候補セット C から D 最適計画を選択します。

例

rlist = candexch(C,nrows,Name=Value) は、1 つ以上の名前と値の引数で指定された追加オプションを使用して、D 最適計画を生成します。

例

すべて折りたたむ

制限がある候補セットを定義します。

F = (fullfact([5 5 5])-1)/4; % Factor settings in a unit cube
T = sum(F,2)<=1.51;          % Find rows matching a restriction
F = F(T,:);                  % Take only those rows
C = [ones(size(F,1),1) F F.^2]; 

定数項とすべての二乗項を含むモデル項を計算します。候補セットに制限があるため、関数 rowexch の代わりに関数 candexch を使用します。

R = candexch(C,12);         % Find a D-optimal 12-run subset
X = F(R,:);                 % Get factor settings

入力引数

すべて折りたたむ

候補セット。N 行 P 列のサイズの行列として指定します。候補セットには、N の各実行における P のモデル項の値が格納されます。

計画で必要な行数。正の整数として指定します。

名前と値の引数

すべて折りたたむ

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

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、、Name を引用符で囲みます。

例: rlist = candexch(C,nrows,MaxIterations=7) は、最大反復回数を 7 と指定します。

candexch が重複行の計算を回避するためのフラグ。数値または logical の 1 (true) または 0 (false) として指定します。AvoidDuplicates が true であり、candexch が重複していない実行を計算できる場合、rlist の行は一意です。AvoidDuplicates が false の場合、関数は重複行の計算を回避しません。

例: AvoidDuplicates=true

データ型: single | double | logical

反復回数の表示。"on" または "off" として指定します。既定では、名前と値の引数 Options の UseParallel フィールドが "on" または "auto" である場合を除き、candexch 関数は反復回数を表示します。

初期計画。nrows 行 P 列のサイズの数値行列として指定します。ここで、P は C の列数です。既定では、関数 candexch は C の行のランダムなサブセットを初期計画として使用します。

最大反復回数。正の整数を指定します。

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

フィールド名値既定の設定
UseParallel

並列計算を行う場合は、この値を "auto" または "on" に設定します。"auto" を指定した場合、利用可能な並列プールがあれば MATLAB® はそれを使用し、利用できない場合は逐次実行します。"on" を指定した場合、利用可能な並列プールがあれば MATLAB はそれを使用し、利用できない場合はエラーをスローします。

"off"
UseSubstreams

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

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

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

メモ

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

R2026b より前: 並列計算を行うには、UseParallel を true に設定します。

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

データ型: struct

要因設定。nobs 行 P 列のサイズの数値行列として指定します。ここで、nobs は固定の計画実行の数であり、P は C の列数です。candexch は、FixedRows の計画に追加する nrows の追加行を検出します。

新しい開始点から計画の生成を試行する回数。正の整数として指定します。このアルゴリズムでは、最初の試行を除いて、各試行で無作為な点を使用します。

出力引数

すべて折りたたむ

選択された行。長さ nrows のベクトルとして返されます。

アルゴリズム

candexch は、開始設計 X を無作為に選択し、行交換アルゴリズムを使用して X の行を C の行に置き換えて、X'*X の判別が向上するように試行します。

代替方法

rowexch 関数はさらに、行交換アルゴリズムを使用して D 最適計画を生成しますが、指定されたモデルに適切な候補セットを自動的に生成します。

daugment 関数は、座標交換アルゴリズムを使用して固定の計画実行のセットを拡張します。名前と値の引数 FixedRows は、行交換アルゴリズムを使用して同じ機能を提供します。

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する