ranova
反復測定モデルでの被験者内効果の分散分析
説明
例
標本データを読み込みます。
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 = table([1 2 3 4]','VariableNames',{'Measurements'});
反復予測モデルを当てはめます。ここで、測定が応答、種類が予測子変数となります。
rm = fitrm(t,'meas1-meas4~species','WithinDesign',Meas);
反復測定の分散分析を実行します。
ranovatbl = ranova(rm)
ranovatbl=3×8 table
SumSq DF MeanSq F pValue pValueGG pValueHF pValueLB
______ ___ ________ ______ ___________ ___________ ___________ ___________
(Intercept):Measurements 1656.3 3 552.09 6873.3 0 9.4491e-279 2.9213e-283 2.5871e-125
species:Measurements 282.47 6 47.078 586.1 1.4271e-206 4.9313e-156 1.5406e-158 9.0151e-71
Error(Measurements) 35.423 441 0.080324
4 件の測定値、3 つの種類、150 件の観測値があります。したがって、自由度は、測定値については (4-1) = 3、種類と測定値の交互作用については (4-1)*(3-1) = 6、誤差については (150–3)*(4–1) = 441 です。ranova
は最後の 3 つの 値をそれぞれグリーンハウス・ガイザー補正、ヒューン・フェルト補正、下限補正により計算します。mauchly
メソッドを使用すると複合対称性 (球面性) 仮定を確認でき、epsilon
メソッドを使用するとイプシロン補正を表示できます。
標本データを読み込みます。
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);
反復測定の分散分析を実行します。
ranovatbl = ranova(rm)
ranovatbl=3×8 table
SumSq DF MeanSq F pValue pValueGG pValueHF pValueLB
______ __ ______ _______ __________ __________ __________ __________
(Intercept):Time 881.7 4 220.43 37.539 3.0348e-15 4.7325e-09 2.4439e-10 2.6198e-05
Gender:Time 17.65 4 4.4125 0.75146 0.56126 0.4877 0.50707 0.40063
Error(Time) 328.83 56 5.872
5 つの時間点、2 種類の性別、16 件の観測値があります。したがって、自由度は、時間については (5-1) = 4、性別と時間の交互作用については (5-1)*(2-1) = 4、誤差については (16-2)*(5-1) = 56 です。 値が 2.6198e–05 という小さい値なので、時間が血圧に対して有意な影響を与えることがわかります。0.40063 という 値は、性別と時間に有意な交互作用がないことを示しています。
標本データを読み込みます。
load repeatedmeas
テーブル between
には、被験者間変数である年齢、IQ、グループ、性別、および 8 件の反復測定値 y1
~ y8
が応答として含まれています。テーブル within には被験者内変数 w1
および w2
が含まれています。このデータは、シミュレーションされたものです。仮定では、応答がメモリ テストの結果になることがあります。被験者内変数 w1
はテスト前に被験者が実施する運動のタイプであり、w2
は被験者がメモリ テストを受ける日の別の時間点です。つまり、1 人の被験者はテストを受ける前に 2 つの異なるタイプの運動 A と B を実施し、異なる日の 4 つの異なる時間にテストを受けます。次の条件のもと、被験者ごとに測定が行われます。
テスト前に実施する運動: A B A B A B A B
テスト時間: 1 1 2 2 3 3 4 4
反復測定モデルを当てはめます。ここで、反復測定値 y1
~ y8
は応答であり、年齢、IQ、グループ、性別、およびグループと性別の交互作用は予測子変数です。また、被験者内計画行列も指定します。
rm = fitrm(between,'y1-y8 ~ Group*Gender + Age + IQ','WithinDesign',within);
反復測定の分散分析を実行します。
ranovatbl = ranova(rm)
ranovatbl=7×8 table
SumSq DF MeanSq F pValue pValueGG pValueHF pValueLB
______ ___ ______ _______ _________ ________ _________ ________
(Intercept):Time 6645.2 7 949.31 2.2689 0.031674 0.071235 0.056257 0.14621
Age:Time 5824.3 7 832.05 1.9887 0.059978 0.10651 0.090128 0.17246
IQ:Time 5188.3 7 741.18 1.7715 0.096749 0.14492 0.12892 0.19683
Group:Time 15800 14 1128.6 2.6975 0.0014425 0.011884 0.0064346 0.089594
Gender:Time 4455.8 7 636.55 1.5214 0.16381 0.20533 0.19258 0.23042
Group:Gender:Time 4247.3 14 303.38 0.72511 0.74677 0.663 0.69184 0.49549
Error(Time) 64433 154 418.39
被験者内要因のモデルを指定します。また、仮説検定で使用された行列も表示します。
[ranovatbl,A,C,D] = ranova(rm,'WithinModel','w1+w2')
ranovatbl=21×8 table
SumSq DF MeanSq F pValue pValueGG pValueHF pValueLB
______ __ ______ ________ _________ _________ _________ _________
(Intercept) 3141.7 1 3141.7 2.5034 0.12787 0.12787 0.12787 0.12787
Age 537.48 1 537.48 0.42828 0.51962 0.51962 0.51962 0.51962
IQ 2975.9 1 2975.9 2.3712 0.13785 0.13785 0.13785 0.13785
Group 20836 2 10418 8.3012 0.0020601 0.0020601 0.0020601 0.0020601
Gender 3036.3 1 3036.3 2.4194 0.13411 0.13411 0.13411 0.13411
Group:Gender 211.8 2 105.9 0.084385 0.91937 0.91937 0.91937 0.91937
Error 27609 22 1255 1 0.5 0.5 0.5 0.5
(Intercept):w1 146.75 1 146.75 0.23326 0.63389 0.63389 0.63389 0.63389
Age:w1 942.02 1 942.02 1.4974 0.23402 0.23402 0.23402 0.23402
IQ:w1 11.563 1 11.563 0.01838 0.89339 0.89339 0.89339 0.89339
Group:w1 4481.9 2 2240.9 3.562 0.045697 0.045697 0.045697 0.045697
Gender:w1 270.65 1 270.65 0.4302 0.51869 0.51869 0.51869 0.51869
Group:Gender:w1 240.37 2 120.19 0.19104 0.82746 0.82746 0.82746 0.82746
Error(w1) 13841 22 629.12 1 0.5 0.5 0.5 0.5
(Intercept):w2 3663.8 3 1221.3 3.8381 0.013513 0.020339 0.01575 0.062894
Age:w2 1199.9 3 399.95 1.2569 0.2964 0.29645 0.29662 0.27432
⋮
A=6×1 cell array
{[1 0 0 0 0 0 0 0]}
{[0 1 0 0 0 0 0 0]}
{[0 0 1 0 0 0 0 0]}
{2×8 double }
{[0 0 0 0 0 1 0 0]}
{2×8 double }
C=1×3 cell array
{8×1 double} {8×1 double} {8×3 double}
D = 0
A
の内容を表示します。
[A{1};A{2};A{3};A{4};A{5};A{6}]
ans = 8×8
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
C
の内容を表示します。
[C{1} C{2} C{3}]
ans = 8×5
1 1 1 0 0
1 1 0 1 0
1 1 0 0 1
1 1 -1 -1 -1
1 -1 1 0 0
1 -1 0 1 0
1 -1 0 0 1
1 -1 -1 -1 -1
標本データ セット fisheriris
を読み込みます。
load fisheriris
列ベクトル species
には、3 種類のアヤメの種 (setosa、versicolor、virginica) が格納されています。行列 meas
には、花に関する 4 種類の測定値、がく片の長さと幅 (cm) と花弁の長さと幅 (cm) が格納されています。
関数string, " "
とcategorical
を使用して、種のデータを categorical の string ベクトルに変換します。setosa 種の花の測定値に対応する行列を作成し、その行列を関数array2table
を使用して table に変換します。
species = categorical(string(species)); m = meas(species=="setosa",:); tbl = array2table(m,VariableNames=["y1","y2","y3","y4"])
tbl=50×4 table
y1 y2 y3 y4
___ ___ ___ ___
5.1 3.5 1.4 0.2
4.9 3 1.4 0.2
4.7 3.2 1.3 0.2
4.6 3.1 1.5 0.2
5 3.6 1.4 0.2
5.4 3.9 1.7 0.4
4.6 3.4 1.4 0.3
5 3.4 1.5 0.2
4.4 2.9 1.4 0.2
4.9 3.1 1.5 0.1
5.4 3.7 1.5 0.2
4.8 3.4 1.6 0.2
4.8 3 1.4 0.1
4.3 3 1.1 0.1
5.8 4 1.2 0.2
5.7 4.4 1.5 0.4
⋮
tbl
の 4 つの応答変数は、がく片と花弁の長さと幅にそれぞれ対応します。
関数table
を使用して、被験者内要因の計画を作成します。1 つ目の被験者内要因を測定対象の花の部分として指定し、2 つ目を測定が行われた向きとして指定します。
part = ["sepal";"sepal";"petal";"petal"]; direction = ["length";"width";"length";"width"]; w2design = table(part,direction,VariableNames=["part","direction"])
w2design=4×2 table
part direction
_______ _________
"sepal" "length"
"sepal" "width"
"petal" "length"
"petal" "width"
w2design
の行は tbl
の応答変数にそれぞれ対応します。
w2design
を被験者内要因の計画として使用して、tbl
の測定値に反復測定モデルを当てはめます。
rm = fitrm(tbl,"y1-y4~1",WithinDesign=w2design)
rm = RepeatedMeasuresModel with properties: Between Subjects: BetweenDesign: [50×4 table] ResponseNames: {'y1' 'y2' 'y3' 'y4'} BetweenFactorNames: {1×0 cell} BetweenModel: '1' Within Subjects: WithinDesign: [4×2 table] WithinFactorNames: {'part' 'direction'} WithinModel: 'separatemeans' Estimates: Coefficients: [1×4 table] Covariance: [4×4 table]
rm
は、反復測定モデルをデータに当てはめた結果を含む RepeatedMeasuresModel
オブジェクトです。
RANOVA を実行して、花の部分と測定の向きが測定値に対して 95% の信頼水準で統計的に有意な影響を与えるかどうかを判定します。
ranovatbl = ranova(rm,WithinModel="part+direction");
disp(ranovatbl)
SumSq DF MeanSq F pValue pValueGG pValueHF pValueLB ______ __ _______ ______ __________ __________ __________ __________ (Intercept) 1285.8 1 1285.8 8360.7 2.0347e-56 2.0347e-56 2.0347e-56 2.0347e-56 Error 7.5354 49 0.15378 (Intercept):part 565.49 1 565.49 5329.6 1.1612e-51 1.1612e-51 1.1612e-51 1.1612e-51 Error(part) 5.199 49 0.1061 (Intercept):direction 97.58 1 97.58 3686.4 8.8091e-48 8.8091e-48 8.8091e-48 8.8091e-48 Error(direction) 1.2971 49 0.02647
ranovatbl
は、被験者内モデルの各項についての "p" 値を含む RANOVA 表です。(Intercept):part
項と (Intercept):direction
項の "p" 値が小さいことから、花の部分と測定の向きは、どちらも測定値に対して統計的に有意な影響を与えることがわかります。
入力引数
反復測定モデル。RepeatedMeasuresModel
オブジェクトとして返します。
このオブジェクトのプロパティとメソッドについては、RepeatedMeasuresModel
を参照してください。
応答を指定するモデル。以下のいずれかとして指定します。
'separatemeans'
— グループごとの平均を計算します。C
— r 行 nc 列の対比行列。r 件の反復測定の中の nc 件の対比を指定します。Y が反復測定の行列を表している場合、ranova
は Y*C の平均が 0 であるという仮定を検定します。被験者内要因のモデル仕様を定義する文字ベクトルまたは string スカラー。
fitrm
のmodelspec
引数でterms
の規則に基づいてモデルを定義できます。反復測定モデルのモデル仕様も参照してください。
たとえば、被験者内要因が w1
、w2
、w3
の 3 つである場合、被験者内要因のモデルを次のように指定できます。
例: 'WithinModel','w1+w2+w2*w3'
データ型: single
| double
| char
| string
出力引数
反復測定 ANOVA の結果。table
として返します。
ranovatbl
には、被験者内要因間のすべての差分を表す項が含まれます。モデルの当てはめ中に被験者内要因の名前が指定されている場合、その名前がこの項に設定されます。また、モデルの当てはめ中に被験者内要因の名前が指定されていなかったり、被験者内要因が複数存在したりする場合は、Time
という名前がこの項に設定されます。ranovatbl
には、被験者内モデルの項とすべての被験者間モデルの項の間にある、すべての交互作用が含まれます。次の各列があります。
列名 | 定義 |
---|---|
SumSq | 二乗和。 |
DF | 自由度。 |
MeanSq | 平均二乗誤差。 |
F | F 統計量。 |
pValue | F 統計量に対応する p 値。p が小さい場合、項の効果が大きいことを表します。 |
pValueGG | グリーンハウス・ガイザー調整による p 値。 |
pValueHF | ヒューン・フェルト調整による p 値。 |
pValueLB | 下限調整による p 値。 |
最後の 3 つの p 値は、複合対称性仮定が満たされない場合に使用する、調整後の p 値です。詳細は、複合対称性仮定とイプシロン補正を参照してください。mauchy
メソッドは球面性 (およびそれにともなう複合対称性) を検定し、epsilon
はイプシロン調整値を返します。
被験者間モデルに基づく仕様。行列または cell 配列として返します。これにより、B
の所定の列内にある要素に対する仮説 (時間内仮説) が可能になります。ranovatbl
に複数の仮説検定がある場合、A
は cell 配列となることがあります。
データ型: single
| double
| cell
被験者内モデルに基づく仕様。行列または cell 配列として返します。これにより、B
の所定の行内にある要素に対する仮説 (時間間仮説) が可能になります。ranovatbl
に複数の仮説検定がある場合、C
は cell 配列となることがあります。
データ型: single
| double
| cell
仮説値。0 として返します。
アルゴリズム
ranova
は、F 統計量の累積分布関数を使用して (テーブル rmanova
の pValue
列にある) 通常の p 値を次のように計算します。
p-value = 1 – fcdf(F,v1,v2)
複合対称性仮定が満たされない場合、ranova
は補正係数 ε を使用して補正後の p 値を次のように計算します。
p-value_corrected = 1 – fcdf(F,ε*v1,ε*v2)
mauchly
メソッドは球面性 (およびそれにともなう複合対称性) を検定し、epsilon
はイプシロン調整値を返します。
バージョン履歴
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)