forループでF検定のp値を出力させる方法を教えてください。
for a= 1:n;
x= 行列名1 (a,:);
y = 行列名2(a,:);
f(a,:) = vartest2(x,y);
end
とすると、
行列名1と2のa列目同士をF検定してその判定を返してはくれるのですが、同時にp値の行列も作成したいです。
ご知恵を拝借願えませんでしょうか。

 採用された回答

Atsushi Ueno
Atsushi Ueno 2021 年 9 月 29 日

1 投票

上記の最初に書いてある「等分散に関する検定」と同じ内容です。データの内容はさておき、[h,p] = vartest2(x,y)と書かないとp値を出力してくれないので、一旦スカラ変数に格納してから行列にコピーすればやりたい事が出来ます。
load examgrades;
for a= 1:size(grades,2)-1;
x = grades(:,a);
y = grades(:,a+1);
[h,p] = vartest2(x,y) % 検定結果とp値を両方出力する
f(a,:) = [h,p]; % 検定結果とp値を行列に格納する
end
h = 1
p = 0.0019
h = 0
p = 0.1661
h = 0
p = 0.1120
h = 1
p = 1.4921e-07
f
f = 4×2
1.0000 0.0019 0 0.1661 0 0.1120 1.0000 0.0000

1 件のコメント

Hiraku Tokuma
Hiraku Tokuma 2021 年 10 月 2 日
解決しました
ありがとうございます

サインインしてコメントする。

その他の回答 (0 件)

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!