Сравнение доходности акций в R

У меня есть две серии результатов в R. Я хочу сравнить каждое наблюдение в этих сериях. Проблема в том, что если я сравниваю два наблюдения с отрицательными знаками, это дает результаты, что минимальное значение больше максимального. Например, если у меня есть -0,5 и -1,2 как доходность за конкретный месяц. Это будет составлять -0,5 как большее значение. Математически это правильно. Но с финансовой точки зрения, если акция приносит -0,5%, а другая -1,2%, акция с -1,2% приносит большие убытки, следует выбирать эту акцию. Подскажите, как можно решить эту проблему. Я пытаюсь повторить код. Пожалуйста, проверьте код ниже

library(Lock5Data)
library(lubridate)
library(tbl2xts)
options(scipen = 999)
SandP500$Date<-mdy(SandP500$Date)
SandP500<-tbl_xts(SandP500)
SandP500<-SandP500[,4]
SandP500$logret_1<-diff(log(SandP500),lag=1)
SandP500_data<-SandP500[,1]
SandP500_log36ret<-diff(log(SandP500_data),lag=36)
SandP500_fulldata<-cbind(SandP500,SandP500_log36ret)
names(SandP500_fulldata)<-c("close","log1","lag36")
SandP500_fulldata<-SandP500_fulldata[-1:-36,]

ifelse(SandP500_fulldata$lag36>SandP500_fulldata$log1,"normal","abnormal")["2014-08-12"]
## Check observation on 
SandP500_fulldata["2014-08-12"]

person simar    schedule 16.07.2020    source источник


Ответы (1)


Вы можете попробовать использовать abs(). Например,

ifelse(SandP500_fulldata$lag36<0 & SandP500_fulldata$log1<0,
               (ifelse((abs(SandP500_fulldata$lag36))>(abs(SandP500_fulldata$log1)),"normal","abnormal")),
               (ifelse((SandP500_fulldata$lag36)>(SandP500_fulldata$log1),"normal","abnormal")))

дает,

           lag36   
2014-08-12 "normal"

Вот очень четкое объяснение вложенного ifelse: https://stackoverflow.com/a/18016872/13249862.

person bttomio    schedule 16.07.2020
comment
но с этим я не смогу сравнить две акции, одну с положительной, другую с отрицательной доходностью - person simar; 16.07.2020
comment
Не могли бы вы проверить, решает ли обновленный код (вложенный ifelse) вашу проблему? - person bttomio; 16.07.2020