> set.seed(2) > x = runif(10,0,11)
0~11 까지 랜덤하게 10개를 뽑는다.
> y = runif(10,11,20) > d = data.frame(x,y) > d x y 1 2.033705 15.97407 2 7.726114 13.15005 3 6.306590 17.84462 4 1.848571 12.62738 5 10.382233 14.64754 6 10.378225 18.68194 7 1.420749 19.78759 8 9.167937 13.03243 9 5.148204 15.00328 10 6.049821 11.67481 > result = lm(y~x, data=d)
> result Call: lm(formula = y ~ x, data = d) Coefficients: (Intercept) x 15.82328 -0.09608
위의 식은 y = -0.09608x + 15.82328
> summary(result) Call: lm(formula = y ~ x, data = d) Residuals: Min 1Q Median 3Q Max -3.5672 -1.9257 -0.2518 2.0570 4.1008 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 15.82328 1.94450 8.137 3.86e-05 *** x -0.09608 0.28313 -0.339 0.743 --- Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual standard error: 2.917 on 8 degrees of freedom Multiple R-squared: 0.01419, Adjusted R-squared: -0.109 F-statistic: 0.1152 on 1 and 8 DF, p-value: 0.7431
P-value가 너무 높다. 랜덤이니 당연
변수가 여러개일 경우, P-value 가 높은놈먼저 제거해버리는 방법이 있을수 있다.
후진 / 전진제거는 다음과 같이 자동화가 가능한데
> step(lm(Y ~1, df), scopt = list(lower~1, upper=~X1+X2+X3+X4), direction = "both")
와 같이 써주면 알아서 전진 / 후진해서 P-value 가 높은높들은 빼버리고 최적화한다.
'데이터분석 > Machine Learning' 카테고리의 다른 글
R을 이용한 ARIMA(Autoregressive integrated moving average) 분석 예 (0) | 2016.01.10 |
---|---|
R을 이용한 시계열분석 함수 이용 예 (0) | 2016.01.10 |
R을 이용한 상관분석 함수 이용 예 (0) | 2016.01.10 |
Rattle 설치 (0) | 2016.01.09 |
[링크] 참조자료 - scipy-cookbook (0) | 2016.01.08 |