random
説明
例
データからのランダム応答の生成
標本データ セット fisheriris
を読み込みます。
load fisheriris
列ベクトル species
には、3 種類のアヤメの種 (setosa、versicolor、virginica) が格納されています。行列 meas
には、花に関する 4 種類の測定値、がく片の長さと幅 (cm) と花弁の長さと幅 (cm) が格納されています。
測定値を予測子データ、アヤメの種類を応答データとして使用して、多項回帰モデルを当てはめます。
mdl = fitmnr(meas,species);
mdl
は、ノミナル多項回帰モデルをデータに当てはめた結果を含む多項回帰モデル オブジェクトです。
関数rand
を使用して、測定値データに一様分布のランダム ノイズを追加することで新しい予測子データを生成します。
rng("default") % Set the random seed for reproducibility sz = size(meas); measNew = meas + rand(sz);
measNew
の各行が一意のデータ点の予測子データに対応します。
当てはめられたモデルに measNew
を渡して生成される多項分布からサンプリングされたランダム応答値を生成します。
speciesPred = random(mdl,measNew)
speciesPred = 150x1 cell
{'versicolor'}
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'versicolor'}
{'setosa' }
{'versicolor'}
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'versicolor'}
{'setosa' }
{'versicolor'}
{'setosa' }
{'versicolor'}
{'setosa' }
{'versicolor'}
{'setosa' }
{'setosa' }
{'setosa' }
{'setosa' }
{'versicolor'}
{'setosa' }
{'setosa' }
{'versicolor'}
⋮
元の応答データを表示します。
species
species = 150x1 cell
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
{'setosa'}
⋮
speciesPred
と species
の出力から、speciesPred
のランダムに生成された応答の大部分は species
の元の応答ラベルと一致していることがわかります。speciesPred
と species
の違いは measNew
と meas
の違いによるもので、予測子データに関連付けられた多項分布から speciesPred
の値をサンプリングするランダム性も影響しています。
各多項分布からの複数の応答のサンプリング
標本データ セット fisheriris
を読み込みます。
load fisheriris
列ベクトル species
には、3 種類のアヤメの種 (setosa、versicolor、virginica) が格納されています。行列 meas
には、花に関する 4 種類の測定値、がく片の長さと幅 (cm) と花弁の長さと幅 (cm) が格納されています。
測定値を予測子データ、アヤメの種類を応答データとして使用して、多項回帰モデルを当てはめます。
mdl = fitmnr(meas,species);
mdl
は、ノミナル多項回帰モデルをデータに当てはめた結果を含む多項回帰モデル オブジェクトです。
関数rand
を使用して、測定値データに一様分布のランダム ノイズを追加することで新しい予測子データを生成します。
rng("default") % Set the random seed for reproducibility sz = size(meas); measNew = meas + 5*rand(sz);
measNew
の各行が一意のデータ点の予測子データに対応します。
当てはめられたモデルに measNew
を渡して生成される多項分布からサンプリングされたランダム応答値を生成します。measNew
の各データ点について、対応する多項分布から 100 個の標本を生成し、結果をカウントの table で返します。
speciesPred = random(mdl,measNew,100,"counts")
speciesPred=150×3 table
setosa versicolor virginica
______ __________ _________
0 31 69
100 0 0
0 100 0
0 100 0
0 100 0
0 78 22
0 100 0
0 0 100
0 98 2
100 0 0
0 100 0
0 0 100
0 0 100
0 100 0
0 100 0
0 0 100
⋮
table speciesPred
の各行が measNew
のデータ点に対応し、各 table 変数が応答カテゴリに対応します。speciesPred
の要素は、それぞれの種類のサンプリング回数を示します。
入力引数
mdl
— 多項回帰モデル オブジェクト
MultinomialRegression
モデル オブジェクト
多項回帰モデル オブジェクト。関数 fitmnr
で作成される MultinomialRegression
モデル オブジェクトとして指定します。
XNew
— 新しい予測子の入力値
テーブル | n 行 p 列の行列
新しい予測子の入力値。table または n 行 p 列の行列として指定します。ここで、n は新しい観測値の数、p は mdl
の当てはめに使用された予測子変数の数です。
XNew
が table の場合、mdl
の当てはめに使用されたすべての予測子の名前を含める必要があります。予測子の名前はmdl.PredictorNames
プロパティで確認できます。XNew
が行列の場合、推定された係数と同じ数の列を含める必要があります。推定された係数の数はmdl.NumPredictors
プロパティで確認できます。XNew
を行列として指定できるのは、mdl.PredictorNames
のすべての名前が数値予測子を参照する場合のみです。
例: random(mdl,[5.8 2.7; 5.7 2.5])
は、2 つの予測子のモデル mdl
をクエリ点 xq1 = [5.8 2.7]
および xq2 = [5.7 2.5]
で評価して与えられる各多項分布からシミュレートされた応答を生成します。
データ型: single
| double
| table
NumTrials
— シミュレートする試行回数
1 (既定値) | 正の整数スカラー
XNew
の各データ点についてシミュレートする試行回数。正の整数スカラーとして指定します。
データ型: single
| double
type
— シミュレートされた応答を返すタイプ
"samples"
(既定値) | "counts"
シミュレートされた応答を返すタイプ。"samples"
または "counts"
として指定します。シミュレートされた応答値をクラス ラベルの cell 配列として返すには、type
を "samples"
として指定します。シミュレートされた応答値を各応答カテゴリのカウントの table として返すには、type
を "counts"
として指定します。
データ型: char
| string
出力引数
Ysim
— シミュレートされた応答
r 行 m 列のカテゴリ ラベルの cell 配列 | r 行 N 列のカウントの table
アルゴリズム
関数 random
は、当てはめられた多項回帰モデル オブジェクト mdl
を使用して、XNew
の各データ点の応答カテゴリ確率を計算します。それぞれの確率のセットで、対応する予測子データの応答値を関数でサンプリングする多項分布が定義されます。
バージョン履歴
R2023a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)