rowexch
R2026b行交換 D 最適計画
構文
説明
例
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 最適計画を生成します。
[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 つの水準があります。既定では、各因子の水準の数は モデル項の最大指数として設定されます。
計画行列 X の列は、計画 dRE の各行で評価されたモデル項です。これらの項は、左から右への順に、定数項 ()、線形項 (、、)、交互作用項 (、、) です。
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 最適計画を生成します。
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
-0.5000 1.0000 -1.0000
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 -0.5000 1.0000 -1.0000 -0.5000 0.5000 -1.0000
計画 dRE の各行には 1 回の実行の因子の設定が含まれます。既定では、各因子には 2 つの水準があります。
計画行列 X の列は、dRE の各行で評価されたモデル項です。これらの項は、左から右への順で現れ、定数項 ()、線形項 (係数が 、、)、交互作用項 (係数が 、、) です。
入力引数
計画の因子数。正の整数スカラーとして指定します。
例: 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
カテゴリカル因子のインデックス。正の整数の数値ベクトルとして指定します。既定では、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
行交換アルゴリズムでの試行ごとの最大反復回数。正の整数スカラーとして指定します。詳細については、アルゴリズムを参照してください。
例: 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 | 並列計算を行う場合は、この値を | "off" |
UseSubstreams | 再現可能な方法で計算する場合は、この値を 再現性のある計算を行うには、 | false |
Streams | RandStream オブジェクトまたはそのようなオブジェクトの cell 配列としてこの値を指定します。UseParallel の値が "on" でも "auto" でもなく、UseSubstreams の値も false でない場合、単一オブジェクトを使用します。この場合は、並列プールと同じサイズの cell 配列を使用します。 | Streams を指定しなかった場合、rowexch は既定のストリームを使用します。 |
メモ
並列計算を行うには、Parallel Computing Toolbox™ が必要です。
R2026b より前: 並列計算を行うには、UseParallel を true に設定します。
例: Options=statset(UseParallel="auto",UseSubstreams=true,Streams=RandStream("mlfg6331_64"))
データ型: struct
出力引数
計画行列。nruns 行の数値行列として返されます。X の列数は、modelspec の値に応じて変化します。
modelspec を "quadratic" または定数項、線形項、交互作用項、2 乗項を含む数値行列として指定した場合、X の列は順番に次のようになります。
定数項
線形項 (1, 2, ...,
nfactorsの順)交互作用項 ((1, 2), (1, 3), ..., (1,
nfactors), (2, 3), ..., (nfactors– 1,nfactors) の順)2 乗項 (1, 2, ...,
nfactorsの順)
modelspec に対してその他の名前付きの値を指定した場合、X には、これらの項のサブセットが同じ順序で格納されます。
アルゴリズム
cordexch と rowexch はどちらも、各反復で D = |XTX| を増加させるように、初期計画行列 X を増加するように変更する反復探索アルゴリズムを使用します。これら両方のアルゴリズムでは、初期の計画の選択と、漸進的変化の選択にランダム性が組み込まれます。結果として、両方のアルゴリズムは、グローバルな D 最適計画ではなくローカルな D 最適計画を返すことがあります。各アルゴリズムを複数回実行し、最終的な計画に対する最適な結果を選択します。この反復と比較を自動化するには、いずれかの関数の名前と値の引数 NumTries を設定します。
各反復において、行交換アルゴリズムは、X の行全体を、実行可能な処理の候補セットにおいて評価された計画行列 C の行と交換します。rowexch 関数は、candgen 関数と candexch 関数を順に呼び出すことによって 2 ステップで動作し、指定したモデルに適切な計画行列を自動的に作成します。candexch を直接呼び出すことによって、ユーザー独自の C を提供します。いずれの場合も、C が大きい場合は、そのメモリ内に静的に存在すると、計算速度に影響を及ぼすことがあります。
拡張機能
rowexch 関数は自動並列サポートに対応しています。計算を並列実行するには、Options の名前と値の引数を指定し、statset を使用してオプション構造体の UseParallel フィールドを "on" または "auto" に設定します。
Options=statset(UseParallel="auto")
詳細については、自動並列サポートを使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入Options の名前と値の引数の UseParallel フィールドでは、従来の true または false の代わりに、"off"、"auto"、または "on" を指定できるようになりました。この変更により、並列実行で並列プールを使用するタイミングをより細かく制御できます。UseParallel フィールドを true または false として指定することは非推奨です。
目的に応じてコードを更新する方法を次の表に示します。
| 目的 | 非推奨 | 推奨 |
|---|---|---|
MATLAB クライアントで実行されるコードを作成する。 | Options=statset(UseParallel=false) | Options=statset(UseParallel="off") |
| 並列プール上で実行され、並列プールが利用できない場合は MATLAB クライアントで実行される、移植可能なコードを作成する。 | Options=statset(UseParallel=true) | Options=statset(UseParallel="auto") |
| 並列プール上で実行され、並列プールが利用できない場合はエラーを返すコードを作成する。 | 該当なし | Options=statset(UseParallel="on") |
true 値、および false 値のサポートを削除する予定はありません。
rowexch を使用して D 最適計画を拡張する際に重複行を回避するかどうかを指定できます。名前と値の引数 AvoidDuplicates を使用して、可能な場合は、追加の実行で重複行を回避します。
rowexch で、名前と値の引数の名前が更新されました。より直観的な次の名前がサポートされるようになりました。
BoundsCategoricalVariablesNumLevels
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)