[Python]---薬物データの分析と予測 (データセット、ソースコード、レポートを含む)

プロジェクトの紹介

1. プロジェクトの背景の紹介

ビッグデータの継続的な発展は、消費生活のあらゆる側面に影響を与え、企業のマーケティングモデルにも課題をもたらしていますビッグデータの定量分析、分析データの相関分析、単一因子分析などの消費者関連データを分析する技術企業にとって本当に意味のある情報を掘り出します。このため、企業は既存の人的および物的リソースの下で合理的な販売計画を更新し、見つける必要があります。
製薬企業にとって、ビッグデータは危機とビジネスチャンスをもたらしており、自社の開発段階や医薬品の特性を踏まえた方向性を持って、顧客価値の最大化を図り、情報化を手段として活用し、医薬品の市場需要を高めていく必要がある。消費者の個々のニーズを把握し、正確なマーケティングを実施し、消費者との友好的で効果的な対話を確立し、消費者のフィードバックをタイムリーに入手し、伝統的なメディアと新しいメディアの宣伝リソースを統合し、企業の発展に適したマーケティング戦略を選択します。
経済の発展と国民の生活水準、文化水準の継続的な向上に伴い、ドラッグスーパーや薬局が雨後の筍のように乱立し、多くの国民が家族の健康のために共通して使用する製品を購入するようになりました。医薬品の知識は高度に専門的であるため、医薬品販売において医薬品データ分析は非常に重要な役割を果たします。

2. プロジェクトの目的と意義

目的:医薬品の販売データを分析し、販売データを分析し、過去のデータに基づいて将来の販売を予測する
意義:将来の医薬品の数量を事前に予約しておくと、病院にとって便利です。

3. プロジェクトに必要なデータの紹介

データセット ネットワーク ディスク リンク: https://pan.baidu.com/s/1oBipkEZkd4F0x1ZdZISY0g

抽出コード:4679
このデータ分析のデータは医薬品の販売データに基づいており、合計 1461 行 13 列のデータがあります。データには主に、日付、複合ペプシン顆粒、威長寧錠、Qiangli VC 銀橋錠、Yaoqiutong 丸薬、Amanjiahuangmin カプセル、Xinnao Jiangya 丸薬、Naaluotong カプセル、アスピリン、年、月、時間、週の 13 基本単位が含まれます。

4. プロジェクトで使用されるアルゴリズムの紹介

時系列アルゴリズム
時系列における一般的な予測手法 時系列は、連続した時点または連続した期間における変数の一連の観測値です。

(1) 移動平均法(MA)

1.1. 単純移動平均法
時系列 y1, y2,... がある場合、データ点の順序に従って N 個の数を点ごとに平均し、移動平均を求めることができます。1.2 時系列の場合のトレンド移動平均法 明らかなトレンド変化がない場合には、移動平均を使用することで実態を正確に反映することができ、t 期の移動平均を使用することで 1t+期の値を直接予測することができます
時系列に線形傾向がある場合、移動平均を使用して予測するとラグ偏差が発生します。修正方法は、最初の移動平均に基づいて 2 番目の移動平均を作成し、移動平均遅れ偏差の法則を使用して曲線の発展方向と傾向を見つけ、線形傾向予測モデルを確立します。したがって、トレンド移動平均法と呼ばれます。

(2) 自己回帰モデル(AR)

AR モデルは一種の線形予測です。つまり、N 個のデータが与えられた場合、このモデルを使用して N 番目の点 (P 点を設定) の前後のデータを推定できます。本質は補間と似ており、その目的は次のとおりです
。有効なデータは増加しますが、AR モデルは N 点から再帰的であり、補間は 2 点 (または数点) から導出されるため、補間方法よりも AR モデルの方が優れています。

(3) 自己回帰移動平均モデル (ARMA)

そのモデリングの考え方は、次のように要約できます。モデルの次数を徐々に増加させ、モデルの次数が増加して残差分散が大幅に減少しなくなるまで、より高次のモデルを当てはめます。

2つのプロジェクトの制作プロセス

1. プロジェクト機能の紹介

今回の分析目的は、販売データから以下の項目を分析することです。
(1) 移動平均法を用いて、ある医薬品の2018年から2020年の状況を表示する
(2) 時系列を用いて、ある医薬品の売上を予測する2022 年の特定の薬
(3) 一定期間における特定の薬の売上を分析する
(4) さまざまな回帰モデルを使用して、2022 年の特定の薬の売上を予測する

2. メインコードの実装と説明

1. 必要なライブラリをインポートする

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import re
from statsmodels.graphics.tsaplots import plot_acf,plot_pacf
from statsmodels.tsa.arima_model import ARMA
import statsmodels.tsa.stattools as st
from statsmodels.graphics.api import qqplot
from statsmodels.stats.stattools import durbin_watson
# 设置字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus']=False

2. データの欠落値と重複値を表示し、データをプレビューします

data = pd.read_csv("C:\\Users\\山渐青\\Desktop\\数据分析实训\\drug_1.csv",engine='python')
# 缺失值
print(data.isnull().sum())
# 重复值
print(data.duplicated().sum())
data

医薬品データのプレビュー

3. ある医薬品の長期にわたる販売データの統計

orig = pd.Series(data.胃肠宁片.tolist(),\
                index = pd.to_datetime(data.日期.tolist()))
orig.plot(style='k.',figsize=(16,8),rot=30)
# 散点图输出
orig=orig.resample('M').sum()
orig.plot(color = 'blue',figsize=(16,8))
# 折现图输出

医薬品販売データの折れ線グラフ

4. 統計

# 最常售出药物(胃肠宁片)的时间是星期几
df_1 = data[['胃肠宁片', '星期']]
result = df_1.groupby(['星期'], as_index=False).sum().sort_values('胃肠宁片', ascending=False)
resultDay = result.iloc[0,0]
resultValue = round(result.iloc[0,1], 2)
print('药品胃肠宁片通常销售时间在' + str(resultDay))
print('销售金额为' + str(resultValue))
df = pd.read_csv("C:\\Users\\山渐青\\Desktop\\数据分析实训\\drug_1.csv",engine='python')
# 那种药物在2019年的星期一最为频繁销售
df = df.loc[df['日期'].str.contains('2019', flags=re.I, regex=True) & (df['星期'] == '星期一')]
df = df.groupby(['星期'], as_index=False).sum()
df = df[['复方胃蛋白酶颗粒', '胃肠宁片', '强力VC银翘片', '腰腿痛丸', '氨加黄敏胶囊', '醒脑降压丸', '脑络通胶囊', '阿司匹林']]
result = df.sort_values(by=0, ascending=False, axis=1)
for field in result.columns.values[0:1]:
    print('2019年星期一最为受欢迎的药品是' + str(field))
    print('销售金额为' + str(round(result[field].iloc[0], 2)))

5. 予測を開始する

# 设置训练集
train_x = orig['1/2/2018':'12/31/2021']
# 采用滑动平均法
smt = train_x.rolling(window=12)
plt.figure(figsize=(24,8))
plt.plot(train_x,color='blue',label='原始数据')
plt.plot(smt.mean(),color='red',label='滑动平均')
# 查看2018年到2021年的滑动平均值
plt.legend()

移動平均

def plot_diff(series,n):
    # 4阶差分预览
    color_bar = ['blue','red','purple','pink']
    diff_x = series
    for i in range(n):
        plt.figure(figsize=(24,8))
        plt.title('diff'+str(i+1))
        diff_x=diff_x.diff(1)
        diff_x.plot(color=color_bar[i%len(color_bar)])
plot_diff(train_x,4)
# 自相关系数与偏自相关系数
fig=plt.figure(figsize=(16,8))
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)
# ACF
fig = plot_acf(train_x,lags=20,alpha=0.05,ax=ax1)
# PACF
fig = plot_pacf(train_x,lags=20,alpha=0.05,ax=ax2)
# 绘制AIC热力图
ax = sns.heatmap(res['aic'],annot=True,fmt=".2f",cmap="rainbow")
ax.set_title("AIC")
res.aic_min_order
# 绘制BIC热力图
ax = sns.heatmap(res['aic'],annot=True,fmt=".2f",cmap="rainbow")
ax.set_title("BIC")
res.bic_min_order
model = ARMA(train_x,order=(3,2)).fit()
resid = model.resid
plt.figure(figsize=(12,12))
qqplot(resid,line='q',fit=True)
# D-W检验
plt.title('DW:{}'.format(durbin_watson(resid.values)))
# 预测
pred = model.predict(start=0,end=len(train_x)+11)
# 查看拟合结果
plt.figure(figsize=(24,8))
plt.plot(orig,color='blue',label='原始数据')
plt.plot(pred,color='red',linestyle='-.',label="预测")
plt.legend(prop={
    
    'size':16})
plt.axvline(x=pd.to_datetime('12/31/2021'),ls='--',c='green')
plt.show()

2022年の売上予測

3つのプロジェクトの結果の分析

この授業では、主に2018年から2021年までの病院の医薬品販売データを分析し、2022年の医薬品販売を予測します。分析の目的は、販売データから以下の項目を分析することです。 (1) 移動平均法を使用して表示します。ある
医薬品の2018年から2021年の状況
(2) ある医薬品の2022年の売上を時系列で予測する
(3) ある医薬品の一定期間の売上を分析する
(4) 異なる回帰モデルを用いて予測する2022 年の医薬品の販売状況 2022 年通年の販売状況
実験が不十分であった:
(1) 実験において、欠損値、繰り返し値、外れ値の処理などのデータの前処理手法が使用されていなかった(2
) ) 非定常時系列の予測は行わず、定常時系列のみが予測されました。

4 まとめと展望

全体的な経験: コース設計は、今学期からの私の学習成果を試す良いテストであり、すべてのトピックの中で、医薬品販売分析のデータ分析プロジェクトを選択しました。この 2 週間のコース設計では、多くの困難に遭遇し、理解できない文章もたくさんありましたが、コース内容を改善するためにインターネットで多くの関連情報を見つけました。データについての理解が深まりました。を分析し、データ分析についての理解を深めます。
専門課程として、カリキュラムデザインは私に多くの専門知識と専門スキルの向上をもたらし、カリキュラムデザインは私に深く感動し、抽象的な理論を具体的に理解することができました。
この2週間の授業設計の中で、自らの思考力や実践力が養われただけでなく、さまざまな能力が向上したと思います。さらに重要なのは、コース設計において、多くの手法を学んだことです。そして、これが将来的に最も実用的です。私たちは社会の課題に立ち向かい、学び、実践し、学び、そして実践し続けるだけです。これは私たちの将来にとっても大きな助けとなるでしょう。これから先、どんなに苦しいことがあっても、苦しみを喜びに変えて、面白いことを見つけて、その中に大切なものを見出すことができると思います。
理論から実践まで、この日々で本当にたくさんのことを学ぶことができましたが、それと同時に、これまで学んだ知識を定着させるだけでなく、本では学んだことのない知識もたくさん学ぶことができました。

おすすめ

転載: blog.csdn.net/nhdzppx/article/details/122348460