| Home | Print | Q/A | Guest | NewsLetter |
|
[edit]
1 SQL Server 2008에 데이터 입력 및 ODBC세팅 #--drop table 성적 create table 성적 ( 통계 int , 결석 int , 수학 int ); insert 성적 values (85, 3, 65) , (74, 7, 50) , (76, 5, 55) , (90, 1, 65) , (85, 3, 55) , (87, 3, 70) , (94, 1, 65) , (98, 2, 70) , (81, 4, 55) , (91, 2, 70) , (76, 3, 50) , (74, 4, 55); ODBC세팅은 알아서 한다. 데이터 원본 이름은 sql2008로 한다.
[edit]
2 R을 이용한 다중회귀분석 #
> # SQL Server 2008 연동한 R코드: 다중회귀분석
> library("TSodbc")
> con <-odbcConnect(dsn = "sql2008")
> options(TSconnection = con)
> #만약 데이터가 많다면 select * from 성적 tablesample(1 percent)와 같이 샘플링을 한다.
> result = try(dbGetQuery(con, paste("SELECT 통계, 수학, 결석 FROM 성적")))
> model = lm(통계 ~ 수학 + 결석, result)
> summary(model)
Call:
lm(formula = 통계 ~ 수학 + 결석, data = result)
Residuals:
Min 1Q Median 3Q Max
-5.348 -2.274 -1.276 2.954 5.673
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 53.6832 14.1808 3.786 0.00431 **
수학 0.6073 0.1984 3.062 0.01353 *
결석 -1.9346 0.9144 -2.116 0.06348 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.721 on 9 degrees of freedom
Multiple R-squared: 0.8289, Adjusted R-squared: 0.7909
F-statistic: 21.8 on 2 and 9 DF, p-value: 0.0003544
> anova(model) #자유도, 제곱합, 제곱평균 F값,
Analysis of Variance Table
Response: 통계
Df Sum Sq Mean Sq F value Pr(>F)
수학 1 541.69 541.69 39.1297 0.0001487 ***
결석 1 61.97 61.97 4.4762 0.0634803 .
Residuals 9 124.59 13.84
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> dbDisconnect(con)
[1] TRUE
> options(TSconnection = NULL)
> odbcCloseAll()
>
[edit]
3 결과의 해석 #
> summary(model)
Call:
lm(formula = 통계 ~ 수학 + 결석, data = result)
Residuals:
Min 1Q Median 3Q Max
-5.348 -2.274 -1.276 2.954 5.673
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 53.6832 14.1808 3.786 0.00431 **
수학 0.6073 0.1984 3.062 0.01353 *
결석 -1.9346 0.9144 -2.116 0.06348 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 3.721 on 9 degrees of freedom
Multiple R-squared: 0.8289, Adjusted R-squared: 0.7909
F-statistic: 21.8 on 2 and 9 DF, p-value: 0.0003544
> anova(model) #자유도, 제곱합, 제곱평균 F값,
Analysis of Variance Table
Response: 통계
Df Sum Sq Mean Sq F value Pr(>F)
수학 1 541.69 541.69 39.1297 0.0001487 ***
결석 1 61.97 61.97 4.4762 0.0634803 .
Residuals 9 124.59 13.84
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
[edit]
4 다중공선성(Multicollinearity) #다중공선성(Multicollinearity)은 입력변수들 간의 상관정도가 높은 상태를 말한다. 즉, 임의의 변수 x를 빼고서 회귀분석을 했을 때에 x의 상관정도가 너무 높아 R값이 조낸 낮게 나오는 것을 말한다. 즉, 종속변수와 조낸 끈끈한 관계다. 즉, "여자가 애를 많이 낳는다" 또는 "구매 횟수가 많은 고객들의 매출비중이 크다" 정도로 정성적으로 알 수 있다. 다중공선선은 변수간의 상관관계가 다른 변수보다 상당히 높은 경우에 나타난다. 알아보는 방법은 공분산과 상관계수문서의 공분산행렬 부분을 참고하라.
[edit]
5 fRegression-package #회귀분석 함수를 모아서리 편하게 하게 하는 뭐.. 그따위 패키지다..
http://cran.r-project.org/web/packages/fRegression/fRegression.pdf #library(fRegression)
#regFit(formula, data, use = "lm", ...) #use = c("lm", "rlm", "glm","gam", "ppr", "nnet", "polymars") model = rlm(NetAMT ~ Playtime + LoginCnt, data, use = "lm") |
|