R намерете ъгъл между две линии, когато има коефициенти на наклон и пресичане

Имам времева серия:

x

4557  9940  9855  9894 10142  9501  9532  9229  9169  9214  9347  9176  8951  9344  9873  9970
9139  9420  9476  9205  9271  8632  8730  9336  9150  9601 10012  9841  9951  9222  8799  9316
10087  9677  9154  9019 10549  9629  9131  9560 10246 10982 11748  9054  8690  9923

tt<-1:length(x)

plot(x, xaxt = "n", type = "l", xlab = NULL, ylab = NULL, col = "royalblue2", lwd = 2.3)

Искам да добавя линеен тренд:

fit <- lm(x ~ tt)
co <- coef(fit)
co
    (Intercept)             tt 

    8940.23478           21.27031 

И тогава трябва да намеря ъгъл между две червени линии:

abline(8940.23478, 21.27031, col = "red", lwd = 2)
abline(8940.23478, 0, col = "red", lwd = 2)

Как мога да управлявам това?

Ето моята графика: График с две червени линии


person Marta    schedule 18.02.2014    source източник
comment
Съвет: Можете да игнорирате прихващането.   -  person Sven Hohenstein    schedule 18.02.2014


Отговори (1)


Тъй като вашият втори наклон е 0, изчисляването на ъгъла между тази права и тази с наклон 21.27031 е много лесно:

atan(21.27031) * 180 / pi

# [1] 87.30828

Ъгълът между правата и оста x е около 87°.

person Sven Hohenstein    schedule 18.02.2014
comment
Благодаря за отговора. Вече го изчислих. Но вижте изображението: gyazo.com/85aa9963769fb9f60a4545a328162ed2 Не може да има ъгъл 87 градуса - person Marta; 18.02.2014
comment
@user3227114 Без етикети на оста x не можете да видите ъгъла от графиката. Имайте предвид, че можете да промените височината и ширината на графиката и ъгълът може да изглежда различен, въпреки че винаги е един и същ. - person Sven Hohenstein; 18.02.2014
comment
Благодаря много! Но пак имам проблем. Може би можете да ми помогнете да го реша? Имам друга времева серия x 1.133421 1.309256 1.322476 1.351425 1.319168 1.334070 1.323227 1.328096 1.321736 1.340243 1.348989 1.325523 1.32164 0 1.360659 1.366150 1.344534 1.327169 1.326433 1.372520 1.395546 1.365872 1.335496 1.380183 1.425236 1.330601 1.334444 1.3148 22 1.395691 1.393629 1.356322 1.285601 1.333727 1.358382 1.356309 1.339961 1.307129 1.331690 1.301070 1.290220 1.302197 1.497 267 1.531415 1.549200 1.393307 1.324051 1.323692 - person Marta; 18.02.2014
comment
@SvenHohenstein, графиката изглежда същата, но наклонът е 0,001841031. gyazo.com/ae2de73dcec3d95941b7c63746b2c68d Защо е така? - person Marta; 18.02.2014
comment
@user3227114 Използвайте тези команди, за да начертаете диаграма с идентични граници на оста x и оста y: fit <- lm(x ~ seq_along(x)); co <- coef(fit); plot(x, type = "l", xlim = c(0, length(x)), ylim = c(0, length(x))); abline(co); abline(c(co[1], 0)). Сега можете да видите, че наклонът е изключително малък. - person Sven Hohenstein; 18.02.2014