最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Python隨機(jī)森林、線性回歸對(duì)COVID-19疫情、匯率數(shù)據(jù)預(yù)測(cè)死亡率、病例數(shù)、失業(yè)率影響可

2023-08-31 22:36 作者:拓端tecdat  | 我要投稿

全文鏈接:https://tecdat.cn/?p=33536

原文出處:拓端數(shù)據(jù)部落公眾號(hào)

自2019年12月以來(lái),傳染性冠狀病毒疾病2019(COVID-19)迅速席卷全球,并在短短幾個(gè)月內(nèi)達(dá)到了大流行狀態(tài)。迄今為止,全球已報(bào)告了超過(guò)6800萬(wàn)例病例。為了應(yīng)對(duì)這一大流行病,實(shí)施了公共衛(wèi)生政策,通過(guò)實(shí)施“居家令”政策來(lái)減緩COVID-19的傳播。

因此,為了檢查全球范圍內(nèi)采取的限制措施對(duì)人員流動(dòng)性的有效性,我們幫助客戶研究死亡人數(shù)與時(shí)間的關(guān)系。

問(wèn)題陳述:

該項(xiàng)目的目標(biāo)是分析各國(guó)政府采取的各種限制措施對(duì)人員流動(dòng)性的影響,以控制COVID-19病例和由此導(dǎo)致的死亡人數(shù)對(duì)經(jīng)濟(jì)和失業(yè)率的影響。我們使用匯率數(shù)據(jù)來(lái)查看這些限制措施對(duì)經(jīng)濟(jì)的影響,并在此期間檢查失業(yè)率的變化。我開(kāi)發(fā)了一個(gè)模型來(lái)預(yù)測(cè)由于病例增加而導(dǎo)致的COVID-19相關(guān)死亡人數(shù)。

使用 read csv 讀取數(shù)據(jù),然后使用數(shù)據(jù)可視化探索數(shù)據(jù)

#columns in the datadf.columns

數(shù)據(jù)信息

-數(shù)據(jù)集中的分類變量:dateRep、countriesAndTerritories、geoId、countryterritoryCode、continentExp -數(shù)據(jù)集中的無(wú)限變量:日、月、年、病例數(shù)、死亡數(shù)、popData2019、Cumulative_number_for_14_days_of_COVID-19_cases_per_100000

#info about the datadf.info()

數(shù)據(jù)集中有 49572 個(gè)觀測(cè)值和 12 個(gè)特征值

df.shape

Out[7]:

(49572, 12)

In?[8]:

#屬性/特征之間的相關(guān)性 df.corr()

#數(shù)據(jù)集說(shuō)明 df.describe()

每天的 14 天累計(jì)病例數(shù)、病例數(shù)和死亡數(shù)。

-2783 14 天累計(jì)病例數(shù)不為零的天數(shù) -報(bào)告的 14 天累計(jì)病例數(shù)為零的天數(shù)。 -報(bào)告的 14 天累計(jì)死亡人數(shù)為零的天數(shù)。

# 數(shù)據(jù)清洗-檢查是否存在空值df.isnull()# 這些似乎是數(shù)據(jù)集中的真實(shí)讀數(shù),因此將其從數(shù)據(jù)集中刪除可能會(huì)改變分析結(jié)果。所以保持原樣。print(df["Cumulative_number_for_14_days_of_COVID-19_cases_per_100000"].isnull().value_counts()) # 2783天中沒(méi)有累積14天病例為零

#可視化import seaborn as sns

In?[107]:

df.columns

# 該函數(shù)接受特征/列名作為輸入。# 繪制特征在天數(shù)和月份上的計(jì)數(shù)情況。def plots_days_mnths(x): ? ? ? ?plt.figure(figsize = (30,20)) ? ?feature = ['day','month']

  • 病例數(shù)的日分析和月分析

  • 從病例圖中我們可以看出,報(bào)告病例從 1 月份開(kāi)始迅速增加,到 2020 年 7 月至 9 月達(dá)到最高峰。

  • 而各月每天的報(bào)告病例數(shù)大致相等。

plots_days

最初幾個(gè)月報(bào)告的死亡病例有所增加,但從圖中可以看出,自 7 月份以來(lái)已得到控制。 每月各天的報(bào)告死亡病例數(shù)大體相當(dāng),但略有不同。

plots_days_m

import numpy as np

截至 2010 年 10 月,全世界報(bào)告的病例總數(shù)約為 39400032 例。

df['cases'].sum()

plt.ylabel('Counts', fontsize =14)plt.title("Histogram of cases ", fontsize = 16)

Out[114]:

[0, 100000, 0, 100]

在大多數(shù)情況下,每天報(bào)告的死亡人數(shù)在 500 人及以下。 在大多數(shù)天數(shù)中,約有 50%的天數(shù)每天報(bào)告的新病例超過(guò) 40000 例。 全世界平均每天報(bào)告的死亡人數(shù)約為 795 人,平均每天報(bào)告的死亡人數(shù)為 23 人。

df[['deaths', 'cases']].mean(axis = 0, skipna = True)

截至 2010 年 10 月,全世界報(bào)告的死亡總?cè)藬?shù)約為 1105353 人

df['deaths'].sum()

plt.xlabel('deaths', fontsize = 14)plt.ylabel('Counts', fontsize =14)

# 將日期列轉(zhuǎn)換為日期時(shí)間格式,以便繪制圖表。date = pd.to_datetime(df['dateRep']) plt.figure(figsize =(15,10))

用回歸法直觀顯示病例和死亡人數(shù)及其分布情況

-從圖中可以看出,隨著病例數(shù)的增加,死亡人數(shù)也在增加。 -顯示出這兩個(gè)特征之間的正線性關(guān)系。

#用回歸法直觀顯示病例和死亡人數(shù)及其分布情況sns.jointplot(x='cases' , y='deaths' , data=df, kind='reg')

按年分析失業(yè)率

導(dǎo)入失業(yè)數(shù)據(jù)并將其轉(zhuǎn)換為數(shù)據(jù)框架 刪除列名 "1960 "至 "1990 "之間的所有列,因?yàn)樗鼈兪强樟?,?shù)據(jù)中沒(méi)有各縣報(bào)告的這些年份的數(shù)據(jù),還刪除了 "指標(biāo)名稱 "和 "指標(biāo)代碼 "這兩列,因?yàn)榉治霾恍枰鼈儭?/p>

# ?unemp = unemp.drop(unemp.loc[:, 'Indicator Name':'1990'].columns, axis = 1)

In?[590]:

unemp.head(5)

查看 1991 年至 2020 年各國(guó)的基本統(tǒng)計(jì)數(shù)據(jù)摘要

unemp.describe()

繪制 1991 年至 2020 年各國(guó)就業(yè)率曲線的函數(shù)

def plot_unemp_region(country): ? ?for c in country: ? ? ? ?plt.plot(unemp.loc[c][1:],label = c) ?

失業(yè)率與國(guó)家總失業(yè)率對(duì)比

從 2015 年開(kāi)始,愛(ài)爾蘭在控制失業(yè)率方面做得更好,因此在 2020 年持續(xù)低迷的大流行病期間,愛(ài)爾蘭在處理失業(yè)率方面做得更好。 但從 2019 年開(kāi)始,愛(ài)爾蘭的失業(yè)率仍有上升趨勢(shì),應(yīng)注意避免進(jìn)一步的損害。

plot_unemp_regio

不同國(guó)家和地區(qū)的失業(yè)率

在大流行病期間,愛(ài)爾蘭在處理失業(yè)率方面似乎總體上介于歐盟和美國(guó)之間,印度在此期間與愛(ài)爾蘭緊隨其后。 數(shù)據(jù)顯示,在過(guò)去一年中,美國(guó)的失業(yè)率在這些國(guó)家中最低。

plot_unemp_region(country)

? ? ? ? ? ? ? ? ?skiprows = [0], index_col = "Date")

In?[588]:

cur.head()

顯示歐元相對(duì)于其他主要貨幣波動(dòng)的功能

輸入要與歐元匯率進(jìn)行比較的貨幣列表 繪制 2020 年 1 月至 2020 年 10 月期間單個(gè)貨幣相對(duì)于歐元的波動(dòng)圖 從圖中可以看出,在過(guò)去幾個(gè)月中,歐元相對(duì)于美元、日元、人民幣等主要貨幣的匯率走低,這表明由于為控制病毒傳播而實(shí)施的封鎖和限制行動(dòng)的法律,企業(yè)和組織無(wú)法正常運(yùn)作。 歐元估值受中國(guó)貨幣人民幣的影響最大,受印度貨幣盧比的影響最小。

def plot_currency_rate(currency): ? ? ? ?plt.figure(figsize = (30,20)) ? ?for c in list(enumerate(currency)): ? ? ? ?plt.subplot(3, 2,c[0]+1) ? ? ? ?plt.plot(cur.loc[:][c[1]],label = c[1]) ? ? ? ?

In?[303]:

plot_currency_rate(currency)

for c in currency: ? ? ? ? ? ? ? ? ? ?plt.plot(cur.loc[:][c],label = c) ? ? ? ? ? ? ? ? ? ?plt.ylabel("Euro", fontsize = 12)

基于每日病例預(yù)測(cè)死亡的模型開(kāi)發(fā)

sns.barplot(data=df, x= 'cases' , y = 'deaths' , estimator=np.std)

從下面代碼中的相關(guān)矩陣圖中,我可以看到死亡和病例之間的相關(guān)性高達(dá) 0.736,而其他變量之間的相關(guān)性很弱。

df.corr()

sns.heatmap(df.corr())

sns.heatmap(df.corr(),annot=True , cmap='YlGnBu')

sns.pairplot(df)

通過(guò)可視化觀察數(shù)據(jù)分布,可以清楚地看出病例數(shù)的增加導(dǎo)致死亡人數(shù)的增加。因此,為了根據(jù)全國(guó)每天的病例數(shù)預(yù)測(cè)死亡人數(shù),我們使用了線性回歸法來(lái)完成這一過(guò)程,結(jié)果如下。

這段代碼用于將數(shù)組或矩陣隨機(jī)分割成訓(xùn)練集和測(cè)試集。

python

# 用于將數(shù)組或矩陣隨機(jī)分割成訓(xùn)練集和測(cè)試集from sklearn.model_selection import train_test_split

自變量為 cases,因變量為 deaths,分別賦值給 X 和 y。

python

X, y = df[['cases']], df['deaths']

  • X 是包含 "cases" 條目的數(shù)據(jù)框(DataFrame)的一列,y 是包含目標(biāo)/響應(yīng)變量 "deaths" 的序列(Series)。

python

X.head(5)

  • 數(shù)據(jù)被劃分為測(cè)試集和訓(xùn)練集,使用 train_test_split() 函數(shù),以 80:20 的比例進(jìn)行劃分。

  • train_test_split() 函數(shù)中的 test_size 參數(shù)設(shè)為 0.2,表示將 20% 的數(shù)據(jù)作為測(cè)試集。

python

# 訓(xùn)練集和測(cè)試集X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

在 [565] 處:

python

# 定義一個(gè)線性回歸模型from sklearn import linear_model# 使用訓(xùn)練集訓(xùn)練模型regr.fit(X_train, y_train)

回歸系數(shù)

  • 回歸系數(shù)是未知總體參數(shù)的估計(jì)值,表示預(yù)測(cè)變量(cases)與響應(yīng)變量(deaths)之間的關(guān)系。

  • beta0 的回歸系數(shù)為 0.0196,這意味著平均而言,當(dāng)沒(méi)有報(bào)告病例時(shí),死亡人數(shù)為 0.0196。

  • 截距系數(shù)為 6.759,說(shuō)明每天病例增加一個(gè)單位時(shí),死亡人數(shù)增加 6.759。例如,每增加 100 個(gè)新病例,死亡人數(shù)每天增加 7.5。

  • 對(duì)測(cè)試數(shù)據(jù)進(jìn)行線性模型預(yù)測(cè)死亡人數(shù)

#基于測(cè)試數(shù)據(jù)進(jìn)行預(yù)測(cè)y_pre

結(jié)果:

# 每天對(duì)應(yīng)病例數(shù)量的實(shí)際死亡人數(shù)y_test.head(10)

結(jié)果:

df.head()

結(jié)果:

計(jì)算評(píng)估指標(biāo)需要重新調(diào)整 X 的形狀:

# 重新調(diào)整 X 的形狀以計(jì)算指標(biāo)X.values.reshape

結(jié)果:

<function ndarray.reshape>

計(jì)算均值絕對(duì)誤差(MAE):

from sklearn.metrics import mean_squared_error,r2_score , mean_absolute_error

平均絕對(duì)誤差(MAE)

  • 平均絕對(duì)誤差(MAE)是用于回歸模型的另一種損失函數(shù)。

  • MAE 是目標(biāo)變量和預(yù)測(cè)變量之間的絕對(duì)差的總和。

  • 我們有實(shí)際值 y_test 和預(yù)測(cè)值 y_pre,可以觀察到它們之間的差異。

#MAEmean_absolute_error(y_test , y_pre)

結(jié)果:

18.3128

R-Squared

  • R-squared 是衡量數(shù)據(jù)與擬合的回歸線之間接近程度的統(tǒng)計(jì)指標(biāo)。

  • 提供了關(guān)于預(yù)測(cè)變量“cases”在我們的模型中如何解釋響應(yīng)變量“death”的程度的指示。

  • 我的模型使用預(yù)測(cè)變量“cases”能夠解釋響應(yīng)變量“death”的變異程度為61%。

#R方分?jǐn)?shù)r2_score(y_test , y_pre)

結(jié)果:

0.6156843

散點(diǎn)圖展示了線性回歸線以及數(shù)據(jù)圍繞該線分布的情況。

plt.scatter(X_test, y_test , color= 'blue' , linewidths=1)

g

輸出[579]:

0.615

輸入[580]:

# 構(gòu)建隨機(jī)森林模型。

輸入[581]:

from sklearn.ensemble import ExtraTreesRegressor, RandomForestRegressor

輸入[582]:

rfr.fit(X_train, y_train)

Y_pred = rfr.predict(X_test)

輸入[584]:

rfr.score(X_test, y_test)

輸出[584]:

0.39

輸入[585]:

plt.scatter(X_test, Y_pred, color='red')plt.plot(X_test, y_pre, color='blue', linewidth=0.5)

結(jié)論

通過(guò)探索性數(shù)據(jù)分析,發(fā)現(xiàn)每天新冠病例增加時(shí),報(bào)告的死亡人數(shù)也會(huì)有所上升。通過(guò)將病例作為預(yù)測(cè)因子、每天的死亡人數(shù)作為目標(biāo)變量的兩個(gè)回歸模型的結(jié)果,線性模型在預(yù)測(cè)每天的死亡人數(shù)方面更準(zhǔn)確,與每天報(bào)告的病例數(shù)相關(guān)。

通過(guò)對(duì)包含失業(yè)率和歐元匯率數(shù)據(jù)的數(shù)據(jù)集進(jìn)行數(shù)據(jù)可視化分析,還能夠探索各國(guó)為限制病毒傳播而引入的限制措施對(duì)歐洲主要經(jīng)濟(jì)體和失業(yè)率產(chǎn)生的影響。

歐元兌美元、英鎊、人民幣等主要貨幣的匯率在過(guò)去幾個(gè)月中看到了下降,這表明封鎖措施對(duì)企業(yè)和國(guó)家經(jīng)濟(jì)的影響。對(duì)失業(yè)率的影響也在失業(yè)率數(shù)據(jù)中清晰可見(jiàn),愛(ài)爾蘭的失業(yè)率相對(duì)于其他國(guó)家來(lái)說(shuō)處理得更好,但在過(guò)去幾個(gè)月中失業(yè)率明顯上升。

參考資料

  1. https://www.sciencedirect.com/science/article/abs/pii/S0048969720323998

最受歡迎的見(jiàn)解

1.在python中使用lstm和pytorch進(jìn)行時(shí)間序列預(yù)測(cè)

2.python中利用長(zhǎng)短期記憶模型lstm進(jìn)行時(shí)間序列預(yù)測(cè)分析

3.Python用RNN循環(huán)神經(jīng)網(wǎng)絡(luò):LSTM長(zhǎng)期記憶、GRU門循環(huán)單元、回歸和ARIMA對(duì)COVID-19新冠疫情新增人數(shù)時(shí)間序列

4.Python TensorFlow循環(huán)神經(jīng)網(wǎng)絡(luò)RNN-LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)股票市場(chǎng)價(jià)格時(shí)間序列和MSE評(píng)估準(zhǔn)確性

5.r語(yǔ)言copulas和金融時(shí)間序列案例

6.R 語(yǔ)言用RNN循環(huán)神經(jīng)網(wǎng)絡(luò) 、LSTM長(zhǎng)短期記憶網(wǎng)絡(luò)實(shí)現(xiàn)時(shí)間序列長(zhǎng)期利率預(yù)測(cè)

7.Matlab創(chuàng)建向量自回歸(VAR)模型分析消費(fèi)者價(jià)格指數(shù) (CPI) 和失業(yè)率時(shí)間序列

8.r語(yǔ)言k-shape時(shí)間序列聚類方法對(duì)股票價(jià)格時(shí)間序列聚類

9.R語(yǔ)言結(jié)合新冠疫情COVID-19股票價(jià)格預(yù)測(cè):ARIMA,KNN和神經(jīng)網(wǎng)絡(luò)時(shí)間序列分析


Python隨機(jī)森林、線性回歸對(duì)COVID-19疫情、匯率數(shù)據(jù)預(yù)測(cè)死亡率、病例數(shù)、失業(yè)率影響可的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
建湖县| 鱼台县| 宁津县| 泰安市| 静宁县| 伊金霍洛旗| 金昌市| 阿合奇县| 永德县| 许昌市| 开阳县| 肇庆市| 民县| 北票市| 岳池县| 砀山县| 淳化县| 莆田市| 云龙县| 隆德县| 平和县| 从化市| 竹山县| 昆明市| 阿克苏市| 金门县| 基隆市| 巴彦县| 西平县| 黔江区| 竹北市| 南安市| 定兴县| 长阳| 临夏县| 梁山县| 屏东县| 桦南县| 合阳县| 大英县| 阿拉尔市|