R
선형회귀분석 예제
코딩탕탕
2022. 10. 26. 12:31
선생님 코드
library(rJava)
library(DBI)
library(RJDBC)
drv <- JDBC(driverClass = "org.mariadb.jdbc.Driver",
classPath = "C:/work/mariadb-java-client-2.6.2.jar")
conn <- dbConnect(drv = drv, "jdbc:mysql://127.0.0.1:3306/test", "root", "123")
conn
dbListTables(conn) # 테이블 목록 보기
query <- "select jikwon_pay,date_format(now(),'%Y') - date_format(jikwon_ibsail,'%Y') + 1 as jikwon_ibsa from jikwon"
datas <- dbGetQuery(conn, query)
head(datas, 3)
is(datas)
str(datas)
table(datas$jikwon_ibsa) # 입사년도별 건수
cor(datas$jikwon_ibsa, datas$jikwon_pay) # r : 0.9196725
model <- lm(formula = jikwon_pay ~ jikwon_ibsa, data = datas)
model
plot(datas$jikwon_ibsa, datas$jikwon_pay)
abline(model, col='red')
summary(model)
go_func <- function(){
y_num <- readline('근무년수 입력:')
y_num <- as.numeric(y_num)
new_data <- data.frame(jikwon_ibsa=y_num)
return(predict(model, newdata = new_data))
}
cat('예측결과는 ', go_func())
작성자 코드
install.packages("rJava") # install
install.packages("DBI") # install
install.packages("RJDBC") # install
library(rJava)
library(DBI)
library(RJDBC)
drv <- JDBC(driverClass = "org.mariadb.jdbc.Driver",
classPath = "C:/work/mariadb-java-client-2.6.2.jar")
conn <- dbConnect(drv = drv, "jdbc:mysql://127.0.0.1:3306/test", "root","123") # ip주소와 포트번호, database명, ID, PW를 입력한다.
conn
dbListTables(conn) # test table 호출
query <- "select jikwon_pay, date_format(now(),'%Y') - date_format(jikwon_ibsail,'%Y') + 1 as jikwon_ibsa from jikwon"
goodsAll <- dbGetQuery(conn, query) # query문 참조
goodsAll
cor(goodsAll$jikwon_ibsa, goodsAll$jikwon_pay) # 양의 상관관계가 있다.
jik <- lm(formula = jikwon_pay ~ jikwon_ibsa, data = goodsAll)
summary(jik)
plot(goodsAll$jikwon_ibsa, goodsAll$jikwon_pay)
coef(jik)
fitted(jik)[1:4] # 모델이 예측한 값(dist)
residuals(jik)[1:4] # 모델과 실제값과의 차이(residuals, 잔차)
fitted(jik)[1:4] + residuals(jik)[1:4] # 예측값 + 잔차 = 실제값. 잔차 = 실제값 - 예측값
confint(jik)
y_num <- readline('근무년수 입력:')
y_num <- as.numeric(y_num)
y_num
predict(jik, newdata = data.frame(jikwon_ibsa=y_num))
abline(jik, col = 'blue')
현재 날짜에서 입사일을 뺀 것에 + 1을 해주면 근무 년수를 계산할 수 있다.