# 원격 DB의 jikwon 테이블의 자료로 근무년수에 대한 연봉을 예측하는 선형회귀 모델 작성 후 예측하기

library(rJava)
library(DBI)
library(RJDBC)
drv <- JDBC(driverClass = "org.mariadb.jdbc.Driver", classPath = "D:/1. 프로그래밍/0. 설치 Program/mariaDB/mariadb-java-client-2.6.2.jar")
drv <- JDBC(driverClass = "org.mariadb.jdbc.Driver", classPath = "D:/1. 프로그래밍/0. 설치 Program/mariaDB/mariadb-java-client-2.6.2.jar")
conn <- dbConnect(drv, "jdbc:mysql://127.0.0.1:3306/test", "root", "123")
dbListTables(conn)
query <- "select jikwon_no, jikwon_name, buser_num, jikwon_jik, jikwon_pay,
date_format(now(), '%Y') - date_format(jikwon_ibsail, '%Y') + 1 as jikwond_ibsa
from jikwon"
datas <- dbGetQuery(conn, query)
datas
str(datas)
table(datas$jikwon_jik)
cor(datas$jikwond_ibsa, datas$jikwon_pay) # 0.9196725
par(mar=c(1,1,1,1))
par(mfrow=c(1))
plot(datas$jikwond_ibsa, datas$jikwon_pay)

 

model <- lm(jikwon_pay ~ jikwond_ibsa, data = datas)
model
summary(model) # Multiple R-squared(설명력):  0.8458
func <- function(){
  y_num = readline("근무년수 입력 : ")
  y_num <- as.numeric(y_num)
  newData <- data.frame(jikwond_ibsa = y_num)
  predict(model, newdata = newData)
}
func()

+ Recent posts