2014-04-23 2 views
0

이 매개 변수보다 작은 매개 변수를 갖는 모든 구성 요소가 전체 포트폴리오의 25 %까지 합계되는 매개 변수의 값을 찾으려고합니다. 예를 들어 포트폴리오의 가중치를 기반으로 매개 변수 값을 찾으십시오.

R.

를 사용 물론

는, 내가 100 개 구성 지분 증권을 보내고 시장 지수에 대한 포트폴리오를 가지고있다. 이 포트폴리오의 25 %는 총 시장 가치의 25 %를 의미합니다. 나는 P/E 비율을 말하자면, P/E 비율이 이보다 작은 모든 증권이이 포트폴리오의 시장 가치의 25 %에 기여한다는 매개 변수의 가치를 찾고 싶습니다.

내가 P/E 비율에 대한 25 %의 값을 찾기 위해 '분위수'기능을 사용할 수 있다는 것을 알고,

Bottom_Quartile <- data[(data$PE < quantile(data$PE,0.25),] 

하지만 그 값은 반드시 25 %의 시장 가치에 해당하고, 위의 생성을 초래하지 총 시장 가치 = 원본 총 시장 가치의 25 %를 제공하지 않음.

다른 매개 변수 (이 경우 25 % 시장 가치)의 주어진 분위수에 따라 특정 매개 변수 (이 경우 P/E 비율) 값을 찾는 데 도움이되는 함수가 있는지 궁금합니다.

미리 도움을 주셔서 감사합니다.

좋아, 여기 업데이트가 있습니다. 다음 작업을 수행하는 몇 가지 방법을 시도했지만 매우 비효율적으로 보입니다.

#compute % market weight first 
data$MarketValuePct <- data$MarketValue/sum(data$MarketValue) 
#sort the result by descend order of P/E 
sort_data <- data[order(data$PE),] 
#calculate cumulative sum for percentage market value 
sort_data$cumsum_MarketValuePct <- cumsum(sort_data$MarketValuePct) 
#Locate the edge of bottom quartile 
Bottom_quartile <- sort_data[sort_data$cumsum_MarketValuePct < 0.25, ] 
#The bottom value of PE is what I was looking for 
4th_Qartile_PE <- Bottom_quartile [nrow(Bottom_quartile),(col# of PE)] 

나는 더 우아하고 정확한 방법을 찾고 있습니다. 아이디어가 있으면 친절하게 도와주십시오.

감사합니다.

답변

1

시장 가치의 분위수는 원하지 않지만 총 시장 가치의 25 %는 필요하지 않습니다. order을 사용하여 PE를 증가시키고 cumsum을 사용하여 주식을 정렬하여 특정 PE 이하의 주식의 시가 총액을 계산할 수 있습니다.

i <- order(PE) 
tail(which(cumsum(MCap[i]) < .25 * sum(MCap)), 1) 
+0

감사합니다. 이것은 정확히 내가 한 일이지만, 이것을하기에 더 우아하고 정확한 방법이 있는지 궁금합니다. –

관련 문제