メインコンテンツ

andrewsplot

アンドリュース プロット

    説明

    andrewsplot(X) は、行列 X に多変量データのアンドリュース プロットを作成します。このプロットは、X 内の各観測値の連続的な曲線を表示します。詳細については、アンドリュース プロットを参照してください。

    andrewsplot(X,Name=Value) は、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、プロットの前に X 内のデータを標準化したり、グループ化変数を使用してデータをグループ化したりできます。

    andrewsplot(ax,___) は、ターゲットの座標軸 ax にプロットを表示します。前述の任意の構文で、最初の入力引数として座標軸を指定します。

    p = andrewsplot(___) は、前の構文におけるいずれかの入力引数の組み合わせを使用して、Line オブジェクトの配列を返します。p は、プロットの作成後にそのプロパティを変更する場合に使用します。プロパティの一覧については、Line のプロパティを参照してください。

    すべて折りたたむ

    グループ化された標本データを可視化するためにアンドリュース プロットを作成します。

    fisheriris データ セットを読み込みます。このデータ セットには、3 つの種のアヤメの花による 4 種類の測定値 (萼弁の長さ、萼弁の幅、花弁の長さ、花弁の幅) が含まれています。

    load fisheriris

    行列 meas には、150 本の花についての 4 つの測定値すべてが格納されています。cell 配列 species には、150 本の花のそれぞれに対する種の名前が格納されています。

    標本データを species でグループ化してアンドリュース プロットを作成します。

    andrewsplot(meas,Group=species)

    Figure contains an axes object. The axes object with xlabel t, ylabel f(t) contains 150 objects of type line. These objects represent setosa, versicolor, virginica.

    このプロットは、区間 [0,1] における平滑化関数として各観測値 (花) を表示します。各曲線の色は花の種を示します。

    グループごとの中央値と四分位数のみを表示する単純化した 2 つ目のアンドリュース プロットを作成します。

    andrewsplot(meas,Group=species,Quantile=0.25)

    Figure contains an axes object. The axes object with xlabel t, ylabel f(t) contains 9 objects of type line. These objects represent setosa, versicolor, virginica.

    プロットでは、各グループの中央値が実線の曲線で、他の四分位数の値が同じ色の点線の曲線で示されています。

    アンドリュース プロットを使用して多次元データを可視化します。まず、データをグループ化します。次に、標準化と四分位数を使用してグループの差異を確認します。

    100 人の患者の医療情報を含む patients データ セットを読み込みます。10 の代わりに、SmokerNonsmoker というわかりやすいカテゴリ名を指定します。次に、DiastolicSystolicWeightAge、および Smoker 変数を使用して table を作成します。

    load patients
    Smoker = categorical(Smoker,logical([1 0]), ...
        ["Smoker","Nonsmoker"]);
    patientData = table(Diastolic,Systolic,Weight,Age,Smoker);

    patientData の変数からアンドリュース プロットを作成します。最後の変数を使用して、データを喫煙状況ごとにグループ化します。

    andrewsplot(patientData{:,1:end-1},Group=patientData.Smoker)

    Figure contains an axes object. The axes object with xlabel t, ylabel f(t) contains 100 objects of type line. These objects represent Smoker, Nonsmoker.

    既定では、プロットは標準化されていないデータを使用します。このプロットでは、Smoker グループと Nonsmoker グループの間に大きな差異は示されません。

    プロットの前に patientData 数値変数を標準化します。

    andrewsplot(patientData{:,1:end-1},Group=Smoker,Standardize="on")

    Figure contains an axes object. The axes object with xlabel t, ylabel f(t) contains 100 objects of type line. These objects represent Smoker, Nonsmoker.

    結果のアンドリュース プロットでは、Smoker グループと Nonsmoker グループの差異がより明確に示されます。このプロットは、patientData の患者ごとに 1 つずつ、100 個の曲線を示しているため、若干込み合っています。

    各観測値の曲線を表示する代わりに、各グループの四分位数の曲線を示します。四分位数は、25 番目の百分位数、中央値、および 75 番目の百分位数で構成されます。

    andrewsplot(patientData{:,1:end-1},Group=patientData.Smoker, ...
        Standardize="on",Quantile=0.25)

    Figure contains an axes object. The axes object with xlabel t, ylabel f(t) contains 6 objects of type line. These objects represent Smoker, Nonsmoker.

    四分位数の曲線は、Smoker グループと Nonsmoker グループの差異を示しています。たとえば、約 0.25 の時点では、2 つのグループの四分位数の値は重なっていません。

    アンドリュース プロットに表示されていた各関数は、係数が時間と共に変化する変数の線形結合であることを思い出してください。(アンドリュース プロットを参照。)時間 0.25 における変数の係数を計算します。この変数の線形結合はグループの区別に役立ちます。

    t = 0.25;
    variables = patientData.Properties.VariableNames(1:end-1)
    variables = 1×4 cell
        {'Diastolic'}    {'Systolic'}    {'Weight'}    {'Age'}
    
    
    coefficients = [1/sqrt(2) sin(2*pi*t) cos(2*pi*t) sin(4*pi*t)]
    coefficients = 1×4
    
        0.7071    1.0000    0.0000    0.0000
    
    

    時間 0.25 では、Diastolic 変数と Systolic 変数の係数は振幅が類似している正の係数で、Weight 変数と Age 変数の係数は 0 です。前のプロットは、データの標準化後に、Smoker グループの四分位数の曲線が時間 0.25 で正の値になり、Nonsmoker グループの四分位数の曲線が時間 0.25 で負の値になることを示しています。

    プロットと変数の係数は、Smoker グループの患者は DiastolicSystolic の値が高くなる傾向があることを示しており、これは patientDataSmoker グループと Nonsmoker グループを区別する方法の 1 つとなります。

    アンドリュース プロットの外観を調整します。andrewsplot の呼び出しでいくつかのプロット プロパティを設定できます。プロットの作成前または作成後にその外観を指定することもできます。

    fisheriris データ セットを読み込みます。このデータ セットには、3 つの種のアヤメの花による 4 種類の測定値 (萼弁の長さ、萼弁の幅、花弁の長さ、花弁の幅) が含まれています。

    load fisheriris

    行列 meas には、150 本の花についての 4 つの測定値すべてが格納されています。cell 配列 species には、150 本の花のそれぞれに対する種の名前が格納されています。

    meas 内の測定値データと species 内のグループ データを使用してアンドリュース プロットを作成します。プロットの前に色の順序を設定し、グループ化されたデータの既定以外の配色 (copper) を指定します。

    colororder(copper(3))
    andrewsplot(meas,Group=species)

    Figure contains an axes object. The axes object with xlabel t, ylabel f(t) contains 150 objects of type line. These objects represent setosa, versicolor, virginica.

    species の各グループについて、中央値、25 番目の百分位数、および 75 番目の百分位数の曲線のみをプロットします。プロット ラインを太くするために、ライン幅を 2 と指定します。andrewsplot の呼び出しで LineWidth の値を指定すると、この関数はプロット内のすべての曲線のライン幅を同じ値に設定します。

    andrewsplot(meas,Group=species,Quantile=0.25,LineWidth=2)

    Figure contains an axes object. The axes object with xlabel t, ylabel f(t) contains 9 objects of type line. These objects represent setosa, versicolor, virginica.

    前のプロットを再作成します。ただし、setosa グループのアヤメに対する中央値の測定値を表す曲線のみ、ライン幅を太くします。まず、Line オブジェクトの配列 p を作成します。各オブジェクトはプロット内の曲線に対応します。次に、ドット表記を使用して、配列に含まれる最初の Line オブジェクトの LineWidth プロパティを変更します。

    p = andrewsplot(meas,Group=species,Quantile=0.25)
    p = 
      9×1 Line array:
    
      Line    (median)
      Line    (lower quantile)
      Line    (upper quantile)
      Line    (median)
      Line    (lower quantile)
      Line    (upper quantile)
      Line    (median)
      Line    (lower quantile)
      Line    (upper quantile)
    
    
    p(1).LineWidth = 2;

    Figure contains an axes object. The axes object with xlabel t, ylabel f(t) contains 9 objects of type line. These objects represent setosa, versicolor, virginica.

    入力引数

    すべて折りたたむ

    多変量データ。数値行列として指定します。X の行は観測値に対応し、列は変数に対応します。

    andrewsplotXNaN 値を欠損値として処理し、対応する行を無視します。

    例: rand(100,10)

    データ型: single | double

    プロットの座標軸。Axes オブジェクトとして指定します。ax を指定しない場合、andrewsplot は、現在の座標軸を使用してプロットを作成します。Axes オブジェクトを作成する方法の詳細については、axes を参照してください。

    名前と値の引数

    すべて折りたたむ

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

    例: andrewsplot(meas,Group=species,Quantile=0.25) は、species の各グループについて、中央値、25 番目の百分位数、および 75 番目の百分位数の曲線をプロットするように指定します。

    データをグループ化する変数。数値ベクトル、logical ベクトル、文字行列、string 配列、文字ベクトルの cell 配列、または categorical ベクトルとして指定します。X 内の各観測値について、グループ値を指定します。

    andrewsplot 関数は、色を使用してグループを区別します。つまり、同じグループに属する観測値は同じ色の曲線になります。既定では、andrewsplot は最大 7 つの固有のグループ色を割り当てます。グループの合計数が色の数を超えると、関数は色を繰り返して使います。アンドリュース プロットの色を特定の数のグループに合わせて調整する方法の例については、プロットの外観の調整を参照してください。

    例: Group=["good","bad","bad","good","good","bad","bad","bad"]

    データ型: single | double | logical | char | string | cell | categorical

    プロットするデータの分位数。範囲 (0,1) の数値スカラーとして指定します。Quantile を値 α と指定すると、andrewsplot 関数は、t の各値で f(t) の中央値、α、および 1 – α 分位数のみをプロットします。

    X に多数の観測値が含まれている場合は、分位数プロット オプションで得られるデータの要約が役立ちます。

    例: Quantile=0.25

    データ型: single | double

    データを標準化する方法。次の表のいずれかの値として指定します。

    説明
    "off"標準化されていない X データを使用します。
    "on"プロットを行う前に、平均が 0、標準偏差が 1 になるように X の各列をスケーリングします。
    "pca"固有値の降順で X の主成分スコアからプロットを作成します。
    "pcastd"標準化された主成分スコアを使用してプロットを作成します。

    主成分分析の詳細については、pca を参照してください。

    例: Standardize="pca"

    データ型: char | string

    出力引数

    すべて折りたたむ

    プロットの変更に使用するオブジェクト。Line オブジェクトの配列として返されます。

    • 分位数の値 (Quantile) を指定しない場合、p には X の行ごとに 1 つのオブジェクトが含まれます。

    • 分位数の値を指定した場合、p にはグループ化変数 (Group) のグループごとに 3 つのオブジェクトが含まれます。

    詳細

    すべて折りたたむ

    ヒント

    • Line のプロパティ に記載されているプロパティの場合、プロパティの名前と値を指定することによりプロットする曲線の特性を変更できます。しかし、このアプローチではプロット内の曲線すべてに変更が適用されます。プロットする特定の曲線のみを変更するには、Line オブジェクトを返す構文を使用し、ドット表記を使用して各オブジェクトのプロパティを個別に調整します。例については、プロットの外観の調整を参照してください。

    バージョン履歴

    R2006a より前に導入