2016-12-02 8 views
-2

나는 인구 (% 포함)의 다른 비율에 대해 다음 누적 비용 데이터 ($ 10 억)이 있습니다R 보간

test_df <- data.frame(cum.pop = c(0, 8.3, 37.7, 70.5, 90.5, 96.7, 98.7, 100), 
        cum.cost = c(0, 0.7, 3.4, 6.3, 14.1, 22.6, 28.3, 41.9)) 

내가있는 인구의 비율을 계산할을 매 20 억 달러가 충당됩니다.

EDIT :

이하로 그래프 곡선은 지수 함수와 같이, 원하는 결과를 생성하지 않는 선형 피팅 : I가 지수 맞게 어떻게 enter image description here

? Approxfun을 사용하는 AEBilgrau의 대답은 작동하지만 출력 결과가 정확한 결과를 산출하지 못합니다.

답변

1

당신 (overfitting의 위험이 있지만) 너무 스플라인에 맞게 시도 할 수 있습니다 :

library(spline) 
ispl <- interpSpline(cum.pop ~ cum.cost, test_df) 

# plots the interpolated spline 
plot(ispl)  
points(test_df[,2], test_df[,1], pch=19) 

enter image description here

cum.cost <- seq(0, 42, 2) # every 2B$ 
cum.cost 
# [1] 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 
# predicted pop 
pred.cum.pop <- predict(ispl, cum.cost)$y 
pred.cum.pop 
# [1] 0.00000 22.51128 44.72944 67.60543 82.57553 89.24549 90.81892 90.50744 90.98837 92.45519 94.38025 96.23579 97.53846 98.26304 98.65462 
#[16] 98.93703 99.17804 99.38472 99.56401 99.72285 99.86816 100.00689 

# plots othe predicted cum.pop for each 2B$ rise in cum.cost 
plot(ispl)  
points(cum.cost, pred.cum.pop, col='red', pch=19) 

enter image description here

+0

감사합니다. sandipan에게 감사드립니다. –

0

"최선의 접근법"과 같은 것은 없습니다. 최소한 "최상의"의미와 제공되는 정보가 거의없는 경우가 아닙니다. 어떤 접근법은 다른 접근법보다 낫습니다. 어쨌든, 이것이 프로그래밍 질문이 아닐 것입니다. 따라서 요구 사항에 맞는 접근 방식을 결정하고 수행하기를 원합니다. 당신이 (또는 당신의 목적을 위해 잘되지 않을 수 있습니다) 간단한 선형 보간을 수행 할 경우

, 당신은이 correspons 플롯

plot(cum.pop ~ cum.cost, data = test_df, type = "b") 
을 읽는이

# Load your toy data 
test_df <- data.frame(cum.pop = c(0, 8.3, 37.7, 70.5, 90.5, 96.7, 98.7, 100), 
         cum.cost = c(0, 0.7, 3.4, 6.3, 14.1, 22.6, 28.3, 41.9)) 

# Create a function that carries out the interpolation 
get_pop <- approxfun(x = test_df$cum.cost, y = test_df$cum.pop) 

# Call the function for every two billion dollars 
get_pop(seq(0, 40, by = 2)) 

과 같은 작업을 수행 할 수 있습니다

여기에는 데이터에 비교적 적은 노이즈가있는 것으로 보입니다. 그래서 그것은 괜찮을지도 모른다.

+0

예, '가장 좋은 방법은'AEBilgrau 매우 모호은 . 나는이 곡선을 기하 급수적으로 맞추는 방법을 찾기 위해 답을 편집했습니다. 선형 접근법은 효과가 있었지만 정확한 결과를 산출하지 못했습니다. –