LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 1 year has passed since last update.

Python

Last updated at Posted at 2021-05-29

保険関連の検索ワードの検索数とコロナ統計の関連を調べてみた

ネット系生保では昨年、コロナの影響で業績好調とのこと。
このため、社名検索や関連ワードでの検索がコロナ統計と関連があったか調べてみる。

コロナ統計は厚生労働省のHP(https://www.mhlw.go.jp/stf/covid-19/open-data.htm)

コロナ統計データのダウンロード
 陽性者数
 PCR検査実施人数別
 入院治療等を要する者の数
 退院又は療養解除となった者の数
 死亡者数別ウィンドウ
 PCR検査の実施件数

Googleトレンド(https://trends.google.co.jp/trends/?geo=JP)

GoogleトレンドのAPIを用いて、Keyワードと日付を指定してデータをダウンロード
1.今回試すKeyワードは
 生命保険
 医療保険
 太陽生命
 ライフネット
 アクサダイレクト
 オリックス生命
 入院 
 集中治療
 ICU
 がん

2.期間は
 2020年2月~5月末、6月~10月末、11月~翌年1月末、2021年2月~5月末
 (あまり期間を長くするとGoogleトレンドが週単位の集計となるため)

見てみること

 まずは主要なキーワード検索数とコロナ統計の散布図行列

 その次に主成分分析

 最後に全期間、全ワードを重回帰分析して、偏回帰係数と相関係数を導出

 

import pandas as pd
from io import StringIO
import urllib.request

# 上記の関数を使い陽性者数等の時系列データを取得
url_1 = "https://www.mhlw.go.jp/content/pcr_positive_daily.csv"
url_2 = "https://www.mhlw.go.jp/content/pcr_tested_daily.csv"
url_3 = "https://www.mhlw.go.jp/content/cases_total.csv"
url_4 = "https://www.mhlw.go.jp/content/recovery_total.csv"
url_5 = "https://www.mhlw.go.jp/content/death_total.csv"
url_6 = "https://www.mhlw.go.jp/content/pcr_case_daily.csv"

url_list=[url_1,url_2,url_4,url_5,url_6]

def read_csv(url):
   res = urllib.request.urlopen(url)
   res = res.read().decode('utf-8')
   df = pd.read_csv(StringIO(res))
   return df

df_list=[]
for url in url_list:
  df=read_csv(url)
  df["日付"] = pd.to_datetime(df["日付"], format='%Y/%m/%d')
  df = df.set_index('日付')
  df_list.append(df)

# 入院の統計だけINDEXがへんなので、修正
df3 = read_csv(url_3)
df3["日付\t"] = pd.to_datetime(df3["日付\t"], format='%Y/%m/%d')
df3 = df3.set_index('日付\t')
df3.index.name="日付"
df_list.append(df3)
# 最後に全部を日付で結合
df_join=df_list[0].join(df_list[1:6])
print(df_join)


# Google TrendからAPIを利用してダウンロード
!pip install pytrends
from pytrends.request import TrendReq
# googleに接続
pytrend = TrendReq(hl='ja-jp',tz=540)
# キーワードの設定 5キーワード以上は内部エラーになる
kw_list = ['生命保険','医療保険']
# googleにリクエストする。
pytrend.build_payload(kw_list=kw_list, timeframe='2020-01-16 2021-05-29', geo="JP")
# Pandasで内容をまとめる
df_google = pytrend.interest_over_time()
print(df_google)
# いらない列を削除
df_google=df_google.drop(df_google.columns[-1], axis=1)
print(df_google)

# 週足でそろえるためコロナ統計の最初3日間を削除
print(df_join.index[[0, 1, 2]])
df_join=df_join.drop(df_join.index[[0, 1, 2]])
print(df_join)

# 日足を週足に集計
df_join_w=df_join.resample('W').sum()
df_join_w.index.name='週'
print(df_join_w)

# カラムにYearを追加、年による傾向の違いを見たいためラベルとして作成
df_google_join = df_google.join(df_join_w)
df_google_join['year'] = df_google_join.index.year
df_google_join=df_google_join.reindex(columns=['year','生命保険', '医療保険', 'PCR 検査陽性者数(単日)', 'PCR 検査実施件数(単日)', '入院治療を要する者','退院、療養解除となった者', '死亡者数', '地方衛生研究所・保健所'])

# データセットを確認
print(df_google_join)

|:date|:year|:生命保険|:医療保険|:...|:退院|:療養解除となった者|:死亡者数|:地方衛生研究所・保健所|
|:2020-01-19|:2020|:64|:37|:...|:0.0|:0.0|:0.0|
|:2020-01-26|:2020|:66|:41|:...|:0.0|:0.0|:0.0|
|:2020-02-02|:2020|:62|:39|:...|:5.0|:0.0|:0.0|
|:2020-02-09|:2020|:59|:37|:...|:34.0|:0.0|:0.0|
|:2020-02-16|:2020|:67|:40|:...|:78.0|:3.0|:0.0|
|:... |:...|:...|:...|:...|:...|:...|:...|
|:2021-04-25|:2021|:50|:27|:...|:3448729.0|:68663.0|:51374.0|
|:2021-05-02|:2021|:38|:22|:...|:3618556.0|:71225.0|:51849.0|
|:2021-05-09|:2021|:54|:34|:...|:3810158.0|:74369.0|:52270.0|
|:2021-05-16|:2021|:57|:32|:...|:4037100.0|:78733.0|:60319.0|
|:2021-05-23|:2021|:59|:31|:...|:4331303.0|:84100.0|:58063.0|

# 全体を見るために散布図行列を作成
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from google.colab import files
#名前をアルファベットに
df_google_join_name=df_google_join.rename(columns={'生命保険':'kw_Seimei', '医療保険':'kw_Iryo', 'PCR 検査陽性者数(単日)':'PCR_yosei_daily', 'PCR 検査実施件数(単日)':'PCR_jisshi_daily', '入院治療を要する者':'nyuin', '退院、療養解除となった者':'taiin', '死亡者数':'death', '地方衛生研究所・保健所':'hokejo'})
#まずはヒストグラムをみる
df_google_join_name["PCR_yosei_daily"].hist(bins=10)
#保存
plt.savefig("gaiyou1")
#つぎに全体の概要をみる
df_google_join_name.plot(subplots=True)
#保存
plt.savefig("gaiyou2")

(グラフ)
(グラフ)

#最後に散布図行列
#↓こちらは年のラベルを入れてないバージョン
#pg = sns.pairplot(df_google_join_name,kind='reg',vars=['kw_Seimei', 'kw_Iryo', 'PCR_yosei_daily','death'])
pg = sns.pairplot(df_google_join_name, hue='year',kind='reg',vars=['kw_Seimei', 'kw_Iryo', 'PCR_yosei_daily','death'])
print(type(pg))
#保存
plt.savefig("scatter")

主成分分析してみる

大まかな手順

1.データを標準化
2.特徴同士の相関行列を計算
3.相関行列の固有ベクトルと固有値を求める
4.得られた固有値を大きい方からk個選び、対応する固有ベクトルを選択
5.k個の固有ベクトルから特徴変換行列 W を作成
6.d次元のデータ X と行列 W で行列の積をとり、k次元に変換されたデータ X'を作成

# 特徴量データをXに、ラベルデータをyに格納。
# df_wineの1列目はラベルデータ(KW:生命保険)、2列目以降は特徴量データ。
X, y = df_google_join.iloc[:, 3:].values, df_google_join.iloc[:, 1].values

import numpy as np
# 標準化
X = (X - X.mean(axis=0))  / X.std(axis=0)

#Python上で相関行列を取得するにはcorrcoef()関数を使用。 corrcoef()関数は、行同士の相関係数を要素にした行列を取得。
#そのため、このままではデータ同士の相関行列が求まる。データ同士ではなく特徴同士の相関行列を求めるため、X.TでXを転置。
import numpy as np
R = np.corrcoef(X.T)
print("相関行列")
print(df_google_join.columns[3:])
print(R)
print( "--"*20)

相関行列
[[1. 0.90058305 0.96123953 0.74496331 0.72145754 0.8906426 ]
[0.90058305 1. 0.90057706 0.92299908 0.90351883 0.79788719]
[0.96123953 0.90057706 1. 0.76098124 0.73171748 0.87326424]
[0.74496331 0.92299908 0.76098124 1. 0.99566181 0.58602842]
[0.72145754 0.90351883 0.73171748 0.99566181 1. 0.56567405]
[0.8906426 0.79788719 0.87326424 0.58602842 0.56567405 1. ]]

#固有値分解を行うと、もとの6x6次元の行列 R は6個の特別な6次元ベクトル (固有ベクトル) v1 v6
#と6個の特別な数 (固有値) λ1λ6 に分解。
#直感的には、元の行列は 固有ベクトルの方向に情報が集中しており、対応する固有値は情報の集中の度合いを示している と言える。
# numpyを使って以下のように固有値分解を計算。 R の固有値6個と固有ベクトル6個がそれぞれ、 eigvals と eigvecs に格納。
import numpy as np
# 相関行列から固有対を取得。 numpy.linalg.eighはそれらを固有値の昇順で返す
eigvals, eigvecs = np.linalg.eigh(R)

print("固有値")
print(eigvals)
print("固有ベクトル")
print(eigvecs)

固有値
[2.39754084e-03 3.31943532e-02 3.89517190e-02 1.12858942e-01
7.16028788e-01 5.09656866e+00]
固有ベクトル
[[ 0.05169933 -0.42101947 -0.62263995 0.40386073 0.30661714 -0.41865466]
[-0.13641916 0.80297899 -0.36185921 -0.07813208 -0.10061753 -0.4352516 ]
[-0.0768347 0.14353092 0.66042395 0.53566314 0.27290653 -0.4194312 ]
[ 0.75225204 -0.10630845 0.11619208 -0.07054516 -0.49273849 -0.40192903]
[-0.63602925 -0.35950661 0.09618291 -0.15381401 -0.52701979 -0.39441353]
[ 0.04896003 -0.12969087 0.14988616 -0.71778933 0.54849156 -0.37716418]]

# 特徴変換
# 列方向で、固有値が最大のものと2番目に最大のものに対応する固有ベクトルを連結
# .c_で列方向に行列を結合、.r_で行方向に結合
W = np.c_[eigvecs[:,-1], eigvecs[:,-2]]
print(W)

[[-0.41865466 0.30661714]
[-0.4352516 -0.10061753]
[-0.4194312 0.27290653]
[-0.40192903 -0.49273849]
[-0.39441353 -0.52701979]
[-0.37716418 0.54849156]]

# 圧縮行列X’=XW
import numpy as np
X_pca = X.dot(W)
# 可視化
color = ["r", "b", "g"]
marker = ["s", "x", "o"]
for label, color, marker in zip(np.unique(y), color, marker):
    plt.scatter(X_pca[y == label, 0], X_pca[y == label, 1], c=color, marker=marker, label=label)
plt.xlabel("PC 1")
plt.ylabel("PC 2")
plt.legend(loc="lower left")
plt.show()
print(X_pca)

上記はPCAクラスを使用しても同じ結果が得られる

from sklearn.decomposition import PCA
# 主成分数を指定して、PCAのインスタンスを生成。引数で変換後の次元数を指定。
pca = PCA(n_components=2)
# データから変換モデルを学習し、変換。
X_pca = pca.fit_transform(X)
print(X_pca)

回帰分析してスコアを見てみる

重回帰モデルによりモデル化する。

# 回帰分析
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LinearRegression

# 訓練データとテストデータに分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=0)

# 標準化のためのインスタンスを生成
sc =StandardScaler()
# トレーニングデータから変換モデルを学習し、テストデータに適用
# この際、テストデータには同じ変換式を用いることからテストデータはtransformだけ
X_train_std =sc.fit_transform(X_train)
X_test_std =sc.transform(X_test)

# 主成分分析のインスタンスを生成
pca =PCA(n_components=2)
# トレーニングデータから変換モデルを学習し、テストデータに適用
X_train_pca =pca.fit_transform(X_train_std)
X_test_pca =pca.transform(X_test_std)

# 線形回帰のインスタンスを生成
lr = LinearRegression()
# 次元削減後のトレーニングデータで分類モデルを学習
lr.fit(X_train_pca, y_train)

# スコアの表示
print("train_score:",lr.score(X_train_pca, y_train))
print("test_score:",lr.score(X_test_pca, y_test))
print("偏回帰係数:",lr.coef_)

↓結果_「生命保険」Keyワード検索とコロナ統計の関係(週単位、1年3か月間)
train_score: 0.040195945456762305
test_score: -0.19066659196325197
偏回帰係数: [ 0.44542864 -2.12374056]

↓結果_「医療保険」Keyワード検索とコロナ統計の関係(週単位、1年3か月間)
train_score: 0.09592740794304455
test_score: -0.09107994806241582
偏回帰係数: [ 0.43294139 -1.85815409]

結論:

1.偏回帰係数は「生命」と「医療」で同方向だが、相関係数が訓練データとテストデータでまったく違っており、あてにならない。。
2.つぎに一気にいろんなキーワードとの関連を見てみる

import pandas as pd
from io import StringIO
import urllib.request
import numpy as np
import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn.linear_model import LinearRegression

# 上記の関数を使い陽性者数等の時系列データを取得
url_1 = "https://www.mhlw.go.jp/content/pcr_positive_daily.csv"
url_2 = "https://www.mhlw.go.jp/content/pcr_tested_daily.csv"
url_3 = "https://www.mhlw.go.jp/content/cases_total.csv"
url_4 = "https://www.mhlw.go.jp/content/recovery_total.csv"
url_5 = "https://www.mhlw.go.jp/content/death_total.csv"
url_6 = "https://www.mhlw.go.jp/content/pcr_case_daily.csv"

url_list=[url_1,url_2,url_4,url_5,url_6]

def read_csv(url):
   res = urllib.request.urlopen(url)
   res = res.read().decode('utf-8')
   df = pd.read_csv(StringIO(res))
   return df

df_list=[]
for url in url_list:
  df=read_csv(url)
  df["日付"] = pd.to_datetime(df["日付"], format='%Y/%m/%d')
  df = df.set_index('日付')
  df_list.append(df)

df3 = read_csv(url_3)
df3["日付\t"] = pd.to_datetime(df3["日付\t"], format='%Y/%m/%d')
df3 = df3.set_index('日付\t')
df3.index.name="日付"
df_list.append(df3)
df_join=df_list[0].join(df_list[1:6])

!pip install pytrends
from pytrends.request import TrendReq
# googleに接続
pytrend = TrendReq(hl='ja-jp',tz=540)
# キーワードの設定 5キーワード以上は内部エラーになる
kw_list_list = [['生命保険'],['医療保険'],['太陽生命'],['ライフネット'],['アクサダイレクト'],['オリックス生命'],['コロナ'],['入院'],['集中治療'],['ICU'],['がん']]
timeframe_list=['2020-02-01 2020-05-31','2020-06-01 2020-10-31','2020-11-01 2021-01-31','2021-02-01 2021-05-31']
for kw_list in kw_list_list:
  for timeframe in timeframe_list:
    # googleにリクエストする。
    pytrend.build_payload(kw_list=kw_list, timeframe=timeframe, geo="JP")
    # Pandasで内容をまとめる
    df_google = pytrend.interest_over_time()
    df_google = df_google.drop(df_google.columns[-1], axis=1)
    df_google_join = df_google.join(df_join)
    df_google_join = df_google_join.dropna()
    # 特徴量データをXに、ラベルデータをyに格納。
    # df_google_joinの0列目はkwデータ、1列目以降は特徴量データ。
    X, y = df_google_join.iloc[:, 1:].values, df_google_join.iloc[:,0].values
    # 訓練データとテストデータに分割
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.4, random_state=0)
    # 標準化のためのインスタンスを生成
    sc =StandardScaler()
    # トレーニングデータから変換モデルを学習し、テストデータに適用
    # この際、テストデータには同じ変換式を用いることからテストデータはtransformだけ
    X_train_std =sc.fit_transform(X_train)
    X_test_std =sc.transform(X_test)
    # 主成分分析のインスタンスを生成
    pca =PCA(n_components=2)
    # トレーニングデータから変換モデルを学習し、テストデータに適用
    X_train_pca =pca.fit_transform(X_train_std)
    X_test_pca =pca.transform(X_test_std)
    # 線形回帰のインスタンスを生成
    lr = LinearRegression()
    # 次元削減後のトレーニングデータで分類モデルを学習
    lr.fit(X_train_pca, y_train)
    # スコアの表示
    print(kw_list,"  期間:",timeframe )
    print("train_score:",'{:.3g}'.format(lr.score(X_train_pca, y_train)))
    print("test_score:",'{:.3g}'.format(lr.score(X_test_pca, y_test)))
    print("偏回帰係数:",lr.coef_)
    print("-"*50)

結果! (文章の下に数値を掲載)

まず「コロナ」について

 期間に応じて相関係数が異なるが、総じて相関係数は高い。GOTOで盛り上がった時期には相関が下がり、検査数に検索が感応しにくくなっている様子が見られた。

「〇〇保険」

 (これを一番見たかったのだが、)結果的には今年に入ってからの第4波以降が最も相関が高く、それでも0.5程度。保険関連ワードからの保険会社業績への昨年の寄与は見られない。。。

「〇〇保険会社」

・社名検索での直接の業績寄与を見てみると、会社によって明暗が分かれた印象。

・コロナ保険を打ち出した太陽生命は最大でも相関係数が最近の0.12と、コロナ統計にほとんど感応しない結果に。

・一方、ライフネットは第一波の時の相関係数が0.54となり、コロナ統計が報道されると「ライフネット」が検索されるという関係が一定想定される。

・逆に同じネット生保のアクサダイレクトではまったくそういう傾向がなく、知名度の問題か。オリックス生命はネット生保ではないが、GOTO時期に0.3程度の相関を見せており、偏相関係数をみると逆向きであるから、そういう時期に検索される保険会社ということか。

「入院、集中治療、ICU」

治療法の検索ワードを確認。特筆はGOTO時期の「入院」の相関係数が0.4あること。なぜか「がん」の相関も第三波時期に0.3あって高い。このあたりの「なぜ?」には、その時期のニュースの内容にも多分に影響を受ける可能性がある。

【今後】

主成分に分解した結果、結果が分かりずらいものになった印象。もとの要素のうち、何が(多分新規感染者だと思うが)影響を与えているかがわかるようにすればよかった(→やってみる)。
しかし、それでも検索KWをコロナ統計だけで説明しようとすると無理がありそう。。
ツイッターの出現単語を時系列でみてみるなどの分析も有用かもと思った(→これも近いうちチャレンジ。

['生命保険'] 期間: 2020-02-01 2020-05-31

train_score: 0.158
test_score: -0.282
偏回帰係数: [1.89600124 0.40364722]

['生命保険'] 期間: 2020-06-01 2020-10-31

train_score: 0.237
test_score: 0.265
偏回帰係数: [ 1.30908793 -3.46810042]

['生命保険'] 期間: 2020-11-01 2021-01-31

train_score: 0.278
test_score: 0.238
偏回帰係数: [-0.72193758 -7.36964497]

['生命保険'] 期間: 2021-02-01 2021-05-31

train_score: 0.436
test_score: 0.523
偏回帰係数: [-0.6532306 -5.55876644]

['医療保険'] 期間: 2020-02-01 2020-05-31

train_score: 0.0251
test_score: -0.256
偏回帰係数: [0.67080909 0.5275213 ]

['医療保険'] 期間: 2020-06-01 2020-10-31

train_score: 0.0749
test_score: 0.0653
偏回帰係数: [ 0.84243285 -2.4139075 ]

['医療保険'] 期間: 2020-11-01 2021-01-31

train_score: 0.202
test_score: 0.238
偏回帰係数: [ 1.38729639 -5.42644396]

['医療保険'] 期間: 2021-02-01 2021-05-31

train_score: 0.374
test_score: 0.5
偏回帰係数: [-0.972828 -6.53059494]

['太陽生命'] 期間: 2020-02-01 2020-05-31

train_score: 0.000187
test_score: -0.763
偏回帰係数: [-0.05148293 -0.07418391]

['太陽生命'] 期間: 2020-06-01 2020-10-31

train_score: 0.0456
test_score: 0.00695
偏回帰係数: [ 1.10417406 -0.55108958]

['太陽生命'] 期間: 2020-11-01 2021-01-31

train_score: 0.231
test_score: 0.0906
偏回帰係数: [ 3.29515718 -7.7507434 ]

['太陽生命'] 期間: 2021-02-01 2021-05-31

train_score: 0.0924
test_score: 0.12
偏回帰係数: [ 2.28178887 -2.31664392]

['ライフネット'] 期間: 2020-02-01 2020-05-31

train_score: 0.404
test_score: 0.545
偏回帰係数: [-2.35459141 5.75148883]

['ライフネット'] 期間: 2020-06-01 2020-10-31

train_score: 0.0186
test_score: -0.0181
偏回帰係数: [ 0.19731039 -1.25360281]

['ライフネット'] 期間: 2020-11-01 2021-01-31

train_score: 0.208
test_score: 0.0178
偏回帰係数: [3.30321109 2.21095336]

['ライフネット'] 期間: 2021-02-01 2021-05-31

train_score: 0.214
test_score: 0.0744
偏回帰係数: [1.56412554 5.30968265]

['アクサダイレクト'] 期間: 2020-02-01 2020-05-31

train_score: 0.167
test_score: -0.00421
偏回帰係数: [3.09887714 0.21436866]

['アクサダイレクト'] 期間: 2020-06-01 2020-10-31

train_score: 0.0165
test_score: 0.028
偏回帰係数: [ 0.99106154 -0.13097425]

['アクサダイレクト'] 期間: 2020-11-01 2021-01-31

train_score: 0.0207
test_score: 0.0625
偏回帰係数: [ 0.83998337 -0.49650388]

['アクサダイレクト'] 期間: 2021-02-01 2021-05-31

train_score: 0.0179
test_score: 0.0427
偏回帰係数: [-0.78549563 -1.56985846]

['オリックス生命'] 期間: 2020-02-01 2020-05-31

train_score: 0.0388
test_score: -0.111
偏回帰係数: [-0.21504711 0.63124132]

['オリックス生命'] 期間: 2020-06-01 2020-10-31

train_score: 0.0905
test_score: -0.071
偏回帰係数: [ 0.9622767 -2.79393325]

['オリックス生命'] 期間: 2020-11-01 2021-01-31

train_score: 0.181
test_score: 0.319
偏回帰係数: [ 3.53036008 -3.57540786]

['オリックス生命'] 期間: 2021-02-01 2021-05-31

train_score: 0.134
test_score: 0.239
偏回帰係数: [-0.78133023 -3.72728066]

['コロナ'] 期間: 2020-02-01 2020-05-31

train_score: 0.826
test_score: 0.796
偏回帰係数: [-2.58520734 13.12984212]

['コロナ'] 期間: 2020-06-01 2020-10-31

train_score: 0.71
test_score: 0.783
偏回帰係数: [-0.55435177 10.25544327]

['コロナ'] 期間: 2020-11-01 2021-01-31

train_score: 0.382
test_score: 0.501
偏回帰係数: [ 3.43123547 -1.30941637]

['コロナ'] 期間: 2021-02-01 2021-05-31

train_score: 0.805
test_score: 0.796
偏回帰係数: [7.56279887 1.67092901]

['入院'] 期間: 2020-02-01 2020-05-31

train_score: 0.171
test_score: 0.103
偏回帰係数: [0.27432957 2.01107348]

['入院'] 期間: 2020-06-01 2020-10-31

train_score: 0.0395
test_score: 0.0148
偏回帰係数: [0.84660809 0.60149753]

['入院'] 期間: 2020-11-01 2021-01-31

train_score: 0.406
test_score: 0.404
偏回帰係数: [ 2.10959931 -4.5390821 ]

['入院'] 期間: 2021-02-01 2021-05-31

train_score: 0.303
test_score: 0.257
偏回帰係数: [ 2.0787306 -2.93242331]

['集中治療'] 期間: 2020-02-01 2020-05-31

train_score: 0.141
test_score: -0.126
偏回帰係数: [-0.87821878 1.39765223]

['集中治療'] 期間: 2020-06-01 2020-10-31

train_score: 0.0233
test_score: -0.0174
偏回帰係数: [ 1.48566766 -0.59446809]

['集中治療'] 期間: 2020-11-01 2021-01-31

train_score: 0.0579
test_score: -0.0704
偏回帰係数: [-0.51239708 -4.35284255]

['集中治療'] 期間: 2021-02-01 2021-05-31

train_score: 0.0381
test_score: -0.0337
偏回帰係数: [ 0.93629811 -2.55339572]

['ICU'] 期間: 2020-02-01 2020-05-31

train_score: 0.233
test_score: -0.12
偏回帰係数: [-0.42920587 5.43906769]

['ICU'] 期間: 2020-06-01 2020-10-31

train_score: 0.0287
test_score: -0.0344
偏回帰係数: [-0.13010282 2.07912654]

['ICU'] 期間: 2020-11-01 2021-01-31

train_score: 0.107
test_score: -0.35
偏回帰係数: [ 1.39106098 -4.64234333]

['ICU'] 期間: 2021-02-01 2021-05-31

train_score: 0.0351
test_score: -0.00185
偏回帰係数: [ 0.05958689 -1.44031718]

['がん'] 期間: 2020-02-01 2020-05-31

train_score: 0.0453
test_score: 0.00919
偏回帰係数: [ 0.2070182 -0.7014058]

['がん'] 期間: 2020-06-01 2020-10-31

train_score: 0.047
test_score: 0.0283
偏回帰係数: [ 0.46162495 -0.70481235]

['がん'] 期間: 2020-11-01 2021-01-31

train_score: 0.16
test_score: 0.332
偏回帰係数: [ 0.51764476 -2.83990603]

['がん'] 期間: 2021-02-01 2021-05-31

train_score: 0.267
test_score: 0.13
偏回帰係数: [ 0.12465825 -1.51145617]

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up