問題タブ [glm]
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.
r - Rでユーザー指定のリンク関数を採用するようにglm関数を変更します
Rでは、ファミリglm
のデフォルトのリンク関数は、およびです。今、私の特定の質問のために、応答と修正されたリンク関数を の形式でガンマ回帰を使用する必要があります。したがって、R の に関連する関数をいくつか変更することを検討しています。関連する可能性のある関数がいくつかあります。以前にこれを行った経験がある人の助けを求めています。Gamma
inverse
identity
log
Y
log(E(Y)-1))
glm
たとえば、関数Gamma
は次のように定義されます。
また、コマンドを使用するには、関数glm(y ~ log(mu), family = Gamma(link = MyLink))
も変更する必要がありますか? glm.fit
ありがとうございました!
更新と新しい質問
@Ben Bolker のコメントによると、vlog
(本名で"log(exp(y)-1)"
) という名前の新しいリンク関数を作成する必要があります。make.link
関数がそのような変更の原因である可能性があることがわかりました。次のように定義されます。
私の質問は次のとおりです。このリンク関数をに永続的に追加して、各 R セッションで直接使用できるようにする場合、 を使用してから、 の定義をその本体に追加しますか? それとも、現在の R セッションでのみ行うことができますか? 再度、感謝します!vlog
glm
glm(y~x,family=Gamma(link="log(exp(y)-1)"))
fix(make.link)
vlog
fix()
もう 1 つ:おそらく別の機能を変更する必要があることを認識しています。それはGamma
、次のように定義されます
見直す必要もあると思います
に
?
r - R の Rate 変数の回帰
私は、さまざまなプログラムへの学生の登録を調べる回帰モデルの開発を任されました。これは、登録数がポアソン分布によく従う、非常に優れたクリーンなデータ セットです。モデルを R に当てはめます (GLM と Zero Inflated Poisson の両方を使用します)。結果の残差は妥当に見えました。
ただし、その後、生徒の数を、生徒数/学校人口として計算される「率」に変更するように指示されました (各学校には独自の人口があります)。 . これは、プログラムの「登録率」と見なされます。
この「率」(学生/人口) はもはやポアソンではありませんが、確かに正規でもありません。そのため、適切な分布と、それを表す後続のモデルについて少し迷っています。
対数正規分布はこの比率パラメーターにうまく適合しているように見えますが、0 の値が多いため、実際には適合しません。
この新しいパラメーターの最適な分布形式と、R でモデル化する方法に関する提案はありますか?
ありがとう!
r - R glm モデルで統計的に有意な変数を選択する
Y という結果変数と、Y に影響を与える可能性のある 100 個の次元のリスト (X1...X100 など) があります。
my を実行しglm
てモデルの概要を表示すると、統計的に有意な変数が表示されます。これらの変数を選択して別のモデルを実行し、パフォーマンスを比較できるようにしたいと考えています。モデルの要約を解析し、重要なものだけを選択する方法はありますか?
r - Predict.glm が応答の欠損値を予測しない
何らかの理由で、glms を指定すると (そして lm も同様であることが判明しました)、R はデータの欠損値を予測していません。次に例を示します。
p の長さは 100 である必要がありますが、50 です。奇妙なことに、欠落データから予測する同じスクリプトに他の予測があることです。
編集: 他の予測はかなり間違っていたことが判明しました - 私はimputed.value = rnorm(N,mean.from.predict,var.of.prediction.interval)
. これにより、 lm predict または glm predict 関数の mean および sd ベクトルが再length(predict)<N
利用されました。これは、私が求めていたものとはまったく異なります。
だから私の質問は、glm と lm が欠落している値を予測するのを止めている私のコード例はどうなっているのですか?
ありがとう!
r - svyglm と加重 glm の違い
svyglm
使用と加重の違いを知りたいglm
です。
例えば:
または、サンプル デザインを次のように定義します。
そして使用しますsvyglm
:
M2
( )を使用する場合svyglm
。glm モデルに対してステップワイズが行うように、モデルを比較するために何を使用できますか?
ありがとう、ナタリア
r - ユーザー定義関数内で step() を使用するとオブジェクトが見つからないというエラーが発生する
5日経っても返事なし
- サイモンのコメントからわかるように、これは再現可能な非常に奇妙な問題です。この問題は、予測力が非常に高い段階的回帰が関数にラップされている場合にのみ発生するようです。
私はしばらくこれに苦労してきましたが、どんな助けでも大歓迎です。いくつかの段階的な回帰を実行し、それらすべてをリストに出力する関数を作成しようとしています。しかし、R は、関数の引数で指定したデータセットを読み取るのに問題があります。さまざまなボード (ここ、ここ、およびここ) で同様のエラーがいくつか見つかりましたが、いずれも解決されていないようです。それはすべて、ユーザー定義関数で step() を呼び出す際のいくつかの奇妙な問題に帰着します。次のスクリプトを使用してコードをテストしています。エラーが発生するまで、すべてを数回実行します (信じてください、そうなります)。
これにより、次のエラー メッセージが返されます (エラーがすぐに表示されない場合は、test.df スクリプトと stepModel() の呼び出しを再実行し続けると、最終的に表示されます)。
model.stepwise2 のビルドが開始されるまで、すべてが正常に動作すると判断しました。どういうわけか、一時オブジェクト「データセット」は最初のステップワイズ回帰では問題なく機能しますが、2 番目の回帰では認識されません。以下に示すように、関数の一部をコメントアウトすることでこれを見つけました。このコードは正常に実行され、オブジェクト「データセット」が最初に認識されていたことを証明します。
編集 - 誰かが尋ねる前に、すべての summary() 関数がそこにありました。これは、完全な関数 (エラーに集中できるように編集したもの) には、段階的なトレースを出力できるファイルを定義する別の部分があるためです。私はちょうどそれらを取り除きました
EDIT 2 - セッション情報
sessionInfo() R バージョン 2.15.1 (2012-06-22) プラットフォーム: x86_64-pc-mingw32/x64 (64 ビット)
EDIT 3 - 関数を使用せずに、関数と同じ操作をすべて実行します。これは、アルゴリズムが収束しない場合でも、毎回正常に実行されます。
r - データに NaN が含まれている場合、GLM モデル (package=boot) の leave-one-out 交差検証が失敗するのはなぜですか?
これはかなり単純な手順です。データのサブセット (トレーニング セット) を使用して GLM モデルを再適合し、残りのデータで予測の精度を計算します。cv.glm
packageの関数を使用して、データ セット (つまり、トレーニング サブセットは長さ = n-1) に対して "leave-one-out" 戦略を実行しようとしていますboot
。
私は何か間違ったことをしていますか、それとも関数がNAを処理していないように見えるのは本当にそうですか? これは自分でプログラムするのはかなり簡単だと思いますが、他に間違いがある場合はアドバイスをいただければ幸いです。乾杯。
例:
svm - より正確な予測を得るために、randomforest、gbm、svm、nnet などから予測を生成した場合、結果 (予測) をどのように組み合わせるのですか?
より具体的には、アンサンブルを作成して予測を改善する方法は? つまり、さまざまなアルゴリズム (ランダム フォレスト、nnet、gbm、svm) から取得した結果 (予測) に対して回帰を実行することを知っています。しかし、どうやってこれを行うのでしょうか?
r - ケース自体なしで glm モデル ビルドの値を予測する
生成されたモデルを使用して値を予測したいと思います。それは簡単な部分です:
しかし:それぞれのケースで、そのモデルを構築するためにそのケースを使用したくありません(forループを使用せずに)
例:
St.Adam の生徒の平均成績を予測したいが、モデルの構築には使用したくないとします。