teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

追記

2018/11/05 08:11

投稿

_hh
_hh

スコア79

title CHANGED
File without changes
body CHANGED
@@ -246,4 +246,38 @@
246
246
  x3_I NaN
247
247
  x4 NaN
248
248
  x9 NaN
249
- dtype: float64]]
249
+ dtype: float64]]
250
+
251
+ 【デバッグ】
252
+ ```python
253
+ コード
254
+ ``
255
+
256
+ ちなみに、出力の差分としましては、うまくいっているデータの時は、
257
+ 関数Mahala2の中でデバッグ表示しているベクトルについて、
258
+
259
+ vec is [[-0.40788125]
260
+ [ 0.00139516]
261
+ [ 0.00359367]
262
+ [ 0.00180594]
263
+ [ 0.00321283]]
264
+
265
+ となっているのですが、NGの時は以下の様になっております。
266
+
267
+ vec is [[x1_E 0.000891
268
+ dtype: float64]
269
+ [x3_I 0.002092
270
+ dtype: float64]
271
+ [x2_K 0.000432
272
+ dtype: float64]
273
+ [x4 0.011538
274
+ dtype: float64]
275
+ [x1_F 0.000403
276
+ dtype: float64]
277
+ [x1_D 0.002242
278
+ dtype: float64]
279
+ [x9 0.010253
280
+ dtype: float64]
281
+ [-1.0186953967441772]
282
+ [x1_C 0.001979
283
+ dtype: float64]]`

3

変更

2018/11/05 08:11

投稿

_hh
_hh

スコア79

title CHANGED
File without changes
body CHANGED
@@ -3,9 +3,10 @@
3
3
  引数のベクトルの値は、ちゃんと入っているようですし、"abalone.data.txt"分析時のデバッグでも、ほぼ同様にベクトルの値が出力され、行列式の値もほぼ近いのですが、不思議なことに、その場合はちゃんと分散共分散行列の逆行列が求まっています。。。変数vecの値の入り方が違うのでしょうか?
4
4
 
5
5
  【環境】Window10 64bit, chrome
6
- 【コード】
7
6
 
8
7
 
8
+ ```Python
9
+
9
10
  def step_aic(model, exog, endog, **kwargs):
10
11
  """
11
12
  This select the best exogenous variables with AIC
@@ -176,7 +177,9 @@
176
177
  plt.scatter(hl, X.dot(res.params), color="k", )
177
178
 
178
179
  plt.grid()
180
+ ```
179
181
 
182
+
180
183
  【出力】
181
184
 
182
185
  (x1_E 0.090009

2

修正

2018/11/05 06:35

投稿

_hh
_hh

スコア79

title CHANGED
File without changes
body CHANGED
@@ -77,10 +77,6 @@
77
77
  d = pd.read_csv('flare.data2.txt',header=None,skiprows=1,delim_whitespace=True,names=('x1','x2','x3','x4','x5','x6','x7','x8','x9','x10','y1','y2','y3'))
78
78
  d.head()
79
79
  df2 = pd.get_dummies(d)
80
- #print(df2)
81
- #df2['x6'].unique()
82
- #df2.head()
83
- #df2.columns
84
80
  model = step_aic(smf.ols,['x4','x5','x6','x7','x8','x9','x10','x1_B','x1_C','x1_D','x1_E','x1_F','x1_H','x2_A','x2_H','x2_K','x2_R','x2_S','x2_X','x3_C','x3_I','x3_O','x3_X'],['y1'],data=df2)
85
81
 
86
82
 
@@ -145,7 +141,6 @@
145
141
 
146
142
  print((x1_E, x3_I, x2_K, x4, x1_F, x1_D, x9, x1_C))
147
143
  for hl in hl_l:
148
- #X = sp.array([1, hl, ml, wl, prw, ppl, gw])
149
144
  X = sp.array([1,x1_E, x3_I, x2_K, x4, x1_F, x1_D, x9, hl, x1_C])
150
145
  hat_y.append(X.dot(res.params))
151
146
  plt.plot(hl_l, hat_y)
@@ -162,7 +157,6 @@
162
157
  D2.append(D2_0)
163
158
  print(D2_0)
164
159
  D2 = sp.array(D2)
165
- #print(D2.shape)
166
160
 
167
161
 
168
162
  interval095 = t_0025 * sp.sqrt((1/n + D2 / (n-1)) * res.scale)

1

追記

2018/11/05 06:33

投稿

_hh
_hh

スコア79

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- Pythonのjupyter notebookで、UCI machine learning repositoryのあるデータ('flare.data2.txt')を重回帰分析すると、エラーが出ます。同じ手順で、"abalone.data.txt"というデータを分析した際には全く問題が無いのですが、なぜかわからずにおります。
1
+ Pythonのjupyter notebookで、UCI machine learning repositoryのあるデータ('flare.data2.txt')を重回帰分析しておりま。自作関数によりStepAICで変数選択を行ったのち、信頼区間・予測区間を求めようとすると、エラーが出ます。同じ手順で、"abalone.data.txt"というデータを分析した際には全く問題が無いのですが、なぜかわからずにおります。
2
2
  エラーが出ているのは、マハラノビスの距離を求めるところで、分散共分散行列の逆行列がNANになってしまっている(下記の"mahara is..."以下の出力)ためなのですが、なぜそのようになるのかが分かりません。
3
3
  引数のベクトルの値は、ちゃんと入っているようですし、"abalone.data.txt"分析時のデバッグでも、ほぼ同様にベクトルの値が出力され、行列式の値もほぼ近いのですが、不思議なことに、その場合はちゃんと分散共分散行列の逆行列が求まっています。。。変数vecの値の入り方が違うのでしょうか?
4
4