Skip to content

martelosaurus/paper-RCIT

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

Ratings and Cooperative Information Transmission

Forthcoming at Management Science

The sender and receiver agree on a message function m:[0,1]->[0,1]. The sender privately observes q, which is uniformly distributed on [0,1]. She sends the receiver the message m(q). The receiver receives the message m_tilde = m(q)+e, where e is distributed on [-e_bar,e_bar] according to the PDF f. She then takes an action A(m_tilde). The sender and receiver incur the cost ((q-A(m_tilde))^2)*I(q) where I:[0,1]->[0,1] is the importance function.

We look at two dimensions: the importance function and the error distribution. In one set of analyses, we assume uniform importance and non-uniform error. In the other, we assume non-uniform importance and uniform error.

Non-Uniform Error, Uniform Importance

I(q)=1 and f is the PDF of a random variable that is distributed according to a quadratic distribution on [-e_bar,e_bar]. We require that (1) f is symmetric about zero and (2) f integrates to one on [-e_bar,e_bar], which leaves one free parameter we denote by b.

from constant_I import Message

B = [-.2,-.1,0.,1.,2.,4.]
while B:
    n = len(B)
    _b = B.pop()
    m = Message(M=100,N=4,b=_b)
    m.plot_msg("msg" + str(n) + ".pdf",title=False)
    m.plot_err("err" + str(n) + ".pdf",2.,6.,title=False)

Uniform Error, Non-Uniform Importance

f(e)=1/(2*e_bar) and I is specified below.

from constant_f import Message

# importance function(s)
I = {
    'i1' : lambda x: x**3., 
    'i2' : lambda x: x**(-1.5),
    'i3' : lambda x: (6.*(x-.5)**2.+.5)**3.
    }

# for each importance function, plot discrete messages of size 5 and 20
for i in I:
    for n in [5,20]:
        m = Message(n,I[i])
        m.plot_msg("msg" + i + str(n) + ".pdf",title=False)

About

Code for "Ratings and Cooperative Information Transmission"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages