ggplot2에서 회귀선을 예측하거나 확장하는 방법은 무엇입니까?


17

Emacs 및 Firefox 릴리스의 날짜 및 버전 번호라는 두 가지 시계열이 포함 된 데이터 프레임이 있습니다. 하나의 ggplot2 명령을 사용하면 loess를 사용하여 차트를 쉽게 만들 수 있습니다 (약간 재미있어 보이지는 않지만).

미래의 선을 어떻게 확장 할 수 있습니까? Emacs와 Firefox 버전 번호가 어디에서 언제 교차하는지 결정하고 오류 범위를 표시하는 방법이 있으면 더 좋습니다.

ggplot2가 선을 플로팅한다고 가정하면 모델이 있어야하지만 선을 확장하거나 모델을 꺼내서 무언가를 수행하는 방법을 알지 못합니다.

> library(ggplot2)
> programs <- read.csv("http://www.miskatonic.org/files/se-program-versions.csv")
> programs$Date <- as.Date(programs$Date, format="%B %d, %Y")
> head(programs)
  Program Version       Date
1   Emacs    24.1 2012-06-10
2   Emacs    23.4 2012-01-29
3   Emacs    23.3 2011-03-10
4   Emacs    23.2 2010-05-08
5   Emacs    23.1 2009-07-29
6   Emacs    22.3 2008-09-05
> head(subset(programs, Program == "Firefox"))
   Program Version       Date
18 Firefox      16 2012-10-09
19 Firefox      15 2012-08-28
20 Firefox      14 2012-06-26
21 Firefox      13 2012-06-15
22 Firefox      12 2012-04-24
23 Firefox      11 2012-03-13
> ggplot(programs, aes(y = Version, x = Date, colour = Program)) + geom_point() + geom_smooth(span = 0.5, fill = NA)

날짜 별 이맥스 및 Firefox 버전

(참고 : "dot one"과 "dot ten"은 산술적으로 동일하기 때문에 초기 Firefox 버전을 퍼지하고 0.1 등을 0.01 등으로 설정해야했습니다. Firefox는 6 주마다 릴리스되지만 현재는 존재하지 않습니다. 아직이 예측 질문에 대한 일반적인 답변에 관심이 있습니다.)

답변:


21

@Glen이 언급했듯이 stat_smooth외삽을 지원 하는 방법 을 사용해야하지만 loess그렇지 않습니다. lm그러나 않습니다. 당신이해야 할 일은 예측하고자하는 범위를 포함하도록 x 축의 fullrange매개 변수를 사용 stat_smooth하고 확장하는 것입니다. 데이터가 없지만 mtcars 데이터 세트를 사용하는 예는 다음과 같습니다.

ggplot(mtcars,aes(x=disp,y=hp)) + geom_point() + xlim(0,700) +
stat_smooth(method="lm",fullrange=TRUE)

1
감사합니다, 이것은 작업을 수행합니다 (Firefox 라인이 작동하도록 일부 데이터를 남겨 둡니다) : ggplot (subset (programs,! (Program == "Firefox"& Version <4))), aes (y = Version, x = Date, 색상 = 프로그램)) + geom_point () + ylim (0,30) + xlim (as.Date ( "1985-01-01"), as.Date ( "2015-01-01")) + stat_smooth (방법 = lm, fullrange = TRUE)
William Denton

3

ggplot2 외부에서 향후 관측 값을 예측 한 다음 예측 된 값을 플로팅해야합니다. 이러한 예측에 대한 신뢰 구간을 얻을 수도 있습니다.

loess 함수를 살펴보십시오. 데이터 범위 밖에서 예측을 수행하는지 확실하지 않지만 일부 부드러운 함수는 확실합니다.

그러나 일반적으로 데이터 범위 밖의 값을 예측하는 것은 현명하지 않습니다. 나는 이러한 예측을 많이 신뢰하지 않을 것입니다.

시계열 모델을 사용하여 예측 값을 조사 할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.