Ask @univprofblog1:

初めまして。私もデータ分析を始めて間もない初心者です。目的変数が複数ある場合の回帰分析の手法についてです。目的変数を一つずつで重回帰分析を行い、その後、複数ある回帰モデルをどのように関連付けると良い結果が得られるのでしょうか。 ご回答のほど、よろしくお願いいたします。

muscat
ご質問ありがとうございます。
関連付けると申しますか、与えられた説明変数の値を、それぞれの回帰モデルに入力して、それぞれ目的変数の値を計算することになります。
目的変数の間の関係を調べたい場合は、目的変数のみで主成分分析などの手法を用いるのがよいかと思います。

View more

+1 answer in: “はじめまして。データ分析を初めたばかりの者です。 回帰分析について質問です。目的変数が複数の場合は行うことが出来ないのでしょうか? もし、可能であるならばどういった手法が考えられますか? ご回答の程、宜しくお願い致します。”

「データを準備するだけ!PythonでEGO!目的変数が複数」を購入した者です。サンプルデータを使用して実行してみたのですが、「operands could not be broadcast together with shapes (50,10) (8,) 」というエラーが発生してしまいました。どうすれば実行できますでしょうか。大変お手数ですが、返信よろしくお願いします。

muscat
ご質問ありがとうございます。
またこのたびはプログラムのご購入をいただき感謝致します。
プログラムについてご不便をおかけ致しまして申し訳ございません。
サンプルデータについて、今回は目的変数の数を 3 にしているにもかかわらず、data.csvの説明変数の数と、data_prediction2.csvの説明変数の数とが異なることが原因でした。
data_prediction2.csvを開いていただき、X1 と X2 の二列を削除していただけないでしょうか。
申し訳ございませんがよろしくお願い致します。

View more

クロスバリデーション(CV)について質問です。一般的に、時系列データの予測モデルを作るときにCVを行うことは受け入れられているのでしょうか?CVでは、データ全体をいくつかの塊(K個)に分割して、K個の中から1つをテストデータにして、それ以外をモデル構築データにして精度を図るという行為をK個すべてに対して行うものだと思いますが、そうすると(時系列の場合)テストデータに対してまだ存在していないはずのデータを使ってモデル構築するパターンがでてきてしまうため、そもそもこの手法自体が使えないんじゃないかなと思うのですが、そのあたりってどう考えたらいいのでしょうか??

anger
ご質問ありがとうございます。
基本的には、時系列データでも普通のデータと同じようにクロスバリデーションをします。おっしゃる通り、クロスバリデーションの中では時間の概念はありません。ただ、問題なくハイパーパラメータの設定はできます。
クロスバリデーションはハイパーパラメータの最適化と割り切って用いて、ハイパーパラメータを決めた後に、トレーニングデータより後の時間のテストデータで予測性能を検証する、といった考え方がよいと思います。

View more

11の見える化・可視化手法を一気に実行して結果を比較する!で以下のエラーコードにはどのように対処したらよいでしょうか。これは匿名でお願いします。 ValueError: Error in determining null-space with ARPACK. Error message: 'Factor is exactly singular'. Note that method='arpack' can fail when the weight matrix is singular or otherwise ill-behaved. method='dense' is recommend

TS
ご質問いただきありがとうございます。
このたびはご不便をおかけ致しまして申し訳ございません。
85, 92, 99行目をそれぞれ
Score_LLE = manifold.LocallyLinearEmbedding(n_neighbors=n_neighbors_LLE, n_components=2,eigen_solver="dense").fit_transform(X)
Score_MLLE = manifold.LocallyLinearEmbedding(n_neighbors=n_neighbors_MLLE, n_components=2, method='modified', modified_tol=modified_tol_MLLE,eigen_solver="dense").fit_transform(X)
Score_HLLE = manifold.LocallyLinearEmbedding(n_neighbors=n_neighbors_HLLE, n_components=2, method='hessian', modified_tol=modified_tol_HLLE,eigen_solver="dense").fit_transform(X)
に変更するとよいかと存じます。
よろしくお願い致します。

View more

お世話になります。SVMを用いて、正規乱数の2乗で作成した5つの変数Xの和を目的変数として、サンプル数を変化させました。サンプル数を変化させてシミュレーションしましたが、サンプル数が20未満では次のエラーが出てシミュレーション停止となる場合がありました。Error in predict.svm(ret, xhold, decision.values = TRUE) : Model is empty!以上です。よろしくお願い致します。

nagakura katsuhiko
再度のご連絡ありがとうございます。
エラーを拝見致しましたところ、SVRモデルが構築されていないようです。
28行目の
TunedSVR = ...
の手前で、X や Y を確認して、変な値が入っていないかや値が同じ変数がないかなど確認されるとよいと思います。
ちなみに、こちらではサンプル数 20未満でも問題なくSVRのモデル構築ができております。
よろしくお願い致します。

View more

コピペだけで実用的かつ実践的なSVM (MATLAB・R・Python)を購入した者です。サンプル数を変化させた計算を行いましたが、サンプル数が20よりも少なくなるとエラーが出て計算でSきません。説明変数は5です。一般に、SVRの使用範囲をご教示頂けると助かります。

nagakura katsuhiko
このたびはご購入いただき感謝申し上げます。
ご不便をおかけ致しまして申し訳ございません。
エラーの原因を特定するため、エラーメッセージを教えていただけないでしょうか?
お手数おかけ致しまして申し訳ございません。
よろしくお願い致します。

View more

お手数ですが、leave one out においてNLSVRResltGS.grid_scores_の返り値の確認を頂けませんでしょうか。全てのハイパラメーターの組み合わせに対してデータの予測値が0になっています。よろしくお願いいたします。

H.A
再度のご指摘をいただき感謝申し上げます。
こちらでも同じ状況になることを確認致しました。
該当する箇所を
NLSVRResltGS = GridSearchCV(svm.SVR(kernel='rbf', gamma=OptimalNLSVRGamma), TunedParameters, cv=FoldNumber, scoring='neg_mean_squared_error' )
に変更していただけないでしょうか?
他にも GridSearchCV が使われているところで、
scoring='neg_mean_squared_error'
を追加すると leave one out でも正常に動作致します。
お手数をおかけ致しまして申し訳ございませんがよろしくお願い致します。

View more

以前、12の変数選択手法、10の回帰分析手法についてleave one outの実装をお願いしたものです。10の回帰分析手法において、13dataでleave one out(FoldNumber = 13)を行うと、NLSVRのハイパラメーターの最適値が最も精度が高いものになりません。grid_scores_で値を見てみると、予測値が全て0になっている事が恐らく原因だと考えられます。恐らくGridSearchCVを用いている他の手法も同様のトラブルが発生していると考えられます。お手数ですが、どのようにスクリプトを変更すれば良いのかご教授頂けませんでしょうか。

H.A
ご質問いただきありがとうございます。
ご不便をおかけ致しまして申し訳ございません。
ご質問の中に、
> NLSVRのハイパラメーターの最適値が最も精度が高いものになりません。
とございましたが、ここでおっしゃっている "精度が高い" とは具体的に何のことをおっしゃっているのでしょうか?
ちなみに、NLSVRのGridSearchCVではクロスバリデーション (質問された方の状況ですと leave one out クロスバリデーション) 後の r2 が最大になるようにハイパーパラメータを選んでいます。
よろしくお願い致します。

View more

回帰分析について質問です。 以前PLSのスクリプトを購入したのですが、PLS以外にも多重共線性に強い手法としてリッジがあることを知りました。 PLSとリッジの特徴の違い等を教えて頂けたら幸いです。 宜しくお願い致します。

analyzer
ご質問ありがとうございます。
PLSとリッジ回帰の違いについてはこちらに書きました。
http://univprof.com/archives/16-06-08-3768097.html
ご参照ください。

View more

いつも大学教授様のHPを参考にデータ解析の勉強をさせて頂いております。 そこで質問なのですが、どんな手法でも前処理としてオートスケーリングはするものなのでしょうか? そろそろ自分の力で実装してみようと考えております。混合分布モデルに興味を持って実践しようとしているのですが、これにも前処理としてオートスケーリングが必要なのか考えている次第です。 ご回答宜しくお願い致します。

analyzer
ご質問ありがとうございます。
はい、基本的にどんな手法でも前処理としてオートスケーリング(標準化)をするものです。混合分布モデルのときも例外ではありません。
実装頑張ってください。

View more

いつも大学教授様のHPを参考に勉強させて頂いております。 PLSのコードについての質問なのですが、オートスケーリングとは正規化とは異なる作業なのでしょうか? また異なるとすると、どこが違うのか教えて頂ければ幸いです。宜しくお願い致します。

analyzer
ご質問いただきありがとうございます。
オートスケーリングは正規化と同じです。ある変数において、その変数の平均値で引き、その後に変数の標準偏差で割る、という操作です。
よろしくお願い致します。

View more

初めまして、データ解析初心者です。クロスバリデーションについて質問があります。 クロスバリデーションには、LOOCV、k分割、ブートストラップ等いろいろありますが どのクロスバリデーションを使えばもっともよくモデルの性能を評価できますか? モデルの性能評価に、どの方法を使えば良いかわからず困っております。 それとも単純に、サンプルの数から計算コストを考えてどの方法を使うか決めるのでしょうか。お手数ですがご回答いただけるとうれしいです。どうぞ宜しくお願い致します。

こむぎこ
ご質問いただきありがとうございます。
"モデルの性能" として何を評価するのかによりますが、たとえば、PLSの成分数などのハイパーパラメータを決めるためのモデルの評価をするときには、5-fold クロスバリデーションを使えばまず問題ありません。
あと、LOOCVでは特にサンプル数が多いときにクロスバリデーションの効果が出ないため使わないほうが望ましいです。

View more

先ほど質問をしたものです。leave one outをご対応いただきありがとうございました。 Python用 コピペだけで12の変数選択手法を一気に実行して結果を比較する!に関しましても、 leave one out が実行出来ません。DCVは実行しないようスクリプト全体をコメントアウトしているのですが、 同様のエラーが出てしまいます。お手数をおかけいたしますが、ご教授の程よろしくお願いいたします。

H.A
このたびは再度のエラーのご報告をいただき感謝申し上げます。
たびたびご迷惑をおかけ致しまして申し訳ございません。今回のエラーに関しましても対応させていただきました。
恐れ入りますが、ダウンロード用のURLから、もう一度ダウンロードしてご利用いただけないでしょうか。
パスワードは以前と同じでございます。
お手数おかけ致しまして申し訳ございませんが、どうぞよろしくお願い致します。

View more

Python用 10の回帰分析手法を一気に実行して結果を比較する!を購入・使用させて頂いております。leave one outを行いたいのですが、165行目(改行等で変わっているかもしれません)で下記エラーが出ます。 ValueError: Cannot have number of splits n_splits=13 greater than the number of samples: 12. データ数は13、FoldNumber は13、DCVはしないに設定してあります。お手数ですがご教授の程、よろしくお願いいたします。

H.A
このたびは本プログラムをご購入いただきご利用いただき感謝申し上げます。
またエラーのご指摘ありがとうございました。
今回のエラーに関して対応させていただきました。
恐れ入りますが、ダウンロード用のURLから、もう一度ダウンロードしてご利用いただけないでしょうか。
パスワードは以前と同じでございます。
お手数おかけ致しまして申し訳ございませんが、どうぞよろしくお願い致します。

View more

はじめまして。データ分析を初めたばかりの者です。 回帰分析について質問です。目的変数が複数の場合は行うことが出来ないのでしょうか? もし、可能であるならばどういった手法が考えられますか? ご回答の程、宜しくお願い致します。

analyzer
ご質問ありがとうございます。
PLS https://note.mu/univprof/n/n01151b7e122b の仲間の中には、PLS2という目的変数が複数に対応した回帰分析手法があります。
ただ、各目的変数の推定精度を高めるためには、PLS2を使うのではなく、目的変数ごとに回帰モデルを構築したほうが良いです。
よろしくお願い致します。

View more

+1 answer Read more

なるほど、ありがとうございます。カウントデータが0の多い分布(平均<分散)であっても同様で問題なさそうでしょうか。

Takamichi Yanai
ご質問ありがとうございます。
変換自体は問題ございません。カウントの大小を説明できる変数が説明変数内にあると良好な結果になると思います。
よろしくお願い致します。

View more

ありがとうございます。カウントデータで0と1の間に収まるように変換するというのは、単純に最大値で割るような変換をすればいいのか、それとも歪度を調整するbox-cox変換のような処理をするのでしょうか。その場合でも0と1の間に収めるのが難しいですが・・・

Takamichi Yanai
再度のご質問ありがとうございます。
分かりにくくて申し訳ございません。正確に申し上げると、確率で表現することになります。カウントデータとのことですので、今は頻度で表されていると思います。それを確率に変換するわけです。変換の仕方はデータセットによるのでなんとも言えませんが、最大値で割るのも一つの方法と思います。
よろしくお願い申し上げます。

View more

「コピペだけで15の変数選択手法を一気に実行して結果を比較する! (R言語)」を購入しました。ソースを見ると連続量に対する手法が中心だったのですが、2クラス分類やカウントデータの回帰のための変数を選択できるよう、何か工夫できないでしょうか。ロジットモデルや負の2項回帰で適用したいと考えております。

Takamichi Yanai
ご質問ありがとうございます。
またこのたびはプログラムをご購入いただき感謝致します。
2クラス分類やカウントデータで利用したいとのこと、まず2クラス分類では、2つのクラスを 0 と 1 で表現することで、今回のプログラムにより変数選択することが可能です。
次にカウントデータのとき、まずは値の範囲が 0 から 1 になるように変数変換してからロジット変換したものを目的変数にすることで、今回のプログラムで変数選択できます。
よろしくお願い致します。

View more

RもSVMも初心者です。説明変数が21個、サンプル数が36個の非線形解析を、i番目のデータを抜いてベストチューンのサポートベクタ回帰を行い、良好な結果を得ました。次に、同様な1行抜きの中で変数選択を行うSVMのプログラムを考えているのですが、荷が重すぎます。どのプログラムを購入したらよいのでしょうか?あるいは在庫していないのでしょうか?よろしくお願いします。namakuran

nagakura katsuhiko
ご質問ありがとうございます。SVM で leave-one-out cross-validation の精度が良くなるように変数選択するプログラムは、「在庫がしていない」のが現状でございます。申し訳ございません。SVMは計算時間がかかりますので、今回の36個のようにサンプル数が少なければ良いのですが、サンプル数が多くなると繰り返しSVMを行いながら変数選択すると時間がとてもかかってしまいます。
ただ、非線形性を考慮した変数選択であれば、下のRough Set Theory(RST)による変数選択か、
https://spike.cc/shop/univprof/products/DXDyag01
下のランダムフォレスト(Random Forests, RF)で変数の重要度を見るのがよいと思います。
https://spike.cc/shop/univprof/products/G84jxvJb
よろしくお願い申し上げます。

View more

回答ありがとうございます。重ねて質問させていただきたいのですが、テストデータ(data_prediction2.csv)には答えとなるラベルがないのですが、どのように3つ目の混同行列(・モデル検証用サンプル (テストデータ) の推定結果における混同行列)を導出しているのでしょうか。よろしくお願いします。

naoyayamaguchi
ご質問ありがとうございます。説明不足で申し訳ございませんでした。3つ目の混同行列は、data_prediction1.csv で計算されたものです。こちらには答えのラベルがあります。
よろしくお願い致します。

View more

初めまして。「コピペだけで実用的かつ実践的な多クラス分類用サポートベクターマシン (Support Vector Machine, SVM) (MATLAB言語)」を購入させていただいたものですが、結果として出力される3つの混合行列の違いについて教えていただけますでしょうか。 また、one vs one法を用いているようなので、各クラスの再現率、適合率、F値をだして評価できるのではと思うのですが可能なのでしょうか。よろしくお願いします。 (先ほど一度同じ質問を送ってしまっているかもしれません。もし重複して送ってしまっていたら申し訳ありません。よろしくお願いします)

naoyayamaguchi
ご質問いただきありがとうございます。
また多クラス分類用SVMのプログラムをご購入いただき感謝致します。
3つの混合行列について、順番に
・SVMモデルを構築したサンプル (トレーニングデータ) の推定結果における混同行列
・クロスバリデーションの推定結果での混同行列
・モデル検証用サンプル (テストデータ) の推定結果における混同行列
です。
またモデル性能の指標について、手動もしくは別途コードを書いていただくことになりますが、テストデータの推定結果は "PredictedY2.csv" に格納されていますので、こちらから計算していただくことが可能です。
よろしくお願い致します。

View more

初めまして。機械学習やプログラミングの勉強を初めたばかりの者です。 大学教授様の多クラス分類SVMのpython版コードを購入して実行したのですが、ImportError: No module named supporting functionsという表示のエラーが出ます。 解決方法を教えて頂けたら幸甚に存じます。

ご質問いただきありがとうございます。
エラーについてご不便おかけ致しまして申し訳ございません。
下のURLからzipファイルをダウンロードしていただき、解凍したものをSVMのコードと同じフォルダ(ディレクトリ)に置いていただけないでしょうか。
http://univprofblog.html.xdomain.jp/code/supportingfunctions.zip
お手数おかけ致しまして恐縮ですがよろしくお願い致します。

View more

将来データ分析周りのことをしたいので 大学もその辺りにいこうと思うのですがどのようなところが良いでしょうか? 九州大学や東工大の経営工学辺りでしょうか?

ご質問ありがとうございます。
大学でデータ分析を行いたいとのこと、純粋にデータ解析手法・統計・機械学習について突き詰めたいのであれば、情報系の学科で、面白そうな研究室があるとことがよいと思います。
ただ、データ分析を使って応用したい分野 (医療・バイオ・化学・経済・・・) があれば、その分野でデータ分析を行っている研究室のある大学に行くのがよいと思います。

View more

初めまして.「大学教授」さんのHPからコードを購入し学習させていただこうと考えている学生です.質問が二つあります. 一つ目です. コード購入の際,ライセンス条件が見当たらなかったのですが,コードの改変は許されているのでしょうか. 二つ目です. GTM(generative topographic mapping)の基底関数のグリッドの決定の際は,すべてを等間隔に置かなくてもよいでしょうか.私の扱いたい解析したいデータセットは,グリッドが一部等間隔ではない方がうまくいくのではないかと考えています. よろしくお願いいたします.

TAKAMUKU TAKAHIRO
ご質問およびコード購入のご検討ありがとうございます。
質問に回答させていただきます。
一つ目につきまして、コードは改変していただいて問題ございません。
二つ目につきまして、今回のGTMでは基底関数のグリッドは等間隔に置く必要がございます。申し訳ございませんがよろしくお願い致します。

View more

必要最低限のサンプル数の見積もりに関してです。それには検出力・エフェクトサイズ・有意水準などが必要、とよく言われますが、ある標本のある目的変数を複数の特徴量を使用した予測モデルを作る際、その結果(感度、特異度、その他)がまだ見ぬ母集団にとっても妥当である、と言える為のサンプル数はどのように決められるべきなのでしょうか。また、この場合他にも、専門家が正解付けできる最大標本数や過適応しない最低限の標本数なども考慮しなければならないと思われます。いかがでしょうか。

ご質問いただき感謝致します。
おっしゃるような回帰モデル・クラス分類モデルにおけるサンプル数の問題はとても重要な問題です。問題を難しくさせているのは、扱うデータセットによって目的変数と特徴量との関係は異なり、それによって必要なサンプル数も異なることです。
また回帰モデル・クラス分類モデルを用いるときに重要なことは、モデルの適用領域・適用範囲 http://univprof.com/archives/16-05-30-3588574.html を考えなければならないことです。モデルを作るときにどれだけサンプル数があっても、目的変数の値を予測したいサンプルが、適用領域の外でしたら推定誤差が大きくなってしまいます。
そこで妥当なサンプル数を決める、という考え方から、サンプル数によってモデルの適用領域が異なる、と転換します。サンプル数が少ないときでもモデルは作れますが、そのモデルの適用領域は狭く、得られた推定値のばらつきは大きくなり、サンプル数が多くなるとそれだけ適用領域は広がり、推定値のばらつきも抑えられる、ということです。
そして、モデルの適用領域や推定値のばらつきを、与えられたデータセットから求める、ということになります。

View more

Next