タグ付けされた質問 「predictive-models」

予測モデルは、特定の仮説をテストしたり、現象を機構的に説明したりするモデルとは対照的に、システムの他の観測を最適に予測することを主な目的とする統計モデルです。そのため、予測モデルでは、解釈可能性は重視されず、パフォーマンスが重視されます。

1
Stepwise AIC-このトピックをめぐる論争は存在しますか?
このサイトで、p値ベース、AIC、BICなど、あらゆる種類の基準を使用した変数の段階的な選択の使用に信じられないほど多くの投稿を読みました。 これらの手順が一般に、変数の選択に非常に悪い理由を理解しています。ここでの gungのおそらく有名な投稿は、その理由を明確に示しています。最終的には、仮説を立てるのに使用したのと同じデータセットで仮説を検証しています。これは単なるデータのedです。さらに、p値は共線性や外れ値などの量の影響を受け、結果が大きく歪むなど。 しかし、私は最近かなり時系列の予測を研究しており、特にARIMAモデルの最適な順序を見つけるための段階的選択の使用について彼がここで言及している Hyndmanの評判の高い教科書に出会いました。実際、forecastR のパッケージでは、auto.arimaデフォルトで知られているよく知られているアルゴリズムは、(p値ではなくAICを使用して)ステップワイズ選択を使用します。彼はまた、このウェブサイト上の複数の投稿とうまく調和するp値ベースの機能選択を批判しています。 最終的に、目標が予測/予測の優れたモデルを開発することである場合、最後に何らかの方法で常に相互検証する必要があります。ただし、p値以外の評価指標の手順自体に関しては、これは多少不一致です。 この文脈での段階的なAICの使用について、しかしこの文脈からも一般的には誰も意見がありますか?私は、段階的な選択はどれも貧弱だと信じていると教えられてきましたが、正直なところ、auto.arima(stepwise = TRUE)サンプル結果からより良い結果を得ていますauto.arima(stepwise = FALSE)が、これは単なる偶然かもしれません。

1
堅牢な方法は本当に優れていますか?
私は2つのグループの被験者AとBを持ち、それぞれ約400のサイズと約300の予測変数を持っています。私の目標は、バイナリ応答変数の予測モデルを構築することです。私の顧客は、AからBに構築されたモデルを適用した結果を見たいと思っています(彼の本、「回帰モデリング戦略」で、@ FrankHarrellは、2つのデータセットを組み合わせて、パワーと精度--- 90ページ、外部検証を参照してください。私が持っているデータの種類を収集するのは非常に費用と時間がかかることを考えると、私は彼に同意する傾向があります。 。)私の予測子の多くは、非常に相関があり、非常に歪んでいます。ロジスティック回帰を使用して、予測モデルを構築しています。 私の予測子は主に力学から来ています。たとえば、対象がおよびさまざまな値に対して期間しきい値よりも高いストレス下にあった合計時間。それらの定義から、これらの合計時間の多くが互いに代数的に関連していることは明らかです。代数的に関連していない予測因子の多くは、それらの性質のために関連している:期間中に高応力下にある科目期間中に高応力下になる傾向がありも、αα\alpha[t1,t2][t1,t2][t_1, t_2]α&gt;0α&gt;0\alpha > 00≤t1&lt;t20≤t1&lt;t20 \leq t_1 < t_2[t1,t2][t1,t2][t_1, t_2][t3,t4][t3,t4][t_3,t_4][t1,t2]∩[t3,t4]=∅[t1,t2]∩[t3,t4]=∅[t_1,t_2] \cap [t_3,t_4] = \emptyset。データの次元を削減するために、関連する予測変数をクラスター化し(たとえば、すべての合計ストレス時間を一緒に)、主成分分析を使用して各クラスターを表しました。変数が歪んでいるため、2つの代替パスを試しました。 PCAを実行する前に、変数のスキューを減らすために対数変換を使用しました。 Rのパッケージrrcov(PcaHubert)で実装されているMia HubertのROBPCAアルゴリズムを使用して、堅牢な主成分を見つけました。 ROC曲線の全体形状、精密リコール曲線の形状、およびROC曲線下面積(AUC)をパフォーマンス測定として使用していますが、データセットAとBの両方で同様の結果を取得したいです。堅牢な主成分を使用することでより良い結果が得られると期待していましたが、驚いたことに、最初の方法の方が優れていました。曲線。 これの説明は何ですか?そして、データを通常のように見せようとする代わりに、堅牢な主成分をどのように使用できますか?ROBPCAの代わりに推奨する特定の堅牢なPCAメソッドはありますか?

2
解約を予測するための生存モデル-時変予測子?
解約を予測するための予測モデルを構築し、個人期間トレーニングデータセットに適合した離散時間サバイバルモデルを使用することを検討しています(各顧客およびリスクのある離散期間ごとに1行、イベントのインジケーター-1に等しい)その期間に解約が発生した場合、そうでない場合は0)。 SingerとWilletの手法を使用して、通常のロジスティック回帰を使用してモデルを近似しています。 顧客の解約は、1か月のどこでも発生する可能性がありますが、それは私たちがそれを知っているのは月末(つまり、彼らが去ったその月のいつか)だけです。24か月がトレーニングに使用されています。 使用されている時間変数は、サンプルの起点時間です-2008年3月31日の時点でアクティブなすべての顧客-2009年1月の時点ですべてt = 0を受け取ります(これを行う古典的な方法ではありませんが、予測モデルと従来の統計モデル)。使用される共変量は、その時点での顧客の在職期間です。 構築された一連の共変量があります。データセットの行全体で変化しないもの(特定の顧客)と変化するものがあります。 これらの時変共変量が問題であり、解約予測の生存モデルに疑問を投げかけているのは(現在のスナップショットデータに基づいて今後xか月の解約を予測する通常の分類子と比較して)。時不変のものは、前月のアクティビティを表し、重要なトリガーになると予想されます。 この予測モデルの実装は、少なくとも私の現在の考え方に基づいて、毎月末に顧客ベースをスコアリングし、来月中に解約の確率/リスクを計算することです。その後、次の1、2または3か月間。その後、次の1,2,3,4,5,6か月間。3か月および6か月の解約率については、推定生存曲線を使用します。 問題: スコアリングについて考える場合、時変予測変数をどのように組み込むことができますか?私は時不変の予測子でしかスコア付けできないか、または時不変の予測子を含めることができるようです。それらを時不変にする必要があります。値を「今」に設定します。 生存モデルのこの使用に関する経験や考えはありますか? @JVMコメントに基づく更新: 問題は、モデルの推定、係数の解釈、トレーニングデータを使用した興味深い共変量値のハザード/生存プロットのプロットなどにはありません。問題は、特定の顧客のリスクを予測するためにモデルを使用することです。今月の終わりに、私はまだこのモデルでアクティブな顧客であるすべての人を獲得したいと考えています。このリスクをx期間のうちに予測します(来月の終わりに口座を閉鎖するリスク。今から2か月の終わりに口座を閉鎖するリスクなど)。時変共変量がある場合、それらの値は将来の期間で不明であるため、モデルの利用方法は? 最終更新: 個人期間のデータセットには、各個人およびリスクのある各期間のエントリがあります。Jの期間があるとしましょう(24か月でJ = 1 ... 24の場合)離散時間生存モデルを構築します。簡単にするために、時間Tを線形として扱い、Xが時間である2つの共変量XとZがあるとします-不変、つまり、i番目の人のすべての期間で一定であり、Zは時間的に変化する、つまりi番目の人の各レコードが異なる値を取ることができることを意味します。たとえば、Xは顧客の性別であり、Zは前月の企業にとってどれだけの価値があるかを示します。j番目の期間におけるi番目の人のハザードのロジットのモデルは次のとおりです。 logit(h(tij))=α0+α1Tj+β1Xi+β2Zijlogit(h(tij))=α0+α1Tj+β1Xi+β2Zijlogit(h(t_{ij}))=\alpha_{0}+\alpha_{1}T_{j}+\beta_{1}X_{i}+\beta_{2}Z_{ij} したがって、問題は、時変共変量を使用し、新しいデータで(まだ見えない未来に)予測する場合、は不明です。ZjZjZ_{j} 私が考えることができる唯一の解決策は次のとおりです。 Zのような時変共変量を使用しないでください。たとえば、Zの減少を見ると、顧客が離脱し、おそらく出発する準備ができていることがわかりますので、これはモデルを大幅に弱め、撹拌のイベントを予測します。 時変共変量を使用しますが、(Zが上にあるように)それらを遅らせることで、変数に遅れが生じている期間を予測できます(ここでも、新しい現在のデータをスコアリングするモデルを考えます)。 時変共変量を使用しますが、予測では定数として保持します(したがって、モデルはさまざまなデータに適合しましたが、予測のためにそれらを一定のままにして、後で実際に観察された場合、これらの値の変化が撹拌のリスクにどのように影響するかをシミュレートします。 時変共変量を使用しますが、既知のデータからの予測に基づいて将来の値を補完します。たとえば、各顧客のを予測します。ZjZjZ_{j}

4
ジョージ・ボックス、ガリット・シュムエリと科学的方法について?
(この質問はPhilosophy SEにより適しているように思われるかもしれません。統計学者がBoxとShmueliの発言についての私の誤解を明確にすることを望んでいます。したがって、ここに投稿します)。 (ARIMAの名声の)ジョージボックスは次のように述べています。 「すべてのモデルは間違っていますが、一部は有用です。」 Galit Shmueliは有名な論文「説明するか予測する」で次のように主張しています(そして彼女に同意する他の人を引用しています)。 説明と予測は同じではなく、一部のモデルは予測が上手ではありませんが、上手く説明できます。 原則に対するこれらは何らかの形で矛盾していると感じます。 モデルがうまく予測できない場合、それは有用ですか? さらに重要なことは、モデルが十分に説明している場合(ただし、必ずしも十分に予測できるとは限らない場合)、何らかの方法で真でなければなりません(つまり、間違っていない)。それでは、Boxの「すべてのモデルが間違っている」とどのようにメッシュするのでしょうか。 最後に、モデルがうまく説明しているが、うまく予測できない場合、それはどのように科学的ですか?ほとんどの科学的境界基準(検証主義、改ざん主義など)は、科学的記述に予測力が必要であること、または口語的であることを意味します。将来の結果を予測する必要があります。 私の質問: Boxの声明とShmueliのアイデアは本当に矛盾していますか、それとも何かが欠けていますか。たとえば、予測力のないモデルはまだ有用でしょうか。 ボックスとShmueliの文がある場合ではない矛盾し、それはモデルが間違っているために何を意味するのでしょうし、うまく予測できないが、それでも説明力を持っていますか?別の言い方をすれば、正確さと予測能力の両方を奪うと、モデルには何が残りますか? モデルに説明力があるが予測力がない場合、どのような実証的検証が可能ですか?Shmueliは、説明にAICを使用し、予測にBICを使用するなどのことを言及していますが、それが問題をどのように解決するかわかりません。予測モデルでは、AIC、またはBIC、またはR2R2R^2またはL1L1L1正則化などを使用できますが、最終的にはサンプルテストと実稼働環境でのパフォーマンスがモデルの品質を決定します。しかし、うまく説明できるモデルについては、どのような損失関数がモデルを本当に評価できるのかわかりません。科学哲学には、過少決定の概念がありますこれはここで適切と思われます:与えられたデータセットについて、データに適合するようにいつでも何らかの分布(または分布の混合)と損失関数LLLを賢明に選択できます(したがって、それを説明すると主張できます)。また、閾値は、そのLLLモデルが適切にデータを任意で説明することを主張する人のための下でなければならない(種類p値などから、なぜそれはp&lt;0.05p&lt;0.05p < 0.05としないp&lt;0.1p&lt;0.1p < 0.1又はp&lt;0.01p&lt;0.01p < 0.01?)。 上記に基づいて、どのように説明するモデルを客観的に検証できますか?

6
最速のSVM実装
一般的な質問の詳細。予測モデリングのためにrbf SVMを実行しています。私の現在のプログラムには間違いなく少しスピードアップが必要だと思います。私はscikitを使用して、粗いグリッドから細かいグリッドの検索とクロス検証を行います。 各SVMの実行には約1分かかりますが、すべての反復を行っても、まだ遅いと感じています。最終的に複数のコアでクロス検証部分をマルチスレッドすると仮定すると、プログラムを高速化するための推奨事項はありますか?SVMのより高速な実装はありますか?GPU SVMについて聞いたことがありますが、あまり掘り下げていません。ユーザーは誰ですか?それは速いですか?


5
回帰モデルを改善するために平均絶対誤差の箱ひげ図に基づいて外れ値を削除するのはごまかしですか
下の箱ひげ図に示すように、4つの方法でテストされた予測モデルがあります。モデルが予測する属性の範囲は0〜8です。 すべてのメソッドで、1つの上限外れ値と3つの下限外れ値が示されていることに気付くかもしれません。これらのインスタンスをデータから削除することが適切かどうか疑問に思いますか?または、これは予測モデルを改善するための一種の不正行為ですか?

2
Cox比例ハザードモデルで相互検証を行う方法
1つのデータセット(モデル構築データセット)で特定の疾患の発生に関する予測モデルを構築し、新しいデータセット(検証データセット)でモデルがどのように機能するかを確認したいとします。ロジスティック回帰で構築されたモデルの場合、モデル構築データセットから取得したモデル係数に基づいて検証データセット内の各人の予測確率を計算し、カットオフ値でそれらの確率を二分した後、2x2テーブルを構築できますこれにより、真の陽性率(感度)と真の陰性率(特異性)を計算できます。さらに、カットオフを変更してROC曲線全体を作成し、ROCグラフのAUCを取得できます。 ここで、実際に生存データがあると仮定します。そのため、モデル作成データセットでCox比例ハザードモデルを使用し、検証データセットでモデルがどのように機能するかを確認したいと思います。ベースラインリスクはCoxモデルのパラメトリック関数ではないため、モデル構築データセットで取得したモデル係数に基づいて検証データセットの各人の予測生存確率を取得する方法はわかりません。それでは、検証データセットでモデルがどのように機能するかを確認するにはどうすればよいですか?これを行うための確立された方法はありますか?はいの場合、それらはソフトウェアに実装されていますか?提案を事前に感謝します!

1
説明モデリングのバイアスを最小化する理由 (ガリット・シュムエリの「説明するか予測する」)
この質問はGalit Shmueliの論文「説明するか予測する」を参照しています。 具体的には、セクション1.5「説明と予測は異なる」で、シュムエリ教授は次のように書いています。 説明モデリングでは、基礎となる理論の最も正確な表現を得るために、バイアスを最小化することに重点が置かれます。 これは私が論文を読むたびに私を困惑させました。どのような意味で、推定値のバイアスを最小化すると、基礎となる理論の最も正確な表現が得られますか? 私はまた、教授Shmueliの話見て、ここで、JMPディスカバリー・サミット2017で配信、そして彼女は述べています: ...収縮モデル、アンサンブルのようなもの、あなたはそれらを見ることはありません。これらのモデルは、設計上、全体的なバイアス/分散を減らすためにバイアスを導入するためです。それが彼らがそこにいない理由であり、それをすることは理論的に意味をなさない。モデルを意図的に偏らせるのはなぜですか? これは本当に私の質問に光を当てるものではなく、単に私が理解していないという主張を言い直しているだけです。 理論に多くのパラメータがあり、それらを推定するためのデータが少ない場合、推定誤差は分散によって支配されます。この状況で、リッジ回帰のようなバイアスのある推定手順を使用するのが不適切なのはなぜですか(結果として、より低い分散のバイアスのある推定になります)?

2
時系列のこの予測が「かなり悪い」のはなぜですか?
ニューラルネットワークの使用方法を学習しようとしています。私はこのチュートリアルを読んでいました。 値を用いて、時系列にニューラルネットワークを適合した後にでの値を予測するために著者は青い線は、時系列であり、以下のプロットを取得し、緑色列データに予測され、赤色でありますテストデータの予測(テストトレイン分割を使用)tttt + 1t+1t+1 「トレーニングデータセットとテストデータセットの両方を適合させるという、モデルの仕事がかなり貧弱だったことがわかります。基本的に、出力と同じ入力値を予測しました。」 次に、著者は、およびを使用して値を予測することにしました。そうすることで取得tttt − 1t−1t-1t − 2t−2t-2t +1t+1t+1 「グラフを見ると、予測にさらに構造が見られる」と言います。 私の質問 最初の「貧しい」のはなぜですか?私にはほとんど完璧に見えますが、すべての単一の変化を完全に予測します! 同様に、なぜ2番目の方が優れているのでしょうか?「構造」はどこにありますか?私にとっては、最初のものよりもずっと貧しいようです。 一般に、時系列の予測はいつ良いのか、いつ悪いのか?

4
予測モデル:統計はおそらく機械学習に勝るものはありませんか?[閉まっている]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 2年前に閉店。 私は現在、統計学/計量経済学に焦点を当てたマスタープログラムをフォローしています。私のマスターでは、すべての学生が3か月の研究をしなければなりませんでした。先週、すべてのグループは研究を他のマスター学生に提示しなければなりませんでした。 ほとんどすべてのグループが、研究トピックの統計モデリングと機械学習モデリングを行い、サンプル外れの予測が行われるたびに、単純な機械学習モデルが、最後の3年間非常に懸命に取り組んだ非常に洗練された統計モデルを打ち負かしましたヶ月。みんなの統計モデルがどれほど優れていても、単純なランダムフォレストでは、ほとんど常にサンプル外エラーが少なくなりました。 これが一般に受け入れられている観測かどうか疑問に思っていましたか?サンプル外予測に関しては、単純なランダムフォレストまたは極端な勾配ブースティングモデルに勝つ方法はないということです。これらの2つの方法は、Rパッケージを使用して実装するのが非常に簡単ですが、誰もが思いついたすべての統計モデルには、かなりのスキル、知識、および見積もりの​​労力が必要です。 これについてどう思いますか?あなたが解釈を得る統計/計量経済学モデルの唯一の利点はありますか?または、単純なランダムフォレストの予測を大幅に上回るパフォーマンスを達成できなかったほど、モデルが不十分でしたか?この問題に対処する論文はありますか?

4
ランダムフォレスト手法を線形回帰に適用できますか?
ランダムフォレストは、元のトレーニングデータのブートストラップサンプル(入力変数と観測値の両方のサンプル)を使用して各ツリーが作成される決定ツリーのアンサンブルを作成することにより機能します。 同様のプロセスを線形回帰に適用できますか?k個の回帰ごとにランダムブートストラップサンプルを使用してk個の線形回帰モデルを作成する モデルのような「ランダム回帰」を作成しない理由は何ですか? ありがとう。基本的に誤解していることがあれば教えてください。

2
分位モデリングのモデルパフォーマンス
私は分位点回帰を使用しています(たとえば、R を介して、gbmまたはquantregRで)-中央値ではなく、上位の分位点(たとえば75番目)に焦点を当てています。予測モデリングの背景から、モデルがテストセットにどの程度適合するかを測定し、これをビジネスユーザーに説明できるようにします。私の質問はどうですか?継続的なターゲットの典型的な設定では、次のことができます。 全体のRMSEを計算する データセットを予測値で十分位取りし、実際の平均値を各十分位数で予測された平均値と比較します。 等。 この場合、予測と比較する実際の値が実際にない(少なくとも考えていない)場合、何ができますか? コードの例を次に示します。 install.packages("quantreg") library(quantreg) install.packages("gbm") library(gbm) data("barro") trainIndx&lt;-sample(1:nrow(barro),size=round(nrow(barro)*0.7),replace=FALSE) train&lt;-barro[trainIndx,] valid&lt;-barro[-trainIndx,] modGBM&lt;-gbm(y.net~., # formula data=train, # dataset distribution=list(name="quantile",alpha=0.75), # see the help for other choices n.trees=5000, # number of trees shrinkage=0.005, # shrinkage or learning rate, # 0.001 to 0.1 usually work interaction.depth=5, # 1: additive …

1
予測パフォーマンスは、方法よりもデータアナリストの専門知識に依存していますか?
予測モデルのパフォーマンスは、メソッドの選択よりも、選択したメソッドを使用するデータアナリストの専門知識に依存しているという調査結果があるという噂があります。 言い換えれば、データ分析者が選択された方法に精通していることが、より理論的な観点から問題に対してどのように「適切」に見えるかよりも重要であるという主張です。 これはケモメトリックスのコンテキストで言及されており、通常、多くの変量(100から1000 s)、多重共線性、そしてもちろんサンプルが少なすぎるという問題を伴います。予測は分類または回帰である可能性があります。 私の個人的な経験は、これはもっともらしいことを示唆しているが、研究が言及された(私はそれを電子メールでそれを言及した人に素早くしかし失敗した検索の後に尋ねたが、何の答えも受け取らなかった)。しかし、より精巧な検索でも、論文を追跡することはできませんでした。 誰もそのような発見を知っていますか?そうでない場合、ここのBig Guysの個人的な経験は何を言いますか?

1
キャレットglmnetとcv.glmnet
glmnetwithin caretを使用して最適なラムダを検索cv.glmnetし、同じタスクを実行するために使用することの比較には、多くの混乱があるようです。 次のような多くの質問が提起されました。 分類モデルtrain.glmnet対cv.glmnet? キャレットでglmnetを使用する適切な方法は何ですか? 「キャレット」を使用して「glmnet」を相互検証する しかし、答えはありません。これは、質問の再現性による可能性があります。最初の質問に続いて、非常に似た例を挙げますが、同じ質問があります:推定されるラムダはなぜそんなに違うのですか? library(caret) library(glmnet) set.seed(849) training &lt;- twoClassSim(50, linearVars = 2) set.seed(849) testing &lt;- twoClassSim(500, linearVars = 2) trainX &lt;- training[, -ncol(training)] testX &lt;- testing[, -ncol(testing)] trainY &lt;- training$Class # Using glmnet to directly perform CV set.seed(849) cvob1=cv.glmnet(x=as.matrix(trainX),y=trainY,family="binomial",alpha=1, type.measure="auc", nfolds = 3,lambda = seq(0.001,0.1,by = …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.