問題タブ [bspline]
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のbs(bスプライン)関数出力から行列を抽出する
をベクトルx = c(1, 2, 3)
とします。のパッケージのbs
関数を使用して、で評価される B スプラインの行列を生成します。splines
R
x
出力bs.x
は次のとおりです。
明らかに、基底行列の他に、bs.x
他の属性があります。私の質問は、これらの属性を取り除く方法です。最終的に を実行する必要があるため、これを行う必要がありMatrix(bs.x)
ます。これにより、次のエラー メッセージが表示されます。
これは、 が属するmatrix
クラスの 1 つだからだと思います。bs.x
この瞬間、私は次の愚かなことをします。
より良い代替手段はありますか?前もって感謝します。
r - R 関数 bs() の出力の解釈 (B スプライン基底行列)
回帰には B スプラインをよく使用します。これまで、 の出力をbs
詳細に理解する必要はありませんでした。関心のあるモデルを選択し、それを に適合させるだけでしたlm
。ただし、外部 (非 R) コードで b スプライン モデルを再現する必要があります。では、によって生成された行列の意味は何bs
ですか? 例:
degree
入力で指定したとおり、 1 です。knots
は、2 つの内部ノットがそれぞれ x = 13.3000 と x = 38.8333 にあることを示しています。ノットが固定された分位点にあることを見て少し驚きました。R が私のデータに最適な分位点を見つけてくれることを願っていましたが、もちろんそれではモデルが線形ではなくなり、応答データを知らなければ不可能になります。intercept = FALSE
切片が基底に含まれていなかったことを意味します (それは良いことですか?私は常に、切片なしで線形モデルに適合しないように教えられてきました...まあ、lm
とにかく1つ追加するだけだと思います)。
しかし、マトリックスはどうですか?解釈の仕方がよくわかりません。列が 3 つあるということは、基底関数が 3 つあるということだと思います。これは理にかなっています: 2 つの内部ノットK1
とK2
がある場合、左境界ノットB1
との間にスプラインがあり、 と のK1
間に別のスプラインがK1
あり、 と の間にK2
最後のスプラインがあるので、... 3 つの基底関数、わかりました。しかし、正確にはどれが基底関数ですか? たとえば、この列はどういう意味ですか?K2
B2
編集: これはこの質問と似ていますが、正確には同じではありません。その質問は回帰係数の解釈について尋ねますが、私はその前のステップです。モデル マトリックス係数の意味を理解したいと思います。最初の回答で提案されているのと同じプロットを作成しようとすると、めちゃくちゃなプロットが得られます。
これらはノットが多すぎるため、B スプライン基底関数にすることはできません (各関数は 1 つだけにする必要があります)。
2番目の答えは、実際にはRの外でモデルを再構築できるようにするので、それでいいと思います。ただし、その答えも、b
行列の要素が何であるかを正確に説明していません。ここではまだ紹介していない線形回帰の係数を扱っています。それが私の最終的な目標であることは事実ですが、この中間ステップも理解したかったのです。
curve - B-スプライン曲線における次数の概念とは?
私の質問に注意していただきありがとうございます。
私の質問は、タイトルからわかるように、B-スプライン曲線での次数の概念は何ですか。
私が勉強している本では、曲線の形を変える要因として「度」だけが挙げられています。
インターネットで検索しましたが、結果は良くありませんでした。
B-スプライン曲線の次数の概念をご存知でしたら、その概念についてお答えください。
読んでくれてありがとう。