File size: 41,541 Bytes
ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 d18e287 ea70b68 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 |
{
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"id": "ccdd0729-ec00-4e51-94f2-b4808d26796c",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import numpy as np\n",
"import statsmodels.api as sm\n",
"from statsmodels.tsa.seasonal import seasonal_decompose\n",
"import sys\n",
"import datetime as dt\n",
"sys.path.append(\"../\")\n",
"from model import SarimaModel\n",
"import get_fish_price"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "02a5171f-5556-440d-88c2-65aeb0215932",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"20230327: 100%|██████████| 11/11 [00:05<00:00, 1.94it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n",
"0\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/var/folders/3q/40y_c73d30ndpj0wrsh_pts00000gn/T/ipykernel_9785/2639658167.py:56: SettingWithCopyWarning: \n",
"A value is trying to be set on a copy of a slice from a DataFrame\n",
"\n",
"See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
" train.dropna(subset = [\"value\"], inplace=True)\n"
]
}
],
"source": [
"df_hamachi = pd.read_csv(r'../data/hamachi_price.csv', encoding='utf_8_sig')\n",
"df_hamachi[\"date\"] = df_hamachi[\"date\"].apply(lambda x: pd.to_datetime(str(x)))\n",
"\n",
"today = dt.date.today()\n",
"year = today.year\n",
"month = today.month\n",
"\n",
"# ハマチの卸売数量のデータを更新\n",
"if df_hamachi['date'].max().date() < today:\n",
" start_date = df_hamachi['date'].max().date() + dt.timedelta(days=1)\n",
" temp_df = get_fish_price.get_fish_price_data(start_date=start_date, end_date=today)\n",
" temp_df[\"date\"] = temp_df[\"date\"].apply(lambda x: pd.to_datetime(str(x)))\n",
" df_hamachi = pd.concat([df_hamachi, temp_df])\n",
" df_hamachi.to_csv(r'../data/hamachi_price2.csv', encoding='utf_8_sig', index=False)\n",
"\n",
"df_hamachi[\"month\"] = df_hamachi[\"date\"].dt.month\n",
"df_hamachi[\"year\"] = df_hamachi[\"date\"].dt.year\n",
"#小売物価統計の最新の行を取得\n",
"df_hamachi_latest = df_hamachi.tail(1)\n",
"\n",
"#小売物価統計調査データ\n",
"df_FEH = pd.read_csv(\"../data/FEH_buri.csv\")\n",
"df_FEH[\"時間軸(月)\"] = pd.to_datetime(df_FEH[\"時間軸(月)\"], format='%Y年%m月')\n",
"df_FEH[\"year\"] = df_FEH[\"時間軸(月)\"].dt.year\n",
"df_FEH[\"month\"] = df_FEH[\"時間軸(月)\"].dt.month\n",
"df_FEH = df_FEH.sort_values(by=[\"year\", \"month\"], ascending=False)\n",
"#小売物価統計の最新の行を取得\n",
"df_FEH_latest = df_FEH.head(1)\n",
"#ハマチの卸売数量のデータの最新月は、何カ月差か計算\n",
"delta = abs(df_hamachi_latest[\"year\"].iloc[0] - df_FEH_latest[\"year\"].iloc[0])*12\\\n",
" + abs(df_hamachi_latest[\"month\"].iloc[0] - df_FEH_latest[\"month\"].iloc[0])\n",
"\n",
"#東京都中央卸売市場 休業日データ\n",
"df_calender = pd.read_csv(\"../data/toyosu_calender_2023.csv\")\n",
"df_calender[\"date\"] = pd.to_datetime(df_calender[\"date\"])\n",
"df_calender[\"week_day\"] = df_calender[\"date\"].apply(lambda x: x.weekday())\n",
"\n",
"#ハマチの卸売数量のデータと小売物価統計調査データをマージ\n",
"df_hamachi = pd.merge(left=df_hamachi, right=df_FEH[[\"year\", \"month\", \"value\"]], on=[\"year\", \"month\"],\n",
" how=\"left\")\n",
"#直近、小売物価統計調査データが入っていない箇所を最新の値で埋める\n",
"for i in range(delta-1, -1, -1):\n",
" print(i)\n",
" if month-i>0:\n",
" df_hamachi.loc[(df_hamachi[\"year\"]==year) & (df_hamachi[\"month\"]==month-i),\n",
" \"value\"\n",
" ] = df_FEH_latest[\"value\"].at[0]\n",
" elif (month-i>-12)and (month-i<=0):\n",
" df_hamachi.loc[(df_hamachi[\"year\"]==year-1 & (df_hamachi[\"month\"]==month-i+12)),\n",
" \"value\"\n",
" ] = df_FEH_latest[\"value\"].at[0] \n",
" else:\n",
" raise ValueError(\"小売物価統計調査データを更新してください\")\n",
"df_hamachi = df_hamachi.set_index(df_hamachi[\"date\"])\n",
"train = df_hamachi[[\"quantity\", \"value\"]]\n",
"train.dropna(subset = [\"value\"], inplace=True)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "6178e933-c376-468f-844e-58149c3a54fc",
"metadata": {},
"outputs": [],
"source": [
"sarima = SarimaModel(train=train, df_calender=df_calender, exog=\"value\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "1367ac5b-6d4b-4d83-8f4c-c9d96c054f99",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/estyle-074/opt/anaconda3/envs/sub1/lib/python3.9/site-packages/statsmodels/tsa/base/tsa_model.py:471: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
" self._init_dates(dates, freq)\n",
"/Users/estyle-074/opt/anaconda3/envs/sub1/lib/python3.9/site-packages/statsmodels/tsa/base/tsa_model.py:471: ValueWarning: No frequency information was provided, so inferred frequency D will be used.\n",
" self._init_dates(dates, freq)\n",
" This problem is unconstrained.\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"RUNNING THE L-BFGS-B CODE\n",
"\n",
" * * *\n",
"\n",
"Machine precision = 2.220D-16\n",
" N = 6 M = 10\n",
"\n",
"At X0 0 variables are exactly at the bounds\n",
"\n",
"At iterate 0 f= 1.08969D+01 |proj g|= 7.35336D-02\n",
"\n",
"At iterate 5 f= 1.08053D+01 |proj g|= 4.19363D-03\n",
"\n",
"At iterate 10 f= 1.08045D+01 |proj g|= 1.92586D-03\n",
"\n",
"At iterate 15 f= 1.08041D+01 |proj g|= 1.12754D-03\n",
"\n",
" * * *\n",
"\n",
"Tit = total number of iterations\n",
"Tnf = total number of function evaluations\n",
"Tnint = total number of segments explored during Cauchy searches\n",
"Skip = number of BFGS updates skipped\n",
"Nact = number of active bounds at final generalized Cauchy point\n",
"Projg = norm of the final projected gradient\n",
"F = final function value\n",
"\n",
" * * *\n",
"\n",
" N Tit Tnf Tnint Skip Nact Projg F\n",
" 6 19 22 1 0 0 2.972D-05 1.080D+01\n",
" F = 10.804142602405426 \n",
"\n",
"CONVERGENCE: REL_REDUCTION_OF_F_<=_FACTR*EPSMCH \n"
]
}
],
"source": [
"sarima_fit = sarima.fit()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "18c61fc7-a2bd-4f12-bb7a-64340a9e9199",
"metadata": {},
"outputs": [],
"source": [
"test_pred = sarima.predict(sarima_fit)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "7921b93b-79b2-482f-abb8-0fa90e398103",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.plot(df_hamachi.loc[\"2023\"][\"quantity\"])\n",
"plt.plot(test_pred)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "36527aa8-fdfb-446f-beb3-df8a18e02492",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
|