富の分配のモンテカルロシミュレーション

序文

学校のネットワーククラスの開始と、実際には、このブログは私の最初の仕事を記録することですが、結論はまだ少し意味です。私は最近、毎日更新され、なぜ私にはわからない、実際には、今年私は試験のこのフォームは何かが確かに私は何人かの人々は、この時はまだ、すでに費やし躊躇していると言うことを知っている、と私は題し見直しを行っているということではありません最後に躊躇しました数回を磨く......のように、私はちょうど今、単純に以下の内容を見て信じていない、人を解任していない、あなたは本当に強力ですが、あまりにも多くの不確実な未来がある、ああ言いたいです。

テキスト

まず、この問題で見てみましょう

ここに画像を挿入説明
また、他の人、一人一人の取得資金の確率と同じにお金を受け取ることになります、$ 1与えるために、一日あたり約100人の合計、一人あたり100元の最初の首都であり、それを簡素化します。

ケース1:人道的な理想的な状態

この状態では初期条件は変わらないが、富がゼロである何人かの人々たら自給自足手当の政府ならば、彼は、唯一の誰かがお金を与えるために取得するために、誰かお金に行かないだろう。

#初始化条件
person_id = [x for x in range(1,101)]
fortune = pd.DataFrame([100 for i in range(100)], index = person_id)
fortune.index.name = 'id'

def game1(data, roundi):
    if len(data[data[roundi - 1] == 0])>0:
        #当没有钱的时候不会支出
        round_i = pd.DataFrame({'pre_round':data[roundi-1],'lost':0})
        con = round_i['pre_round'] > 0
        round_i['lost'][con] = 1
        round_player_i = round_i[con]
        choice_i = pd.Series(np.random.choice(person_id, len(round_player_i)))
        gain_i = pd.DataFrame({'gain':choice_i.value_counts()})
        
        round_i = round_i.join(gain_i)
        round_i.fillna(0,inplace=True)
        return round_i['pre_round'] - round_i['lost'] + round_i['gain']
    else:
        # 对于不包含财富值为0 的状况
        round_i = pd.DataFrame({'pre_round':data[roundi-1],'lost':1})
        choice_i = pd.Series(np.random.choice(person_id, len(round_i)))
        gain_i = pd.DataFrame({'gain':choice_i.value_counts()})
        round_i = round_i.join(gain_i)
        round_i.fillna(0,inplace=True)
        return  round_i['pre_round'] - round_i['lost'] + round_i['gain']

#模拟10000次
for roundi in range(1, 10000):
    if roundi%1000==0:
        print('进行第%d次模拟' % roundi)
    fortune[roundi]  = game1(fortune, roundi)
    
game1_result = fortune.T
def draw(data, start, end, length):
    for n in list(range(start, end,length)):
        datai =data.iloc[n].sort_values().reset_index()[n]
        plt.figure(figsize=(10,6))
        sns.barplot(datai.index, datai.values)
        plt.xlim((0,100))
        plt.ylim((0,400))
        plt.title('模拟的轮数%s' % n)
        plt.xlabel('ID') 
        plt.ylabel('拥有的财富')
        plt.grid(alpha=0.5, linestyle='--')

draw(game1_result, 0,10000,1000)

ここに画像を挿入説明
上記の各個人の富の最後の状態。半分の正規分布のように、右ローの確率はすべての後に高い左のように、誰もがお金を得ると同じがあるかもしれないので。この場合、一部の人々は非常に豊かになり、一部の人々は唯一の保証ではなくなります

ケース2:Aより現実的な状況

ここに画像を挿入説明
ここでは、私が社会扶助を考慮していない、と人々はさまざまな種類に分類され、偶発債務、ハードワーク、投資するだけでなく、技術進歩があり......それらのそれぞれの異なる初期投資、また収入を得られる確率同じではありません。

# 初始化参数

#一共分配(游戏)2000次
N=2000


#投机者(负债但是仍然消费)20人
tj_id=[i for i in range(20)]
tj=pd.DataFrame([0 for i in range(20)],index=tj_id)

#努力工作者(可能现在财富并不多拥有60,但是获得利益的概率多1%)占大多数50人
nl_id=[i for i in range(20,70)]
nl=pd.DataFrame([60 for i in range(50)],index=nl_id)

#投资者(本身就很富有拥有100,而且很会投资,每次获得收益概率多3%)5人
tz_id=[i for i in range(70,75)]
tz=pd.DataFrame([100 for i in range(5)],index=tz_id)


#剩下就是知识进步(现在可能很不富有,拥有30,但是有知识有10%的概率获得利益)25人
zs_id=[i for i in range(75,100)]
zs=pd.DataFrame([30 for i in range(25)],index=zs_id)

# 将上面定义的人群合并起来
person=pd.concat([tj,nl,tz,zs])
person.head()

富の分布は、このの始まりで
ここに画像を挿入説明
、その後、私たちは利益を得るためにさまざまな人々の確率を計算するために、上記の確率分布に基づいて返します。
例えば、これらの努力の1%以上のリターンの確率は、彼らの利益は0.01 * 0.01 + 1%であり、人々の3種類の背後に、この確率のような業績の確率計算は、債務者への最後の残りの点は、シミュレーションの結果を見始めました

#定义游戏(分配规则)

#得到钱的机会(也就是收益概率不同)
chance=np.concatenate((np.array([0.008425]*20),np.array([0.0101]*50),np.array([0.0103]*5),np.array([0.011]*25)))
#0.01*0.01+0.01
#得到失去钱的id
def get_fromid(id_from):
    id_to=np.random.choice(a=np.arange(100),size=1,replace=False,p=chance)
    #不能自己给自己钱
    if id_to==id_from:
        id_to=get_fromid(id_from)
    return id_to

def game2(data,time):
    for i in range(time):
        if i%500==0:
            print(f"正在模拟第{i}轮")
        for id_from in range(0,len(data)):
            id_to=get_fromid(id_from)
            data['money'][id_from]-=1
            data['money'][id_to]+=1
    return data

final=game2(person,N)
plt.figure(figsize=(10,6))
sns.barplot(final.index,final.money)
plt.title("模拟2000轮后的结果")
plt.xlabel("人群ID")
plt.xticks(np.arange(0,101,10),np.arange(0,101,10)) 
plt.ylabel("所拥有财富")
plt.show()

ここに画像を挿入説明
当社は、債務者の債務の状況はより深刻になることを発見し、努力もしているが、負債が発生しますが、それでもより前の富の大半よりも、投資家は間違いなく金持ちにされていますが、見ての学習者、私たちのような人、おそらくちょうど貧しい少年を開始するが、その自分の力、運とキャッチ以外の他の要因も、投資家の皆様に、最終的な富と、
もちろん、これは単なるチキンスープで、何を使用しようもありませんか?答えは確かに便利ですが、ちょうどそれの他、7%の確率よりも、自分自身の強さの利益を作るために努力することによって?困難な、基本的には非現実的な、そして多くの場合、また、私たちの運と関連する形の把握。2014年に、時代に適応することができます裕福な人々は、ちょうどライブを始めたとき、おそらく誰も興味ありませんが、3年後の2017年、業界のライブ火災、そしてちょうどコンピュータと少数の観客を保持し、小さなアンカーがあるかもしれませんチャットアンカー、今おそらく万人が大きなアンカー引っ張りだこ。例えば私自身の経験を見てみましょう、私はペンギンのゲームにあったと私は確信しているよりも、張タイシンは基本的には、もちろん、彼は良いポイント多くの視聴者ではなかった、と何の観客がないので、後に、売上高は理想的な、学校などではありませんそして、私はあきらめた他の要因が、今では衰退に放送業界でしたが、彼はまだたくさんのお金の価値があるものの、プラットフォームの契約価格の皆は番号を持っている必要があります。多くのと同じように、触手のような古英ライブ研究期間の始まりですが、彼は辛抱しました。
近年の短いビデオで見てみましょうが、普通の人の映像がネット赤色になった作るために、3つまたは4つ分を起動するために始めた、VLOGは百万アップで人生を共有することができ、ゆっくりとメイン、この情報化時代、変更になりますすぐに、しかし、より多くの機会が続きます。人の人生について、3つまたは4つの運命を変えるチャンスを持って、前に私は今のところ、機会がより頻繁になり、あなたの人生を変えることができるキャッチ、本を読んで覚えています。バック私たちの質問、三番目のケースを見て、それを言いました。

ケース3:債務者がしようとします

このモデルは、私は1%の増加確率が、最初の10債務者がさらに悪化されることを意味し、見た目から利益のためにそれらを有効にするには、10人の債務者を引き抜きます

#得到钱的机会(也就是收益概率不同)
chance2=np.concatenate((np.array([0.00675]*10),np.array([0.0101]*10),np.array([0.0101]*50),np.array([0.0103]*5),np.array([0.011]*25)))

#得到失去钱的id
def get_fromid2(id_from):
    id_to=np.random.choice(a=np.arange(100),size=1,replace=False,p=chance2)
    #不能自己给自己钱
    if id_to==id_from:
        id_to=get_fromid2(id_from)
    return id_to

def game3(data,time):
    for i in range(time):
        if i%500==0:
            print(f"正在模拟第{i}轮")
        for id_from in range(0,len(data)):
            id_to=get_fromid2(id_from)
            data['money'][id_from]-=1
            data['money'][id_to]+=1
    return data

final2=game3(person,N)
plt.figure(figsize=(10,6))
sns.barplot(final2.index,final2.money)
plt.title("模拟2000轮后的结果")
plt.xlabel("人群ID")
plt.xticks(np.arange(0,101,10),np.arange(0,101,10)) 
plt.ylabel("所拥有财富")
plt.show()

ここに画像を挿入説明
それは、上記の比較からわかるように、債務は依然として困難であるとき、債務の水準が低下します。もちろん、十分な努力であれば(お金の確率を向上させるために)、だけでなく、正の資産になる可能性があります。
そして、我々はまた、債務者の努力によって取り組みを見ることができますまた、負債のある同じ努力をすることも可能である
ここに画像を挿入説明
ここに画像を挿入説明
コントラストの初期状況が異なる場合でも、見ることができますが、同じ努力、可能な限り債務者の努力が水にドラッグし、より多くのましたまた、債務者は変更に難しくなる傾向にあります。

仕事を見て、データのプロセス分析

  • まず第一に、それは、データ分析は、最初のステップは、収集データ(爬虫類、パブリックデータ、タスクデータ......)にあります
  • それは我々が分析するために必要なものを明確にするデータを取得した後、おおよその方向を明確に分析
  • データは、合理的であるデータの有効性を確保するために、データは前処理、洗浄され、そして
  • ほとんどの部分については、我々は(アルゴリズムを機械学習、深い学習ネットワーク、遺伝的アルゴリズムを......使って)データセット、アルゴリズムや数学モデルを分析するために、特定の問題に基づいて構成分割され、最終的にもunderfittingはありません飽きどちらもしかし、フィット、モデルの優れた堅牢性を持っています
  • 最終的な結果は、我々は、人々が視覚的にプロセスと分析の結果を見ることができ、対応する結論を視覚化します
  • 時々、より明確に要約し、分析レポートを書くために必要、分析するために、PPT

その後、我々はそう洗っていない、それはデータの独自の定義であり、この仕事を見てください。使用したモデルの他のモデルの部分、主にモンテカルロ法は、確率と現実に近いの多くを使用して、ありません。シンプルな検索のPI値から新しいクラウンウイルスに感染メインアナログ伝播アップ追加のB駅の前にこの方法で、ほとんどすべての確率は、実験によって結果を得るためにそれを使用することができます。最後に、当然のことながら、各モデルに対応する可視化によって。彼らは彼ら自身の結論だけでなく教師の報告を与えていると私はそれをしないので等は求めていませんでした。(レイジー喜喜喜)

概要

実際には、このモデルは、例えば、どのように利益のために投資家が時間のロスがあるでしょう、完全に現実的だったかもしれませんしている。学習者は確率が高すぎる恩恵を受ける;もちろん、政府の支援もあります......これらの問題は、シミュレーションの最終結果に影響を与えます、しかし、一般的な結論は同じですが、限り、あなたは大きな確率(強さ、努力、運、時代の流れを把握するために......)メリットとして、あなたが豊かになります

簡単に人を否定しない、と言って始めて話をしてきます。上記の例から、我々は最初の状況が異なっても、それを見ることができますが、同じ努力が、多くの場合、良い人々の開始点は、水の中に引き込まれますされています。、と言うだろう私は、この時間は、誰かが見てしなければならないことを知っているカットを備え、そして上記の値は、ちょうど私の自身の定義、人々はあまりにも疲れて、あまりにも早い遅ずさんを確認することになるので、出発点、おそらく良い、良い難しい仕事に人々のための出発点であります私はちょうど快適さの多くを所有する必要はありませんが、また、非常に多くの言い訳を見つけること。この点で、私は、私はセクションを研究するために決定されている人たちを賞賛と言うが、今も真剣に流行の影響を確認することはできません。私としては、まず最後に、私は人々を救うためにフロントラインで私の母、良い場合は、審査に自宅で安心して感じることができない、と私は毎日の事を心配するあまり持っていると思って、私は家で一人だ彼の胃を埋めるための方法を見つけるために(聞かないでください私は簡単に湖北省では、この時間は、買いに行く)SFプラス送料を送っていないものを買うために数日前に(送信できません表現し、家で食べるように私の父ではなく、生きて死んだ男のように)、何もしていないではないなかった。一日持っていますインターネットクラス、宿題。おそらく、あなたまでの午前中に、グルーミングは、ご飯を食べることができますが、私は洗米野菜を調理するから開始し、クラスに行き、午後に一日少しの最初の食事を食べて、夜に彼らはまだXiguo食器を洗うので、私はしてきたしなければなりません大学院を決定していません。私はこれらの単語を書くときしかし、私は大学院に決めた、ではない何かのために、私は、私の人生をより充実したい最後の時間の努力がちょうど彼の良いを移動した場合でも、すべての経験は、私だけを行います人生はもっと面白いです、それはないですか?

公開された85元の記事 ウォン称賛55 ビュー20000 +

おすすめ

転載: blog.csdn.net/shelgi/article/details/104402466