問題タブ [lm]
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 可変長 残差の線形モデルを構築する場合に異なる
他の 2 つの線形モデルの残差を使用して線形モデルを構築する問題に取り組んでいます。実際のデータセットを使用するよりも問題を簡単にここに置くことができるため、UN3 データセットを使用して問題を示しました。
ここに私のRコードがあります:
これが私が得ているエラーです:
このエラーが実際に発生する理由がよくわかりません。ログ関連の問題であれば、最初の 2 つのモデルを構築しているときにエラーが発生するはずです。
r - 適合二次曲線を追加
近似二次曲線をプロットに追加しようとしています。
表示される回帰は 2 次ではなく線形であり、次のメッセージが表示されます。
Message d'avis : In abline(lm(data ~ factor + I(factor^2)), col = palette[iteration]) : utilization des deux premiers des 3 係数 de regression
つまり:
3 つの回帰係数のうち最初の 2 つの使用
関数のみを実行するlm()
と、メッセージが表示されません。
サンプルデータは次のとおりです。
r - R - 回帰における因子レベルが 1 つのみの交互作用
回帰モデルでは、因子のダミー変数が 1 つのみの交互作用を含めることができますか? たとえば、私が持っているとします:
次のようなモデルを構築することは可能ですか?
の 1 つのレベルとの相互作用のみを含めX
ます。のレベルごとに個別のダミー変数を作成できることはわかっていますがx
、可能であれば単純化したいと考えています。
ご意見をお寄せいただきありがとうございます。
r - lm()から返されたオブジェクトの予測をシミュレートする関数またはパッケージはありますか?
線形モデルのシミュレートされた予測を生成する「runif」、「rnorm」などのような単一の関数はありますか?自分でコーディングすることもできますが、コードが醜く、これは誰かが以前にやったことだと思います。
私が興味を持っているのは、次の行のような関数です。
この関数は、新しいx変数に基づいて、y値の1000回のシミュレーションを返します。
r - モデル式 (R) へのアクセスと再利用
以下の手順を自動化したい。
- を使用して (lm /glm) モデルを近似し
step()
ます。 - (1) の結果モデルの変数を抽出します。たとえば、(X1+X2) を次のように抽出します。
Y~X1+X2
- (1) のモデルを新しい lm/glm (およびいくつかの新しい変数) で再利用します。
model$call
モデル式は、またはを使用してアクセスできることを理解しています。たとえば、 model$terms
「model
」はモデルの元です。
しかし、私はそれを適切に抽出して、次のような新しいモデルで再利用することができません:
model$call で作業が必要なようですが、配列の構造とそれを折りたたむ方法についてはわかりません。ありがとう。
r - グループ化されたdata.table内のlmで更新を使用すると、モデルデータが失われるのはなぜですか?
わかりました、これは奇妙なものです。これは内部のバグdata.table
だと思いますが、なぜこれが起こっているのかを誰かが説明できれば便利です-update
正確には何をしているのですか?
フィットしたモデルを保存するためにlist(list())
内部のトリックを使用しています。異なるグループごとdata.table
にオブジェクトのシーケンスを作成し、次にそれらのモデルを作成すると、すべてのモデルのモデルデータが最後のグループのモデルデータになります。これは、コピーが作成されるべき場所に参照がぶら下がっているように見えますが、場所が見つからず、との外でこれを再現することはできません。lm
update
lm
update
具体的な例:
アイリスデータから始めて、最初に3つの種の異なるサンプルサイズを作成し、次にlm
モデルを各種に適合させ、それらのモデルを更新します。
元のデータテーブルには、各種の数が異なります
そして、最初の適合はこれを確認します:
しかし、更新された2番目のフィットは、すべてのモデルで42を示しています
また、フィッティングに使用されたデータを含むモデル属性を確認すると、すべてのモデルが実際に最終グループデータを使用していることがわかります。問題は、これがどのように起こったのかということです。
r - `lm()`によって返される「mlm」オブジェクトの残差標準誤差を取得します
私はlm()
、Rの複数(約100万)の応答変数に対して、複数の回帰モデルを近似するために使用しました。
これにより、クラス「mlm」のオブジェクトが返されます。これは、すべてのモデルを含む巨大なオブジェクトのようなものです。各モデルの残差平方和を取得したいのですが、これは次を使用して実行できます。
私の問題は、「summary」関数が他の多くのものも計算するため、非常に遅いと思うことです。モデルの残差平方和だけを抽出するより速い方法があるかどうか疑問に思っていますか?
ありがとう!
r - R の係数変数メンバーシップ
正規表現を使用する前に、これに対する非常に長い解決策を考え出しましたが、よりネイティブな方法で解決できることを願っています。
モデルを考えると、おそらく次のようになります
どの係数が式のどの変数に対応するかを特定したいと考えています。このような:
私は調べmodel.matrix
ましmodel.formula
たが、それらは私をこのコード行に導きました
私は C コードに飛び込みましたが、もっと簡単な方法が必要だと考えました。ある?
DWin の素敵な答えに応えて、正規表現が失敗する可能性のある複雑な例を作成しました。これは、正規表現が私を怖がらせるエッジケースの 1 つです。
はdata.frame
、頻繁に発生する混乱しやすい変数名と値で構築されています。
これは、連続変数Bat
を のすべての係数に一致させfactor
Batter
ます。
はい、これはばかげた例ですが、簡単に発生する可能性があります。
r - lmを使用して、行列のデータを予測します
私はR
ほんの少ししか使用せず、データフレームを使用しないため、predictの正しい使用法を理解するのは困難です。私は自分のデータをデータフレームではなく単純な行列に入れてa
おりb
、それぞれN x p
とM x p
行列であるとと呼んでいます。回帰を実行できますlm(a[,1] ~ a[,-1])
。lm
結果のオブジェクトを使用してから予測b[,1]
したいと思いますb[,-1]
。私の素朴な推測はうまくいきpredict(lm(a[,1] ~ a[,-1]), b[,-1])
ません。lm
予測のベクトルを取得するためにを使用するための正しい構文は何ですか?
r - 複数の応答と重みを指定して lm を実行する
同じモデル マトリックスを使用して線形モデルを複数の応答に適合させる必要があります。これは、応答をベクトルではなく行列として指定することで、R で簡単に実行できます。このように計算は非常に高速です。
次に、応答の精度に対応する重みをモデルに追加したいと思います。したがって、応答ベクトルごとに、異なる重みベクトルも必要になります。ただし、lm
行列ではなくベクトルとしてのみ重みを入力できます。そのため、重みをバッチで入力できず、lm
応答ごとに個別に実行する必要がありました。この方法では、計算がはるかに遅くなります。
lm
繰り返し呼び出すことなく、これらのタイプのモデルをバッチ モードで実行する方法はありますか?