2013-10-09 3 views
1

제가: 선형 회귀 다른 오류 중량

범위
y = a1 * x1 + a2 * x2 + ... + a20 * x20 

Y는 모델 [-100000 100000]를 갖는다. 상대적인 오류가 최소가되는 곳에서 회귀를 얻는 것이 중요합니다. 절대적인 오류는 덜 중요합니다.

어떤 MATLAB 함수를 사용해야합니까? 내 표본은 얼마나 거대합니까?

R_adj을 계산하는 가장 쉬운 방법은 무엇입니까? R_adj은 제안하는 모델을 평가하기위한 좋은 변수입니까, 아니면 다른 모델을 사용해야하는 모델입니까?

+0

처음에이 솔루션을 비교할 수 있습니다, 그 이론적 인 수학 문제입니다. 일단 그렇게하면 기능을 찾을 수있을 것입니다. 내 첫 번째 생각은 "가중치가 적용된 최소 제곱"을 사용하는 것이지만 확실하지는 않습니다. 확인해보십시오. 그런 다음 [matlab 함수] (http://www.mathworks.de/de/help/curvefit/least-squares-fitting.html#bq_5kr9-3)가 있습니다. – thewaywewalk

+0

'R_adj' 란 무엇입니까? 어떻게 정의 할 수 있니? 모델'a0 ... a20'이 주어지면 오류에 대한 수학 공식을 쓸 수 있습니까? – Shai

+0

'R_adj'가 '결정 계수'입니다. 모델 평가에 유용합니다. – user2861714

답변

1

x 점을 해당 y 값으로 정규화 한 것으로 생각하십니까? 대신
피팅 x_i1, x_i2, ..., x_i20 당신은, 당신이 x_i1/y_i, x_i2/y_2, ... x_i20/y_i1에 피팅 고려할 수 있습니다 i 모든 샘플에 대한 y_i합니다.

그렇게하기로 결정하는 경우

, 당신은 -by- 20 크기 n의 매트릭스 X를 구성해야합니다 ( i 번째 행은 i 번째 sampe입니다). 그런 다음 :

>> n = size(x,1); % number of samples 
>> nX = bsxfun(@rdivide, X, y); % divide each sample i with corresponding y_i 
>> a = nX \ ones(n,1); % solution using normalization 

당신은 회귀 방법은 문제를 가장 잘 맞는 어느 알아 내야 않은 정규화 최소 자승

>> non_a = X \ y; 
+0

내가 편집했는데,'R-adj'에 관해서는 – user2861714

+0

@ user2861714 당신의 질문은 매우 모호한 표현으로되어 있습니다. 정확히 무엇을하려고하는지 명확하지 않습니다. 목표 함수 (수학적으로)를 엄격한 방법으로 정의한 다음 프로그래밍 방식/알고리즘 방식으로 해결하는 방법을 알 수 있습니다. – Shai

+0

방금 ​​모델을 만들었습니다. 지금은 원유가되고 있습니다. 목표를 달성하기 위해 적절한 모델을 찾고 싶습니다. 분할 모델이 충분하다고 생각합니다. – user2861714