Funções de Utilidade…em R

PaperArtist_2014-02-20_07-45-07

Eu sei que você está louco para ver uma função de utilidade em três dimensões. Então eu vou usar o R para te mostrar algumas e, de brinde, você ganha umas curvas de nível, ok? Após instalar o R, vamos criar a função, “u” que receberá (<-) uma função (function(x,y)) que será a que eu determinar (no caso, a Cobb-Douglas abaixo, com pesos 0.5 e 0.5).

Em seguida, farei com que as variáveis sejam criadas como sequências que se iniciam em 0.1 e tão até 40, de forma discreta (de 0.3 em 0.3, ou seja ela é algo como: 0.1, 0.4, 0.7, 1.0, …., 40).

Escolhi mostrar algumas curvas de nível sendo que, cada nível corresponde a um valor de “a”. Finalmente, o gráfico em 3D é dado pelo comando “persp” e as curvas de nível por “contour”. Você só precisa copiar e colar os comandos abaixo no R e executá-los (em cada linha, clique Ctrl+R).

Vamos ver os comandos e os gráficos?

# cobb-douglas

u <- function(x, y) (x^0.5)*(y^0.5)

x <- seq(.1, 40, by=.3)
y <- seq(.1, 40, by=.3)
a <- c(1,5,10,15, 20, 30)

persp(x, y, outer(x, y, u), ticktype=”detailed”)
contour(x, y, outer(x, y, u), levels=a)

cdouglas1

cdouglas2

Podemos mudar os expoentes da Cobb-Douglas para ver o que acontece. O que acontece quando aumentamos o valor do expoente de x (note que mantenho a hipótese de que a soma dos expoentes é igual à unidade).

# cobb-douglas

u <- function(x, y) (x^0.8)*(y^0.2)

x <- seq(.1, 40, by=.1)
y <- seq(.1, 40, by=.1)
a <- c(1,5,10,15, 20, 30)

persp(x, y, outer(x, y, u), ticktype=”detailed”)
contour(x, y, outer(x, y, u), levels=a)

cobb2

cobb21

Em 3D é mais difícil visualizar (mas nem tanto). Nas curvas de nível (nossas curvas de indiferença), contudo, você vê que, agora, elas são mais paralelas ao eixo y do que antes. Você pode imaginar o que acontece se eu continuar aumentando o expoente de x e diminuindo o de y, não?

Outra função interessante é a CES (um acrônimo para constant elasticity of substitution) que você encontra no livro do Chiang (hoje, Chiang & Wainwright) de matemática para economistas. Bom, a elasticidade de substituição constante diz respeito à substituição entre x e y na função (o resto, bem, leia aí porque não vou explicar o que é elasticidade, né?). Vamos aos gráficos?

u <- function(x, y) (((0.5*x^(0.8))+(0.5*y^(0.8)))^(1/0.8))

x <- seq(.1, 40, by=.5)
y <- seq(.1, 40, by=.5)
a <- c(1,5,10,15, 20, 30)

persp(x, y, outer(x, y, u), ticktype=”detailed”)
contour(x, y, outer(x, y, u), levels=a)

CES1 CES2

A função CES é um caso interessante porque dela se podem derivar todas as funções de utilidade básicas que conhecemos. Vai lá no livro que indiquei e pesquise. Ou faça uma pesquisa na internet.

Caso você tenha gostado do que viu, aconselho-o a começar copiando e colando meus comandos no R, fazendo um esforço inicial para aprender a manusear o programa. Lá no meu blog sempre coloco dicas para R, sob o título “Momento R do Dia”.

2 respostas em “Funções de Utilidade…em R

  1. Pingback: Momento R do Dia – especial | De Gustibus Non Est Disputandum

  2. Pingback: Curvas de nível…na prática | Nepom - Núcleo de Estudos de Política Monetária

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s