[R] R을 이용한 통계 분석 및 데이터 시각화 : 2차 이상의 추세선

 정보

  • 업무명     : R을 이용한 통계 분석 및 데이터 시각화 : 2차 이상의 추세선

  • 작성자     : 박진만

  • 작성일     : 2020-04-03

  • 설   명      :

  • 수정이력 :

 

 내용

[개요]

  • R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석 환경입니다. 

  • 통계 분석 기능으로 통계 검정, 선형 회귀 분석, 시계열 데이터 분석, 클러스터링 등을 지원하고 있습니다.

  • 또한 최신 논문에서 발표된 같은 새로운 기술도 R로 구현되는 경우가 많습니다.

  • 특히 시각화 기능으로 히스토그램, 막대 그래프, 선 그래프, 산포도, 나무 모양 그림이나 히트맵 등 기본적인 그래프가 기본으로 지원하고 있습니다.

  • 또한 ggplot2 등의 패키지를 사용하여 더 높은 수준의 그림을 가시화할 수 있습니다.

 

 

[특징]

  • 데이터를 이해하기 위해서 통계 분석 및 데이터 시각화가 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어

     

[기능]

  • 데이터형 소개

 

[활용 자료]

  • 없음

 

[자료 처리 방안 및 활용 분석 기법]

  • 없음

 

[사용법]

  • 소스 코드 예시 참조

 

[사용 OS]

  • Windows 10

 

[사용 언어]

  • R v3.6.2

  • R Studio v1.2.5033

 

 소스 코드

[2차 이상의 추세선]

  • R에서 최소 제곱 법을 이용하여 2 차 추세선 등의 고차 추세선을 그리려면 nls함수를 이용한다. nls함수를 이용하면 데이터 이외에도 근사하고 싶은 수식 및 초기 값을 입력으로 주면 된다.

 

[2차 추세선]

x <- runif(100)
y <- 10 * x ^2 + 10 + rnorm(100)

plot(x, y, xlim = range(x), ylim = range(y))

f <- y ~ a*x^2 + b*x + c
obj <- nls(f, start = c(a = 0, b = 0, c = 0))
obj
## Nonlinear regression model
##   model: y ~ a * x^2 + b * x + c
##    data: parent.frame()
##      a      b      c
## 11.558 -2.007 10.352
##  residual sum-of-squares: 129.7
## Number of iterations to convergence: 1
## Achieved convergence tolerance: 2.564e-08

df <- data.frame(x = seq(0, 10, length = 1000))
yy <- predict(obj, df)

par(new = T)
plot(df$x, yy, type = "l", col = "darkred", lwd = 2,
     xlim = range(x), ylim = range(y), xlab = "", ylab = "")
    

 

[3차 추세선]

x <- runif(100, -1, 1)
y <- 2 * x ^ 3 - x ^ 2 + 5 * x - 10 + rnorm(100, 2, 1)
plot(x, y, xlim = range(x), ylim = range(y))

f <-  y ~ a*x^3 + b*x^2 + c*x + d
obj <- nls(f, start = c(a = 0, b = 0, c = 0, d = 0))
obj
## Nonlinear regression model
##   model: y ~ a * x^3 + b * x^2 + c * x + d
##    data: parent.frame()
##       a       b       c       d
##  1.1161 -0.9615  5.6329 -7.9046
##  residual sum-of-squares: 100.1
## Number of iterations to convergence: 1
## Achieved convergence tolerance: 2.96e-08

df <- data.frame(x = seq(-10, 20, length = 1000))
yy <- predict(obj, df)
 
par(new = T)
plot(df$x, yy, type = "l", col = "darkred", lwd = 2,
     xlim = range(x), ylim = range(y), xlab = "", ylab = "")

 

[다음글]

 

[R] R을 이용한 통계 분석 및 데이터 시각화 : 산포도

정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 산포도 작성자 : 박진만 작성일 : 2020-04-03 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분..

shlee1990.tistory.com

 

[이전글]

 

[R] R을 이용한 통계 분석 및 데이터 시각화 : bean 플롯

정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : bean 플롯 작성자 : 박진만 작성일 : 2020-04-02 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계..

shlee1990.tistory.com

 

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음