Imatlab에서 반복 회귀를 수행하는 방법은 무엇입니까?
Year Month Water_Demand Population Rainfall
1997 1 355 4500 25
1997 2 375 5000 20
1997 3 320 5200 21
.............% rest of the month data of year 1997.
1997 12 380 6000 24
1998 1 390 6500 23
1998 2 370 6700 20
............. % rest of the month data of year 1998
1998 12 400 6900 19
1999 1
1999 2
.............% rest of the month data of year 1997 and 2000
2000 12 390 7000 20
(매월 4 년 (1,997에서 2,000 사이) 물 수요, 인구와 강우량 데이터) 5 열 48 행이 포함 된 엑셀 파일이 난의 다중 선형 회귀 분석을 수행 할가 MATLAB. 여기서 종속 변수는 물 수요이고 독립 변수는 인구와 강우량입니다. 이 코드를 48 행 모두에 대해 작성했습니다.
A1=data(:,3);
A2=data(:,4);
A3=data(:,5);
x=[ones(size(A1)),A2,A3];
y=A1;
b=regress(y,x);
yfit=b(1)+b(2).*A2+b(3).*A3;
이제 반복하고 싶습니다. 먼저 행 번호 1을 제외 (예 : 1997 년 1 월 데이터 제외)하고 나머지 47 개의 행 데이터로 회귀합니다. 그런 다음 행 번호 2를 제외하고 행 번호 1과 행 3-48의 데이터로 회귀를 수행하려고합니다. 그런 다음 행 번호 3을 제외하고 행 번호 1-2 및 행 4-48의 데이터로 회귀를 수행합니다. 각 실행에서 한 행을 제외하면 항상 47 행 데이터 포인트가 있습니다. 마지막으로, 각 회기의 회귀 계수와 yfit 테이블을 얻고 싶습니다. 내가 생각할 수있는
+1 occam 's 면도날 용. 성능이 문제가되는 경우에만 최적화를 중지하십시오. – Marc
감사합니다. Castilho. 하지만 코드를 실행하면 48 번째 행만 제외하고 3 * 1 행렬에 대한 결과를 얻을 수 있지만 모든 48 행에 대해 3 * 48 행렬을 얻고 싶습니다. 다음은 'n = 1:48에 대한 코드입니다. under_test = data; under_test (n, :) = []; B1 = under_test (:, 3); B2 = under_test (:, 4); B3 = under_test (:, 5); x1 = [ones (size (B1)), B2, B3]; y1 = B1; C = 회귀 (y1, x1); end ' – shawpnik
for 루프는 내부에 작성된 코드를 반복합니다. 모든 값을 저장하려면 올바른 크기의 행렬을 만들고 각 반복 결과를 다른 행에 저장해야합니다. 나는 위의 코드를 편집했다. :) – Castilho