-1

我想以图形方式表示一条线的斜率,其中该线由采用一组点的加权平均值的公式确定。权重基于未表示的外部因素。

我有一个聚合图,x 轴上的 x 变量(价格)和 y 上的依赖(数量)。我试图将该图与另一个图重叠,该图只是一组线,表示我们根据经验得出的数量相对于价格的变化的陡峭程度,不等于曲线的斜率。

x 轴应该是价格;y 应该是体积;曲线的斜率应该是弹性的。有没有办法让我在 R 中做到这一点?

弹性是价格变化 1 美元时数量的变化。在不同的价位是不一样的。

df

Category       Price   Volume_Band     Elasticity 

alpha        $1      50,000          -0.5 
beta         $2      100,000         -1 
gamma        $3      200,000         -1.5 
delta        $4      250,000         -2
4

2 回答 2

1

我仍然不确定,你的图表应该是什么样子。我会给出两个变体,但也许你可以提供一个模型?

可能性一:

DF <- read.table(text="Category       Price   Volume_Band     Elasticity 
alpha        $1      50,000          -0.5
beta         $2      100,000         -1 
gamma        $3      200,000         -1.5 
delta        $4      250,000         -2",header=TRUE)

DF$Price <- as.numeric(gsub("\\$","",DF$Price))
DF$Volume_Band <- as.numeric(gsub(",","",DF$Volume_Band))

dx <- 0.2
dy <- dx*DF$Elasticity


DF$xstart <- DF$Price-dx
DF$xend <- DF$Price+dx
DF$ystart <- DF$Volume_Band-dy
DF$yend <- DF$Volume_Band+dy


library(ggplot2)

p1 <- ggplot(DF, aes(x=Price, y=Volume_Band)) +
  geom_point() +
  geom_segment(aes(x=xstart,y=ystart,xend=xend,yend=yend))

print(p1)

在此处输入图像描述

请注意,斜坡太小而无法看到。

可能性2:

p2 <- ggplot(DF, aes(x=Price, y=Volume_Band)) +
  geom_point(aes(colour=Elasticity),size=3) +
  scale_colour_gradient(high="black",low="red")

print(p2)

在此处输入图像描述

于 2013-07-12T07:38:25.083 回答
1

查看数据,它似乎并不意味着曲率太大,因此直线拟合会产生:

 lm(dat[[4]]~dat[[3]])


Call:
lm(formula = dat[[4]] ~ dat[[3]])

Coefficients:
(Intercept)     dat[[3]]  
     -2e-01       -7e-06  

plot(dat[[3]],dat[[4]])
abline(coef(lm(dat[[4]]~dat[[3]])))
于 2013-07-11T19:37:28.393 回答