태그 보관물: ggplot2

ggplot2

ggplot2에서 회귀선을 예측하거나 확장하는 방법은 무엇입니까? 사용하면 loess를 사용하여 차트를

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 주마다 릴리스되지만 현재는 존재하지 않습니다. 아직이 예측 질문에 대한 일반적인 답변에 관심이 있습니다.)



답변

@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)


답변

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

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

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

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


답변