質問編集履歴
3
全体的に整理し、情報を追加いたしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,39 +4,125 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
以下の重回帰分析によりモデルを作成し、
|
7
|
+
以下の重回帰分析により、1~135週までの取引データを使ってモデルを作成し、
|
8
|
+
|
9
|
+
|
8
10
|
|
9
11
|
|
10
12
|
|
11
13
|
```Python
|
12
14
|
|
13
|
-
from statsmodels import api as sm
|
14
|
-
|
15
|
-
import numpy as np
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
X = train_query.loc[:,columnList]
|
20
|
-
|
21
|
-
y = train_query.loc[:,['num_orders']]
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
ary_x = np.array(
|
15
|
+
ary_x = np.array(train_query_x)
|
26
16
|
|
27
17
|
ary_x = sm.add_constant(ary_x)
|
28
18
|
|
29
|
-
ary_y = np.array(y)
|
19
|
+
ary_y = np.array(train_query_y)
|
30
|
-
|
31
|
-
|
32
20
|
|
33
21
|
model = sm.OLS(ary_y, ary_x)
|
34
|
-
|
35
|
-
|
36
22
|
|
37
23
|
result = model.fit()
|
38
24
|
|
39
25
|
result.summary()
|
26
|
+
|
27
|
+
```
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
上記で出来上がったモデルresultを使って、
|
32
|
+
|
33
|
+
136週から145週までのnum_orders(オーダー数)を予測するというものです。
|
34
|
+
|
35
|
+
よって、
|
36
|
+
|
37
|
+
目的変数:num_orders
|
38
|
+
|
39
|
+
説明変数:num_orders以外の変数(列名)
|
40
|
+
|
41
|
+
ということになります。
|
42
|
+
|
43
|
+
(データフレームは一番下に冒頭の5行を記載しています。)
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
```python
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
# 1~145週まであるデータフレームから予測したい136週から145週を抽出
|
52
|
+
|
53
|
+
train_query_demand = train_dummy[136:145]
|
54
|
+
|
55
|
+
train_query_demand
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
#説明変数だけのデータフレーム(num_ordersを除いたもの)に整理
|
60
|
+
|
61
|
+
train_query_demand_x = train_query_demand[['checkout_price', 'base_price', 'emailer_for_promotion',\
|
62
|
+
|
63
|
+
'homepage_featured', 'op_area', 'TYPE_B', 'TYPE_C',\
|
64
|
+
|
65
|
+
'Biryani', 'Desert', 'Extras', 'Fish', 'Other Snacks', 'Pasta', 'Pizza',\
|
66
|
+
|
67
|
+
'Rice Bowl', 'Salad', 'Sandwich', 'Seafood', 'Soup', 'Starters',\
|
68
|
+
|
69
|
+
'Indian', 'Italian', 'Thai']]
|
70
|
+
|
71
|
+
train_query_demand_x
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
# 得られたモデルresultからpredict関するを使って予測する 135週から145週のnum_orders予測
|
76
|
+
|
77
|
+
df_pred_y = pd.DataFrame(result.predict(sm.add_constant(train_query_demand_x)), columns=['num_orders'])
|
78
|
+
|
79
|
+
df_pred_y
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
```
|
84
|
+
|
85
|
+
以下はエラーのコードと画面です。
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
```python
|
90
|
+
|
91
|
+
---------------------------------------------------------------------------
|
92
|
+
|
93
|
+
ValueError Traceback (most recent call last)
|
94
|
+
|
95
|
+
<ipython-input-310-d3bd08443293> in <module>()
|
96
|
+
|
97
|
+
1 # 得られたモデルから予測する 135週から145週の売上数量予測
|
98
|
+
|
99
|
+
----> 2 df_pred_y = pd.DataFrame(result.predict(sm.add_constant(train_query_demand_x)), columns=['num_orders'])
|
100
|
+
|
101
|
+
3 df_pred_y
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
1 frames
|
106
|
+
|
107
|
+
/usr/local/lib/python3.7/dist-packages/statsmodels/regression/linear_model.py in predict(self, params, exog)
|
108
|
+
|
109
|
+
362 exog = self.exog
|
110
|
+
|
111
|
+
363
|
112
|
+
|
113
|
+
--> 364 return np.dot(exog, params)
|
114
|
+
|
115
|
+
365
|
116
|
+
|
117
|
+
366 def get_distribution(self, params, scale, exog=None, dist_class=None):
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
<__array_function__ internals> in dot(*args, **kwargs)
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
ValueError: shapes (9,23) and (24,) not aligned: 23 (dim 1) != 24 (dim 0)
|
40
126
|
|
41
127
|
|
42
128
|
|
@@ -44,25 +130,31 @@
|
|
44
130
|
|
45
131
|
|
46
132
|
|
47
|
-
|
133
|
+
<使っているデータフレーム>
|
48
134
|
|
135
|
+
以下のデータフレームが、weekが1~145行まであり、1~135行目までは、num_ordersの数値があり
|
136
|
+
|
137
|
+
136~145行までは、num_ordersの数値がなく、この数値をpredictを使って予測したいのですが、上記エラーが出てしまいます。
|
138
|
+
|
49
|
-
|
139
|
+
(表の記述の仕方がわからず、見にくいかもしれずすみません。)
|
50
140
|
|
51
141
|
|
52
142
|
|
53
|
-
```
|
143
|
+
```python
|
54
|
-
|
55
|
-
pred_y = pd.DataFrame(result.predict(sm.add_constant(train_query_test)), columns=['num_orders'])
|
56
|
-
|
57
|
-
pred_y
|
58
|
-
|
59
|
-
```
|
60
144
|
|
61
145
|
|
62
146
|
|
63
|
-
trai
|
147
|
+
week checkout_price base_price emailer_for_promotion homepage_featured num_orders op_area TYPE_B TYPE_C Biryani Desert Extras Fish Other Snacks Pasta Pizza Rice Bowl Salad Sandwich Seafood Soup Starters Indian Italian Thai
|
64
148
|
|
149
|
+
1 965809.26 1018365.32 357 414 792261 4.079876797 602 643 175 210 94 0 198 212 231 231 0 230 166 79 209 820 673 811
|
150
|
+
|
151
|
+
2 938092.43 1005779.2 621 514 787084 4.085013812 602 625 159 203 93 0 196 209 230 230 0 229 168 82 211 795 668 813
|
152
|
+
|
153
|
+
3 948560.28 1008352.05 104 316 695262 4.078682304 596 635 167 201 93 0 199 210 227 231 0 230 167 82 208 800 671 812
|
154
|
+
|
65
|
-
|
155
|
+
4 953833.69 1006446.9 0 292 743529 4.087746625 589 618 155 204 96 0 199 193 230 231 0 230 170 85 214 789 654 825
|
156
|
+
|
157
|
+
5 901141.58 1001075.16 337 466 1198675 4.077824414 548 642 154 207 95 0 195 190 222 228 0 227 189 79 209 780 645 803
|
66
158
|
|
67
159
|
|
68
160
|
|
@@ -70,26 +162,4 @@
|
|
70
162
|
|
71
163
|
|
72
164
|
|
73
|
-
|
74
|
-
|
75
|
-
以下はエラーのコードと画面です。
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
```Python
|
80
|
-
|
81
|
-
ValueError: shapes (10,9) and (11,) not aligned: 9 (dim 1) != 11 (dim 0)
|
82
|
-
|
83
|
-
|
84
|
-
|
85
165
|
```
|
86
|
-
|
87
|
-
列名
|
88
|
-
|
89
|
-
week checkout_price base_price emailer_for_promotion homepage_featured num_orders op_area TYPE_B TYPE_C Biryani Desert Extras Fish Other Snacks Pasta Pizza Rice Bowl Salad Sandwich Seafood Soup Starters Indian Italian Thai B C D E
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
1行目
|
94
|
-
|
95
|
-
1 965809.26 1018365.32 357 414 792261 4.079877 602.0 643.0 175 210 94 0 198 212 231 231 0 230 166 79 209 820.0 673.0 811.0 231 154 154 2152.0
|
2
データ例を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -83,3 +83,13 @@
|
|
83
83
|
|
84
84
|
|
85
85
|
```
|
86
|
+
|
87
|
+
列名
|
88
|
+
|
89
|
+
week checkout_price base_price emailer_for_promotion homepage_featured num_orders op_area TYPE_B TYPE_C Biryani Desert Extras Fish Other Snacks Pasta Pizza Rice Bowl Salad Sandwich Seafood Soup Starters Indian Italian Thai B C D E
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
1行目
|
94
|
+
|
95
|
+
1 965809.26 1018365.32 357 414 792261 4.079877 602.0 643.0 175 210 94 0 198 212 231 231 0 230 166 79 209 820.0 673.0 811.0 231 154 154 2152.0
|
1
画像修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -66,8 +66,6 @@
|
|
66
66
|
|
67
67
|
|
68
68
|
|
69
|
-
![イメージ説明](fe54e7f2b56d2ba1c4b0234084202acb.png)
|
70
|
-
|
71
69
|
|
72
70
|
|
73
71
|
|
@@ -85,9 +83,3 @@
|
|
85
83
|
|
86
84
|
|
87
85
|
```
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
![イメージ説明](4404f1821660fa921944965db2afff31.png)
|