pydecisions — A Python Library of management decision making techniques

In today’s world, we know the importance of taking logical decisions based on data. All major management decisions should be backed by data. Decades back, good managers rely on their intuition to take decisions (and some of them did very well too!) but this is no longer the case today. In-fact today, more often than not, managers needs to provide justification as to why such and such decisions were taken.

I have written this library to include some of the techniques employed in making management decisions (at-least some of the techniques which I use on a day to day basis). This is primarily intended to be used by managers to make quick data backed assessments. The library includes some functions related to machine learningstatisticslinear programming, finance, decision treesmarkov chain, etc.

You can also download the library details ( pdf format) at the link given below

Link to the details

The details as to how to use this library is mentioned below:

INSTALL:

pip install pydecisions

IMPORT:

import pydecisions as pyd

A COMPLETE EXAMPLE:

import pydecisions as pyd

a = pyd.evm(100,0.5,0.4,45)

print(a.results())

The following examples illustrates how to use this library.

EXAMPLES

1. Earned Value Management

Example:

a = pyd.evm(100,0.5,0.4,45)

print(a.results())

(where arg1 — Budget at Completion, arg2 — work planned to be completed at that point against the total work planned, arg3 — actual work completed at that point against the total work planned, arg4 — Actual Cost incurred till that point)

2. Financial functions

(a) Net Present Value

Example:

a = pyd.fin()

print(a.npv(.3,[-100,50,30,20,10]))

(where arg1 — rate, arg2 — yearly cash flows)

(b) Future Value

Example:

a = pyd.fin()

print(a.fv(0.10, 9, 300, 400))

(where arg1 — rate, arg2 — nos of years, arg3 — payment, arg4 — present value)

c) Present Value

Example:

a = pyd.fin()

print(a.pv(0.05, 10, 100, 30000))

(where arg1 — rate, arg2 — no of years, arg3-payment, arg4 — future value)

(d) Internal Rate of Return

Example:

a = pyd.fin()

print(a.irr([-100,30,90,75,20]))

(where arg1 — cash flows yearly)

3. Simple Linear Regression

Example:

a = pyd.slr()

print(a.results([1,2,3,4],[1.5,2.5,3.3,4.2],3))

(where arg1 — training X, arg2 — training Y and arg3 — test X)

4. Statistical tests

(a) T-test (mean of one group of scores)

Example:

a = pyd.statstest()

print(a.tt1([20,44,50,70,30],45))

(where arg1 — sample observations, arg2 — population mean)

(b) T-test (means of two independent samples of data)

Example:

a = pyd.statstest()

print(a.ttind([50,40,90,30,40], [60,40,20,10,70]))

(where arg1 — sample 1 observations, arg2 — sample 2 observations)

c) T-test (2 related samples of data).

Example:

a = pyd.statstest()

print(a.ttrel([55,20,23,12,12], [22,48,11,17,12]))

(where arg1 — sample 1 observations, arg2 — sample 2 observations)

5. Decision Analysis and Resolution

Example:

a = pyd.dar()

print(a.results([8,9],[7,6]))

(where arg1 — criteria scores for Alternative 1 and arg2 — criteria scores for Alternative 2)

6. Markov Chain

You need to import numpy in this example

i.e.

import pydecisions as pyd

import numpy as np

Example:

a = pyd.mc()

matrx = np.matrix([[0.7, 0.3],

[0.6, 0.4]])

I = np.matrix([[0.5, 0.5]])

print(a.results(matrx,I,3))

(where matrx — the transition matrix, I — the current state matrix, the third argument (3 in the above example) is for the number of iterations)

7. Bayes Rule

Example:

(For calculating P(A|B))

a = pyd.bayes()

print(a.results(0.6,0.4,0.2))

(where arg1 — P(A), arg2 — P(B), arg3 — P(B/A))

8. Linear Programming

Example:

Minimize: cost = -2*x[0] + 5*x[1], Subject to: -2*x[0] + 3*x[1] <= 7, 2*x[0] + 1*x[1] <= 5

x[1] >= -4 (where: -infinity <= x[0] <= infinity)

a = pyd.lp()

c = [-2, 5]

A = [[-2, 3], [2, 1]]

b = [7, 5]

lp_x0b = (None, None)

lp_x1b = (-4, None)

print(a.results(c,A,b,lp_x0b,lp_x1b))

9. Decision Trees: Regression

Example:

a = pyd.DTr()

x = [[1, 2],

[2, 2],

[3, 3],

[4, 5],

[7, 4]]

y = [3,4,5,8,11]

z = [[3,2]]

a.results(x,y,z)

(where arg1 — training x, arg2 — training y and arg3 — test x)

Tree Image will be generated in the folder.

10. Decision Trees: Classification

Example:

a = pyd.DTc()

x = [ [20, 15, 2],

[60, 25, 4],

[70, 35, 6],

[80, 40, 8],

[90, 45, 10]]

y = [‘c0’, ‘c1’, ‘c1’, ‘c0’, ‘c1’]

z = [[60, 30, 5]]

a.results(x,y,z)

(where arg1 — training x, arg2 — training y and arg3 — test x)

Tree Image will be generated in the folder.

Some of these functions are completely written from scratch and some functions are built on the top of the existing standard library functions.

DEPENDENCIES — numpy, scipy, sklearn and graphviz libraries

Hope this article was helpful to you. Please post your comments and connect with me on Twitter and LinkedIn. Thank you.

I have also published this article in medium. Link provided below:

Link

View story at Medium.com

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s