Storing regression coefficients in a loop
조회 수: 3 (최근 30일)
이전 댓글 표시
Hello,
I'm doing a simple linear regression on a 20x30x365 matrix (latitude, longitude, time). I want to store the slope and p - value for each lat/lon pair such that the end result are two 20x30 matrices. I'm attaching some dummy data and my attempted code below. Thank you.
X = size(prec,3);
i = 20;
j = 30;
slopes = zeros(i,j);
pvals = zeros(i,j);
for i = 1:i
for j= 1:j
mdl = fitlm(X,prec(i,j,:));
slope = table2array(mdl.Coefficients(2,1));
pval = table2array(mdl.Coefficients(2,4));
slopes = slope(i,j);
pvals = pval(i,j);
end
end
댓글 수: 0
채택된 답변
VBBV
2021년 12월 7일
편집: VBBV
2021년 12월 8일
slopes(i,j) = slope;
pvals(i,j) = pval;
댓글 수: 2
VBBV
2021년 12월 8일
n = size(prec,3);
X = (1:1:n)';
I = 20; % change this variable with a differnt letter
J = 30; % same here
slopes = zeros(I,J);
pvals = zeros(I,J);
for i = 1:I
for j= 1:J
y = reshape(prec(i,j,:),[n,1]);
mdl = fitlm(X,y);
slope = table2array(mdl.Coefficients(2,1));
pval = table2array(mdl.Coefficients(2,4));
slopes(i,j) = slope;
pvals(i,j) = pval;
end
end
When the for loop runs, its using concurrent values of i and j. Change the symbols as above and run it
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Linear Regression에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!