Loading
2015. 1. 10. 07:02 - 성돌

Mathematica를 이용한 선형회귀 및 오차 분석




Mathematica를 이용해서 선형회귀(linear regression)를 하는 방법을 알아보자.

이 때, 이용할 수 있는 Mathematica기능이 LinearModelFit이다.


물론, Fit이나 FindFit기능도 이용할 수 있긴 하지만, 

선형회귀의 경우에는 LinearModelFit이 더 많은 유용한 옵션들을 제공한다. 


x, y의 형태로 된 데이터를 가지고 있다고 해보자.

이를 Data에 저장하고, 선형회귀를 한 결과를 FitFunction에 저장하는 코드는 아래와 같다.


LinearModelFit.nb


LinearModelFit에서 xx 이렇게 x가 두번 나왔는데,

첫번째 x는 우리가 y=x로 선형회귀하고 있음을 나타내며

두번째 x는 y=x에서 변수가 x임을 나타낸다.

즉, 여기서는 큰 의미가 없다.




이렇게 fitting한 함수를 사용할 때는 아래와 같이 

[x]로 변수를 지정해주거나, [1]으로 숫자를 대입할 수 있다.





LinearModelFit기능의 유용한 점은 fitting한 통계결과를 아래와 같이 보여준다는 점이다.

이 때, ["ParameterTable"]기능이 사용된다.
아래와 같이 Fitting한 함수에 그대로 붙여서 사용해주면 된다.





이를 통해 아래와 같이 y절편의 오차범위와 기울기의 오차범위를 아래와 같이 구할 수 있다.





위와 같이 fitting된 값들에 대한 오차는 선형회귀의 경우에만 구할 수 있는 것이 아니고,

Mathematica가 할 수 있는 모든 fitting에서 구할 수 있다.

이를 위해서는 NonlinearModelFitFittedModel를 참고하자.