問題タブ [gam]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1820 参照

r - R を使用したビン化された GAM 結果の二乗平均平方根偏差

バックグラウンド

PostgreSQL データベースは PL/R を使用して R 関数を呼び出します。スピアマンの相関を計算するための R 呼び出しは次のようになります。

また、R では、当てはめられた一般化加法モデル (GAM) の単純な計算:

xこれは 1900 年から 2009 年までの年を表し、その年のy平均測定値 (最低気温など) です。

問題

次の図に示すように、近似傾向線 (GAM を使用) はかなり正確です。

問題は、相関関係 (左下に表示) が、モデルがデータにどの程度適合しているかを正確に反映していないことです。

考えられる解決策

相関の精度を向上させる 1 つの方法は、ビニングされたデータに対して二乗平均平方根誤差 (RMSE) 計算を使用することです。

質問

Q.1. ビニングされたデータに RMSE 計算を実装して、R 言語で GAM の測定値への適合の相関関係 (0 と 1 の間) を取得するにはどうすればよいでしょうか?

Q.2. GAM のデータへの適合の精度を見つけるためのより良い方法はありますか? もしそうなら、それは何ですか (例えば、二乗平均平方根偏差)?

試行された解決策 1

  1. 観測量とモデル (GAM) 量を使用して PL/R 関数を呼び出します。/li>
  2. 次のように定義plr_corr_rmseします (ここでo、 とmは観測データとモデル化データを表します)。/li>

o - m間違っています。mean5 つのデータ ポイントごとにを計算して、両方のデータ セットをビンに入れたいと思います(最大で 110 のデータ ポイントがあります)。例えば:

次に、RMSE の計算を次のように修正します。

適切な数のビンで任意の長さのベクトルを計算するにはどうすればよいでしょうかc( mean(o[1:5]), mean(o[6:10]), ... )(たとえば、5 は 67 回の測定だけでは理想的ではない可能性があります)。

histここにはふさわしくないと思いますよね?

試みられた解決策 2

次のコードは問題を解決しますが、リストの最後からデータ ポイントを削除します (リストを 5 で割り切れるようにするため)。数字の「5」は魔法のようなものなので、この解決策は理想的ではありません。

他にどのようなオプションがありますか?

前もって感謝します。

0 投票する
1 に答える
440 参照

r - 正弦波ノイズから値を予測する

バックグラウンド

R を使用して系列の次の値を予測します。

問題

次のコードは、一定のノイズを含む曲線のモデルを生成してプロットします。

予想通り、このモデルは傾向を示しています。問題は、後続の値を予測することです。

プロットすると予測が正しく見えない:

予測値 (201 以降) が低すぎるようです。

質問

  1. 示されているように、予測値は実際に最も正確な予測ですか?
  2. そうでない場合、どのように精度を向上させることができますか?
  3. fitted.values( gam.object )2 つのデータセット (とp)を連結するより良い方法は何ですか?
0 投票する
1 に答える
2383 参照

r - gamm4 R パッケージで GAM-GEE を実行していますか?

生息地分布モデルを生成するために、生物の視覚的なトランセクト データを分析しようとしています。生物が観察されると、一定時間間隔でポイント データが収集されて追跡されます。これらの「フォロー」間の自己相関のために、私は Pirotta らのアプローチと同様の GAM-GEE アプローチを利用したいと考えています。2011 年、パッケージ「yags」および「splines」を使用 (http://www.int-res.com/abstracts/meps/v436/p257-272/)。彼らの R スクリプトはこちら (http://www.int-res.com/articles/suppl/m436p257_supp/m436p257_supp1-code.r) に示されています。私はこのコードを使用しましたが、成功は限られており、モデルが収束しないという複数の問題がありました。

以下は私のデータの構造です:

これが私のブロック変数の要約です(各ブロック内に自己相関が存在するグループの数を示します

ただし、Simon Wood 教授のパッケージと機能に精通しているため、パッケージ 'gamm4' を使用したいと思います。gamm4 が最も適切であると思われます。モデルにはバイナリ応答 (トランセクトに沿った生物の存在/不在) があることに注意することが重要です。gamm のヘルプでは、因子内の自己相関について次の例が提供されています。

この例に続いて、データセットに使用したコードは次のとおりです

ただし、出力 (summary(b$gam)) および特に summary(b$mer)) を調べると、結果の解釈方法がわからないか、グループ内の自己相関が考慮されているとは思えません。 .

「ブロック」変数の各一意の値内で自己相関が実際に考慮されていることを確認するにはどうすればよいですか? "summary(b$mer)" の出力を解釈する最も簡単な方法は何ですか?

結果は、「correlation=...」という用語なしで同じ変数とパラメーターを使用する通常の gam (パッケージ mgcv) とは異なり、何か異なることが起こっていることを示しています。

ただし、相関項 (季節) に別の変数を使用すると、同じ出力が得られます。

「ブロック」変数の各値内で相関が正しく許可されていることを確認したいだけです。ブロックの個々の値内に自己相関が存在する可能性があるが、ブロック間の独立性を仮定するとモデルを定式化するにはどうすればよいですか?

別のメモとして、大規模なモデル (変数が 2 より多い) のモデルが完成した後、次の警告メッセージも受け取ります。

0 投票する
1 に答える
1054 参照

r - RでのGAMモデルの使用について

現在、GAMモデルを使用して、シカゴの大気汚染と死亡率の関係についてWood(2006)が行った演習を複製しています。

それで、私は彼が彼の本で使用したコードに従いました。ライブラリは「gamair」と呼ばれ、データフレームは「chicago」です。

私はこれを置きます(本のように):

しかし、エラーが発生しました:

誰かが私にこれを説明できますか?

どうもありがとう。

0 投票する
1 に答える
1337 参照

r - GAM 適合での因子水準の低下

GAM モデルを使用して、特定の時点での環境条件に基づいて種の存在量を予測しています。これを行うための一般化加算モデル (GAM) を作成し、そこから予測を行いました。ただし、モデル方程式には 1 つのカテゴリ変数 (堆積物タイプ = [1,2,3,4]) があります。方程式は問題なく機能しているように見えますが、フィッティングの結果は因子レベル「1」を切片に吸収しているようです。下記参照。

このモデルで何が起こっているのか説明できる人はいますか? よくわかりません。これは、mgcv パッケージを使用して R で実行されました。ありがとう!

0 投票する
1 に答える
1332 参照

r - r の個々のガム プロット

一般化された加法的モデルを使用していくつかのデータを分析しましたが、結果をプロットしたいと考えています。

上記の例から、個々のプロットを異なる pdf ファイルに保存するにはどうすればよいでしょうか?

0 投票する
1 に答える
704 参照

r - rでgamモデルの正しい値をプロットする

次の例があります(これは私のデータと同様の形式です)。

このモデルから、最初にプロットされた結果は、年の日の関数としての平均気温変化を示し、次に各場所の気温がこの平均から変化する量を示します。時刻についても同じことが示されています。

これに伴う問題は、y軸が正しい範囲の値を表示しないことです。つまり、最初のプロットはこれらの場所の平均温度を表示しません。プロットを変更して、(1)両方の場所の平均温度、および(2)任意の数値ではなく平均と比較した各場所の温度を表示するにはどうすればよいですか。

意図を明確に表現できない場合は、お知らせください。より良い例を提供するよう努めます。

0 投票する
2 に答える
1058 参照

r - 定期的なスムーザーを備えたGAMを使用して新しいデータを予測するとエラーが返されました

これがCrossValidatedでより適している場合はお詫びします。

Rのmgcvパッケージを使用してGAMモデルを二項データに適合させています。共変量の1つは周期的であるため、bs = "cc"循環3次スプラインを指定しています。相互検証フレームワークでこれを行っていますが、predict関数を使用してホールドアウトデータを適合させると、次のエラーが発生します。

エラーを再現する必要があるコードは次のとおりです。

私がどこで間違っているのかについての提案は大歓迎です。たぶん、-piとpiに該当するノットを手動で指定しますか?

0 投票する
1 に答える
2567 参照

r - gam(mgcvパッケージ)でよりスムーズにするために外側の結び目を手動で指定する方法

Rのmgcvパッケージを使用して、GAMモデルをデータに適合させています。一部の予測子は循環しているため、周期的スムーザーを使用しています。クロス検証で、ホールドアウトデータセットにトレーニングデータの範囲外の値が含まれる可能性があるという問題が発生しました。gamパッケージはスムースのノットを自動的に選択するため、これによりエラーが発生します(エラーの説明については、@ nograpesと@DWinに感謝します)

周期的な滑らかさで外側の結び目を手動で指定するにはどうすればよいですか?

サンプルコード

最初のブロックはいくつかのデータを生成します。

次のブロックは、GAMモデルを周期的なスムーズに適合させます。

s(x,bs="cc",k=5)それはあなたがいくつかの結び目を設定することができると私が確信しているより滑らかな用語の仕様のどこかにあるでしょう、しかしこれはグーグルの助けからgamまたはグーグルから私には明らかではありません。

このブロックはいくつかのホールドアウトデータに適合し、シードを上記のように設定するとエラーが発生します。

理想的には、外側の結び目を設定しgam、残りを選択するだけです。

この質問がCrossValidatedの方がSOよりも優れている場合はお詫びします。

0 投票する
0 に答える
310 参照

r - 乱雑な曲線へのスプラインのフィッティング

ポイントが完全に滑らかではないシミュレーションから生成されたトレードオフ曲線があります。スプラインに合わせて最大値を計算したいと思います。ポイントのギザギザの性質により、特にピーク付近では、曲線全体にスプラインを当てはめることは意味がありません。代わりに、より適切なスプラインに適合できるように、曲線のほとんどの (すべてではない) 有益でない部分 (ポイントが均一に増加/減少していない部分) を破棄したいと考えています。

3 つの曲線の例を次に示します。

これが私のspline機能です。

ポイントの変動が大きい曲線の部分に焦点を当て、それらにスプラインを合わせることができるようにするアルゴリズムまたはアイデアを誰かが提案できますか(そして、寄与しないピークの両側の他のポイントを破棄します)詳しくは)?