随笔分类 - 《模型思考者》
1
对《模型思考者》一书中的模型进行了Python 编程实现
摘要:import random """ 波利亚过程 一只瓮里面装着一个白球和一个黑球。每一周期,都随机抽取出一个球并将这个球与和它颜色相同的另一个球一起放回到瓮中。抽取出来的球的颜色表示结果。 """ box = ["white", "black"] # for i in range(1000): #
阅读全文
摘要:from scipy.optimize import leastsq from scipy.optimize import curve_fit import matplotlib.pyplot as plt import numpy as np #time intervals t= np.linsp
阅读全文
摘要:""" 扩散模型 大多数传染病,以及关于产品、思想和技术突破的信息,都是通过口口相传而传播开来的,扩散模型刻画了这些过程。 口口相传也就意味着并不是时刻都有一个广播在向所有人发出消息,广播模型就类似于新闻联播,一个人由易感者变 为知情者的概率取决于他看到新闻联播的概率,假设每天的新闻联播覆盖率是一定
阅读全文
摘要:import matplotlib.pyplot as plt import matplotlib matplotlib.rc("font",family='YouYuan') """ 广播模型: 任何时候,总会有人患上了某种传染病、了解了特定信息或采取了一定的行动。我们将这些人称为感染者或知情者(
阅读全文
摘要:""" 友谊悖论 如果网络中任何两个节点的度不同,那么平均而言,节点的度会低于其相邻节点。换句话说,平均而言,人们的朋友比他们自己更受欢迎。 给定一个具有N个人的网络,令di表示节点i的邻居的数量,即度。平均度可以表示为如下形式: d_hat = Σdi / N (平均每个人拥有的邻居数量) 平均度
阅读全文
摘要:import networkx as nx import csv import numpy as np with open("quakers_nodelist.csv") as nodecsv: nodereader = csv.reader(nodecsv) nodes = [i for i in
阅读全文
摘要:import networkx as nx import matplotlib.pyplot as plt import csv from operator import itemgetter from networkx.algorithms import community """ 图的基本操作:
阅读全文
摘要:import itertools from collections import Counter """ 夏普利-舒比克权力指数 在投票博弈中,每个博弈参与者(代表某个政党或官员)控制着固定数量的席位或投票权,要采取行动,就必须获得多数席位或支持票。 在投票博弈中,夏普利值通常被称为夏普利-舒比克权
阅读全文
摘要:import itertools from collections import Counter """ 夏普利值的应用1 我们将夏普利值应用在基于替代用途测试(alternative uses test)的合作博弈中。在测试中,每个人都必须为一种常见的物品想出一些新的用途,比如砖块。 想象一下有三
阅读全文
摘要:""" 索洛*增长模型 现在构建一个更一般的模型,它是索洛增长模型(Solow Growth Model)的简化,因此我们在索洛后加了一个星号。 我们用实物资本取代机器,并将劳动力视为一个变量。此外,还添加了一个技术参数,它可以线性地增加产出。创新会 使这个参数增大。与简单增长模型一样,当投资等于折
阅读全文
摘要:import numpy as np import matplotlib.pyplot as plt """ 凹函数:斜率递减(收益递减效应) 柯布-道格拉斯模型(Cobb-Douglass model)是经济学中使用最广泛的模型之一 给定L个工人和K个单位资本,总产出如下所示: 资本以机器数量作为
阅读全文
摘要:import numpy as np from scipy.optimize import curve_fit import matplotlib.pyplot as plt # 凸函数:斜率递增 # 指数增长模型(exponential growth model) y = aⁿ # 半衰期模型(h
阅读全文
摘要:import numpy as np import matplotlib.pyplot as plt from sklearn import datasets """ LinearRegression """ # 数据准备 boston = datasets.load_boston() X = bo
阅读全文
摘要:import numpy as np import matplotlib.pyplot as plt # 实验数据 y = ax + b + ε x = np.arange(1, 11, dtype=float) y = 2 * x + 1 + np.random.normal(size=10) #
阅读全文
摘要:import re from operator import itemgetter import matplotlib.pyplot as plt from collections import Counter # 英文: frequency = {} with open("Alice's adve
阅读全文
摘要:""" 森林火灾模型: "森林"最初只是一个空的N×N网格。每个周期在网格上随机选择一个格点。 如果该格点为空,那么就以概率 g 在那里种上一棵树。 如果该格点上已经有树,那么闪电会以概率(1-g)击中该格点。 如果该格点有一棵树,那么树会着火,火势会蔓延到所有连接到该格点的有树的格点。 """ i
阅读全文
摘要:""" 沙堆模型: 1. 在一个二维正方格子上,每个格点上都可以放上一定的沙子; 2. 当某个格子 (i,j) 里的沙子数目大于 4 时,就会发生崩塌(或者也可以设定为按照一定的概率崩塌); 3. 格子 (i,j) 里面的 4 颗沙子则转移到 (i,j-1),(i,j+1),(i-1,j),(i+1
阅读全文
摘要:""" 优先连接模型: 一连串物体(人)一个接一个地到达。第一个到达者创建一个实体。后续每次有人到达时都应用以下规则: 在概率p(较小)的情况下,新到达者创造一个新的实体;在概率(1-p)的情况下,新到达者加入现有的某个实体(产生链接)。 加入某个特定实体的概率等于该实体的大小除以到目前为止所有到达
阅读全文
摘要:""" 中心极限定理指的是给定一个任意分布的总体。 我每次从这些总体中随机抽取 n 个抽样,一共抽 m 次。 然后把这 m 组抽样分别求出平均值/和。 这些平均值/和的分布接近正态分布。 """ import numpy as np import matplotlib.pyplot as plt #
阅读全文
摘要:import numpy as np import matplotlib.pyplot as plt from math import sqrt, pi, exp def normal_distribution(mu, sigma): # 调用函数生成一组正态分布随机数 size = 100000
阅读全文
1

浙公网安备 33010602011771号