2017-06-03 127 views
1

使用R,有沒有一個公式可以幫助我根據這個條件計算銷售佣金。爲例如:計算線性佣金 - 尋找公式

如果生長(以%計)爲5%和7%之間,則推銷員將接收這將是從10%線性至12.5%

變量佣金:

TargetAmt<-100 
Earned<-105.6 
PctGrowth<-((Earned-TargetAmt)/TargetAmt)*100 
PctGrowth 

5.6

因此,我現在需要計算自己的佣金,這將是線性的,從10%到12.5%。

我可以通過計算斜線來手動完成此操作。但是,我如何在R中執行此操作?

+2

你的觀點是(x1,y1)=(0.05,0.10)和(x2,y2)=(0.07,0.125)。只需使用直線的點斜率形式:y-y1 = m *(x-x1),其中m =(y2-y1)/(x2-x1)。 – Robert

回答

3

1)LM對於5.6%的佣金增長是10.6%

growth <- c(5, 7) 
commission <- c(10, 12.5) 

fit <- lm(commission ~ growth) 
predict(fit, list(growth = 5.6)) 
##  1 
## 10.75 

1A)可替換地,我們可以從線性迴歸得到的公式,然後只是應用它我們自己。在這種情況下,斜率爲1.25和截距爲3.75:

> fit 
Call: 
lm(formula = commission ~ growth) 

Coefficients: 
(Intercept)  growth 
     3.75   1.25 

所以佣金是1.25倍的增長,以百分比加3.75個百分點,即1.25 * 5.6 + 3.75 = 10.75。

2)約的另一種方法是使用approx這樣的:

approx(growth, commission, xout = 5.6)$y 
## [1] 10.75 
+0

謝謝G.格洛騰迪克。這有助於堆積如山。 – MaxPD

+2

這真的很好,很簡單,只是一件事,OP要求10-12.5的佣金。所以你一定要改變佣金< - c(10,12)調試< - c(10,12.5) –

+0

我將使用'approx'函數。它是最直接的。謝謝。 – MaxPD

2

替代解決方案

尋找線

使用y的方程= MX + c:

m = (0.125 - 0.1)/(0.07-0.05) 
m = 0.025/0.02 
m = 1.25 

替代0.1(10%)和0.05(5%)到方程才能獲取C

y = 1.25x + c 
0.1 = (1.25 * 0.05) + c 
0.1 - (1.25 * 0.05) = c 
c = 0.0375 

我們現在有我們的線方程:

y = 1.25x + 0.0375 

代碼

TargetAmt <- 100 
Earned <- 105.6 

profitAsDecimal = (Earned/TargetAmt) - 1 
commission = (1.25 * profitAsDecimal) + 0.0375 
commissionAsDecimal = (1.25 * profitAsDecimal) + 0.0375 

因此,對於5.6的增長,您的commissionAsDecimal將是0.1075。乘以100得到10.75的百分比。

這個答案會給你一個線性結果,從5%到7%等於10%到12.5%。上面的答案是從10%到12%

+1

謝謝。你是對的。他有一個錯字。我知道這個概念。我想要R中的公式。謝謝你的幫助。 – MaxPD