anova
反復測定モデルでの被験者間効果の分散分析
説明
例
標本データを読み込みます。
load fisheriris
列ベクトル species
は、3 種類のアヤメ (setosa、versicolor、virginica) で構成されています。double 行列 meas
は、花に関する 4 種類の測定値、がく片の長さと幅 (cm) と花弁の長さと幅 (cm) で構成されています。
データを table 配列に保存します。
t = table(species,meas(:,1),meas(:,2),meas(:,3),meas(:,4),... VariableNames=["species","meas1","meas2","meas3","meas4"]); Meas = [1 2 3 4];
反復予測モデルを当てはめます。ここで、測定が応答、種類が予測子変数となります。
rm = fitrm(t,"meas1-meas4~species",WithinDesign=Meas);
分散分析を実行します。
anova(rm)
ans=3×7 table
Within Between SumSq DF MeanSq F pValue
________ ________ ______ ___ _______ ______ ___________
Constant constant 7201.7 1 7201.7 19650 2.0735e-158
Constant species 309.61 2 154.8 422.39 1.1517e-61
Constant Error 53.875 147 0.36649
150 件の観測値と 3 つの種類があります。種類の自由度は 3 - 1 = 2、誤差の自由度は 150 - 3 = 147 です。 値が 1.1517e-61 という小さい値なので、種類によって測定値が有意に異なることがわかります。
パネル データを読み込んで表示します。
load panelTbl;
panelTbl
panelTbl=48×4 table
Growth City Year Employ
______ ____ ____ ______
354.02 1 1 64.187
352.05 1 2 65.094
207.1 1 3 55.521
328.17 1 4 63.594
251.53 1 5 63.102
341.74 1 6 53.252
296.93 2 1 52.38
330.16 2 2 59.967
275.24 2 3 69.195
289.41 2 4 56.808
242.91 2 5 61.705
350.68 2 6 54.476
355.71 3 1 65.025
307.06 3 2 55.102
230.33 3 3 60.119
332.27 3 4 63.982
⋮
table panelTbl
には 6 年間の 8 つの都市に関する年間観測が含まれます。最初の変数 Growth
では、経済成長 (応答変数) が測定されます。2 番目と 3 番目の引数は、それぞれ都市と年のインジケーターです。最後の変数 Employ
は、雇用 (予測子変数) を測定します。このデータは、シミュレーションされたものです。
データを所定の形式に変換し、反復測定の解析を実行します。
panelTblNew = unstack(panelTbl(:,["City","Growth","Year"]),"Growth","Year",NewDataVariableNames=... ["year1","year2","year3","year4","year5","year6"])
panelTblNew=8×7 table
City year1 year2 year3 year4 year5 year6
____ ______ ______ ______ ______ ______ ______
1 354.02 352.05 207.1 328.17 251.53 341.74
2 296.93 330.16 275.24 289.41 242.91 350.68
3 355.71 307.06 230.33 332.27 267.99 422.25
4 335.78 302.9 199.29 289.92 266.1 348.24
5 378.11 296.3 276.22 292.43 207.5 341.99
6 354.62 307.09 222.17 339.27 254.71 366.67
7 385.74 297.64 260.1 332.27 230.96 370.99
8 304.3 265.08 236.25 330.61 287.85 316.02
複数年にわたる平均雇用水準を予測子変数として table panelTblNew
に追加します。
meanEmploy = grpstats(panelTbl.Employ,panelTbl.City); panelTblNew.meanEmploy = meanEmploy;
被験者内変数を定義します。
Year = [1 2 3 4 5 6]';
反復測定モデルを当てはめます。ここで、6 年間の成長率が応答となり、平均雇用水準が予測子変数となります。
rm = fitrm(panelTblNew,"year1-year6 ~ meanEmploy",WithinDesign=Year);
分散分析を実行します。
anovatbl = anova(rm,WithinModel=Year)
anovatbl=3×7 table
Within Between SumSq DF MeanSq F pValue
_________ __________ __________ __ __________ ________ _________
Contrast1 constant 588.17 1 588.17 0.038495 0.85093
Contrast1 meanEmploy 3.7064e+05 1 3.7064e+05 24.258 0.0026428
Contrast1 Error 91675 6 15279
標本データを読み込みます。
load('longitudinalData.mat');
行列 Y
には 16 人の応答データが含まれています。応答は 5 つの時間点 (time = 0、2、4、6、8) で測定された薬の血中濃度です。Y
の各行は 1 人の個人に対応し、各列は 1 つの時間点に対応します。最初の 8 人の被験者は女性で、次の 8 人の被験者は男性です。このデータは、シミュレーションされたものです。
性別情報を格納する変数を定義します。
Gender = ['F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'M' 'M' 'M' 'M' 'M' 'M' 'M' 'M']';
データを所定の table 配列形式で保存し、反復測定の解析を実行します。
t = table(Gender,Y(:,1),Y(:,2),Y(:,3),Y(:,4),Y(:,5),... 'VariableNames',{'Gender','t0','t2','t4','t6','t8'});
被験者内変数を定義します。
Time = [0 2 4 6 8]';
反復予測モデルを当てはめます。ここで、血中濃度が応答、性別が予測子変数となります。
rm = fitrm(t,'t0-t8 ~ Gender','WithinDesign',Time);
分散分析を実行します。
anovatbl = anova(rm)
anovatbl=3×7 table
Within Between SumSq DF MeanSq F pValue
________ ________ ______ __ ______ ______ __________
Constant constant 54702 1 54702 1079.2 1.1897e-14
Constant Gender 2251.7 1 2251.7 44.425 1.0693e-05
Constant Error 709.6 14 50.685
2 つの性別と 16 個の観測値があるので、性別の自由度は (2 - 1) = 1、誤差の自由度は (16 - 2) × (2 - 1) = 14 です。 値が 1.0693e-05 という小さい値なので、性別が血圧に対して有意な影響を与えることがわかります。
直交対比を使用して分散分析を繰り返します。
anovatbl = anova(rm,'WithinModel','orthogonalcontrasts')
anovatbl=15×7 table
Within Between SumSq DF MeanSq F pValue
________ ________ __________ __ __________ __________ __________
Constant constant 54702 1 54702 1079.2 1.1897e-14
Constant Gender 2251.7 1 2251.7 44.425 1.0693e-05
Constant Error 709.6 14 50.685
Time constant 310.83 1 310.83 31.023 6.9065e-05
Time Gender 13.341 1 13.341 1.3315 0.26785
Time Error 140.27 14 10.019
Time^2 constant 565.42 1 565.42 98.901 1.0003e-07
Time^2 Gender 1.4076 1 1.4076 0.24621 0.62746
Time^2 Error 80.039 14 5.7171
Time^3 constant 2.6127 1 2.6127 1.4318 0.25134
Time^3 Gender 7.8853e-06 1 7.8853e-06 4.3214e-06 0.99837
Time^3 Error 25.546 14 1.8247
Time^4 constant 2.8404 1 2.8404 0.47924 0.50009
Time^4 Gender 2.9016 1 2.9016 0.48956 0.49559
Time^4 Error 82.977 14 5.9269
入力引数
反復測定モデル。RepeatedMeasuresModel
オブジェクトとして返します。
このオブジェクトのプロパティとメソッドについては、RepeatedMeasuresModel
を参照してください。
被験者内モデル。以下のいずれかとして指定します。
'separatemeans'
: 応答は反復測定の平均 (被験者内モデル全体での平均) です。'orthogonalcontrasts'
: 被験者内モデルが単一の数値係数 T をもつ場合に有効です。応答は平均値、中心に位置する T の傾き、または一般的に最大 T^(p – 1) までの多項式のすべての直交対比です。ここで、p は被験者内モデルの行数です。anova
はY
(反復測定モデルrm
で使用する応答) を直交対比で乗算し、その結果となる行列積を応答として使用します。anova
は、ヴァンデルモンド行列の QR 分解の Q 係数を使用して T の直交対比を計算します。被験者内要因のモデル仕様を定義する文字ベクトルまたは string スカラー。応答はそのモデルの項によって定義されます。
anova
は Y (反復測定モデルrm
で使用する応答行列) をモデルの項で乗算し、その積の列を応答として使用します。たとえば、時間係数があり、
'Time'
がモデル仕様である場合、anova
は定数項と中心化されていない時間項の 2 つの項を使用します。既定値は'1'
で、平均応答に対して実行されます。r 行 nc 列の行列 C。r 件の反復測定間における nc 件の対比を指定します。Y が反復測定モデル
rm
内で使用される反復測定の行列を表す場合、出力tbl
には Y*C の列ごとに個別の分散分析が格納されます。
anova
table には、各応答の個別の一変量分散分析の結果が格納されます。
例: 'WithinModel','Time'
例: 'WithinModel','orthogonalcontrasts'
出力引数
被験者間効果の分散分析の結果。table として返します。被験者間モデルのすべての項と、次の各列が格納されています。
列名 | 定義 |
---|---|
Within | 被験者内要因 |
Between | 被験者間要因 |
SumSq | 二乗和 |
DF | 自由度 |
MeanSq | 平均二乗誤差 |
F | F 統計量 |
pValue | F 統計量に対応する p 値 |
詳細
ヴァンデルモンド行列は、列がベクトル a のべき乗になっている行列です。すなわち、V(i,j) = a(i)(n — j) (n は a の長さ) となります。
m 行 n 列の行列 A の QR 分解とは、その行列を積 A = Q*R の形に因子分解することを指します。ここで R は m 行 n 列の上三角行列、Q は m 行 m 列のユニタリ行列です。
バージョン履歴
R2014a で導入
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)