Production & Factor Prices
Cobb–Douglas production
\[Y = A\,K^{\alpha} L^{1-\alpha}\]
- \(A\) = total factor productivity, \(K\) = capital, \(L\) = labor, \(\alpha\) = capital’s share.
- Marginal products: \(MPL = (1-\alpha)\dfrac{Y}{L}\), \(MPK = \alpha\dfrac{Y}{K}\).
- Factor prices (competitive firms): real wage \(W/P = MPL\); real rental \(R/P = MPK\).
- Income shares are constant: labor gets \((1-\alpha)Y\), capital gets \(\alpha Y\) — and they add up to Y (Euler’s theorem).
#| standalone: true
#| viewerHeight: 540
library(shiny)
ui <- fluidPage(
tags$head(tags$style(HTML("body{font-family:'Inter',system-ui,sans-serif;}
.sb{background:#f0f4f8;border-radius:6px;padding:12px 14px;margin-top:10px;font-size:14px;line-height:1.85;} .sb b{color:#1f3b73;}"))),
sidebarLayout(
sidebarPanel(width=4,
sliderInput("A","Productivity A:",min=0.5,max=3,value=1,step=0.1),
sliderInput("alpha","Capital share α:",min=0.1,max=0.9,value=0.3,step=0.05),
sliderInput("K","Capital K:",min=10,max=500,value=125,step=5),
sliderInput("L","Labor L:",min=10,max=500,value=100,step=5),
uiOutput("sb")),
mainPanel(width=8, plotOutput("plot",height="460px"))))
server <- function(input,output,session){
Yf <- function(K,L,A,a) A*K^a*L^(1-a)
output$plot <- renderPlot({
a<-input$alpha; A<-input$A; K<-input$K
Lg <- seq(10,500,length.out=200); Yg <- Yf(K,Lg,A,a)
Ystar <- Yf(K,input$L,A,a); mpl <- (1-a)*Ystar/input$L
par(mar=c(4.2,4.6,1,1))
plot(Lg,Yg,type="l",col="#1f3b73",lwd=3,xlab="Labor L",ylab="Output Y",las=1,bty="l",cex.lab=1.15)
points(input$L,Ystar,pch=19,col="#1c6b4a",cex=1.7)
# tangent (slope = MPL)
abline(a=Ystar-mpl*input$L,b=mpl,col="#b5462a",lwd=1.5,lty=2)
legend("topleft",c("Production function Y(L)","Current point","Slope = MPL (real wage)"),
col=c("#1f3b73","#1c6b4a","#b5462a"),lwd=c(3,NA,1.5),pch=c(NA,19,NA),lty=c(1,NA,2),bty="n")
})
output$sb <- renderUI({ a<-input$alpha; Y<-input$A*input$K^a*input$L^(1-a)
mpl<-(1-a)*Y/input$L; mpk<-a*Y/input$K
HTML(sprintf("<div class='sb'>Output <b>Y = %.0f</b><br>Real wage W/P = MPL = <b>%.2f</b><br>Real rental R/P = MPK = <b>%.2f</b><br>Labor income = <b>%.0f</b> (%.0f%%)<br>Capital income = <b>%.0f</b> (%.0f%%)</div>",
Y,mpl,mpk,(1-a)*Y,100*(1-a),a*Y,100*a)) })
}
shinyApp(ui,server)
What to notice
- More capital → wage up, rental down (diminishing returns to capital).
- More labor → wage down, rental up.
- The shares (labor \(1-\alpha\), capital \(\alpha\)) never change with K or L — only moving \(\alpha\) re-slices the pie.