問題タブ [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 - 応答変数のみで線形モデルを適合させることは可能ですか?
これを行うと、2 つの係数 (切片と年) が得られます。
でも正解は0.944
応答変数だけに glm 式を指定する方法はありますか? 最初のデータ フレームで 2 番目の数式を使用すると、"." が原因で間違った答えが得られます。「年」も含みます。2 番目のデータ フレームでは、列が 1 つしかないためごまかしています。
r - lmを使用した一意の因子の組み合わせのサブセットの回帰
グループ化変数の一意の組み合わせによって定義されたサブセットの単純な重回帰を自動化したいと思います。いくつかのグループ化変数df1[、1:6]といくつかの独立変数df1 [、8:10]および応答df1 [、7]を持つデータフレームがあります。
これはデータからの抜粋です。
unique(df1 [、1:6])を使用すると、グループ化変数の5つの因子の組み合わせが返されます。したがって、lm()関数を適用するサブセットは5つあるはずです。私の電話はそのように見えます
問題1:16個のリストエントリを含むリストが返されます。どうやら、それは最初の6つのグループ化変数のすべての可能な因子の組み合わせを計算します。(V5 + V6はレベルのみですが、抜粋ではV1:4には2つのレベルレベルがあります。結果として2 ^ 4 = 16になります)ただし、データ内の実際の既存の因子の組み合わせのみを使用する必要があります。したがって、by()はそれを実現するための正しい関数ではないと思います。助言がありますか?
問題2:変数名よりも列インデックスを参照する方が簡単だと思います。そのため、最初はlm()関数をlm(df1 [、7]〜df1 [、8] + df1 [、9])の方法で使用しようとしていました。それはうまくいきませんでした。サブセットではなく、常にdf1データフレーム全体にアクセスするためです。したがって、おそらく、因子の組み合わせの行のインデックスを、完全なデータフレームではなくlm()関数に渡す必要があります。
問題1と2の解決策は、別のサブセット関数を使用して何らかの形で関連し、解決されていると思います。誰かが私の間違いがどこにあるのか説明してくれるといいですね。可能であれば、Rの理解を深めたいという理由だけで、標準パッケージに固執します。ありがとう
編集:変数の割り当ての小さな間違い
r - 変数のベクトルをlm()式に渡します
プログラミングが面倒にならないように、コードの一部を自動化しようとしていました。
fastbw()
基本的に、rmsパッケージを使用して変数を段階的に選択しようとしていました。fastbw()
によって選択された変数のリストを式に渡したいのですがy ~ x1+x2+x3
、「x1」「x2」「x3」はによって選択された変数のリストです。fastbw()
これが私が試したがうまくいかなかったコードです
私はRを初めて使用しますが、まだ急な学習曲線をたどっていません。そのため、明らかなプログラミングの失敗をお詫びします。
r - 予測値に差異がないのに lm が値を返すのはなぜですか?
次の R コードを考えてみましょう (最終的に Fortran を呼び出すと思います)。
summary によって値が返されるのはなぜですか? Y には分散がないため、このモデルは当てはまらないのではないでしょうか? さらに重要なのは、なぜモデルが R^2 ~= .5 なのですか?
編集
コードを lm から lm.fit まで追跡したところ、次の呼び出しが表示されました。
それが実際の適合が起こるように見えるところです。http://svn.r-project.org/R/trunk/src/appl/dqrls.f )を見ても、何が起こっているのか理解できませんでした。なぜなら、私は fortran を知らないからです。
r - Rは、特異点を持つlmモデルのロバスト標準誤差(vcovHC)を計算します
Rでは、特異点のために一部の係数が削除された場合、vcovHC()を使用して堅牢な標準誤差を計算するにはどうすればよいですか? 標準の lm 関数は、実際に推定されたすべての係数の通常の標準誤差を正常に計算しているように見えますが、vcovHC() はエラーをスローします。
(私が使用している実際のデータはもう少し複雑です。実際、これは 2 つの異なる固定効果を使用するモデルであり、単純に取り除くことができない局所的な特異点に遭遇しました。少なくとも方法はわかりません。私が使用している 2 つの固定効果は、最初の因子には 150 レベル、2 番目の因子には 142 レベルがあり、データが 10 ブロックで収集されたという事実から合計で 9 つの特異点があります。)
ここに私の出力があります:
エラーを再現するために切り取られた最小限のコードを次に示します。
r - 応答変数と説明変数の両方が対数変換されている場合、predict() を使用して y_hat を取得する方法は?
次の対数対数線形関数があります。
同じデータセットを使用して y_hat を取得したいのですが、そうしました
結果はかなりずれているようです (R で手動で計算した y-hat と比較すると)。
何らかの理由?
2 つ目の関連する質問は、y、x1、および x2 の対数変換のために、最初に元のデータ セット mod_dt にさらに 3 つの列を追加したことです。たとえば、それらは logy、logx1、および logx2 と名付けられており、lm を実行しました。
これにより、異なる係数セットが得られます。
これは正しいyハットを与えることができますか?
よろしくお願いします。
r - dlply 内から呼び出された lm が「0 (非 NA) ケース」エラーをスローする [r]
いくつかの NA 値を含むデータに適合する lm() の勾配を平均化するカスタム関数で dlply() を使用しています。 = singular.ok, ...) : 0 (非 NA) ケース"
このエラーは、2 つのキー変数を使用して dlply を呼び出した場合にのみ発生します。1 つの変数で区切ると問題なく動作します。
厄介なことに、単純なデータセットではエラーを再現できないため、問題のデータセットをドロップボックスに投稿しました。
エラーを生成しながら可能な限り最小化されたコードを次に示します。
洞察をお寄せいただきありがとうございます。
r - model.frame と更新
R では、対数変換された従属変数を使用してモデルを推定した可能性があります。
次に、モデル フレームを変更し、更新を呼び出してモデルを再調整することができます。
これにより、エラーが発生します。
その理由は、数式にはまだ従属変数log(salary)
があり、モデル フレーム内の変数は と呼ばれているためlog(salary)
です。Rは、それを見つけsalary
て呼び出すことができると考えていlog
ます。リサンプリングを行わないと同じエラーが発生します。この例は、リサンプリングが必要な理由を示しています。
上記の手順は、行のリサンプリングが実行されるブートストラップ パッケージからのものです。この動作は予期されるものですか、それともバグですか? データ引数の変数を変換することで回避できることは知っていますが、これは面倒で見過ごされているようです...
r - R 線形モデルは 0 の値を処理できません
lm
データ値として 0 を持つ列で関数を正しく動作させることができないようです。これが私のコードです:
しかし、 を要約するとproject.lm
、線形モデルで文字通り数千の変数が得られます。実際、 の値ごとに 1 つの変数が得られますBsmt.Unf.SF
。これは、値が 0 のすべての列で発生します。それ以外の場合は、すべて正常に動作します。何か案は?!?
r - lm predict は予測しません
私は2つのデータフレームを持っています。1 つはトレーニング データ ( pubs1
)、もう 1 つはpubs2
テスト データ ( ) です。線形回帰オブジェクトを作成できますが、予測を作成できません。これを行うのはこれが初めてではなく、何が問題なのかわかりません。
私が行方不明になっているものはありますか?