2015-01-15 10 views
1

을 감안할 때 :matlab을 사용하여 X에서 Y를 회귀하는 방법은 무엇입니까?

Y=[81 55 80 24 78 52 88 45 50 69 66 45 24 43 38 72 41 48 52 52 66 89]; 

X=[124 49 181 4 22 152 75 54 43 41 17 22 16 10 63 170 125 15 222 171 97 254]; 

내가 X (단순 선형 회귀)에 Y를 회귀하려는. 이 코드로 시도 :

b= regress(Y,X) 

그러나 그것은 나에게이 오류 제공 : 어떤 도움

??? Error using ==> regress at 65 
The number of rows in Y must equal the number of rows in X. 

감사합니다.

+0

을? 만약 당신이 최신이라면'regress' 대신에'fitlm'을 사용해보십시오. – Dan

+0

Matlab 7.10.0을 사용하고 있습니다 – blackbishop

+1

실수하지 않는다면 2010a입니까? 그래서이 경우'fitlm'을 위해 오래되었습니다. 귀하의 라이센스로 최신 버전을 구할 수 있는지 확인해야합니다. 그 이후로 많은 가치가있는 개선이있었습니다. – Dan

답변

1

regress은 입력을 벡터로 예상합니다.
트랜스 포즈 (.') 사용자의 입력이 트릭을 수행해야합니다 사용중인 matlab에 어떤 버전의

>> b = regress(Y.', X.') 
b = 
0.4291 
+1

빠른 답장을 보내 주셔서 감사 드리며, 완벽하게 작동합니다 :-) – blackbishop

+1

나는이 단어를 다시 말해야한다고 생각합니다. 'X'는 열 벡터가 아니라 * n * -by- * p * 행렬이어야합니다. 여기서 * p *는 입력 수 또는 설명 또는 독립 변수 (이 경우 1)입니다. 또한 여기에 경고를 추가 할만한 가치가있는 것은 '회귀'는'X' 행렬을'ones' 열로 명시 적으로 증가시키지 않는 한 오프셋 된 용어를 포함하지 않을 것입니다 – Dan

관련 문제