問題タブ [princomp]

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 に答える
7115 参照

matlab - Matlab:matlabでPCAを使用してデータセットから破棄できる変数を見つける方法は?

私はPCAを使用して、他の変数との相関が高いためにデータセット内のどの変数が冗長であるかを調べています。以前にzscoreを使用して正規化されたデータに対してprincompmatlab関数を使用しています。

固有値は、データセットのバリエーションがすべての主成分をカバーする量を示し、係数は、j番目の主成分(i-行、j-列)にあるi番目の元の変数の量を示します

したがって、元のデータセットのどの変数が最も重要で、どれが最も重要でないかを見つけるには、係数行列に固有値を掛ける必要があると仮定しました。係数コンポーネントが持つすべての変数の量を表し、固有値は、このコンポーネントの重要性を示します。は。だからこれは私の完全なコードです:

しかし、これは実際には何も示していません-変数1が変数2と完全に相関している次のセットで試してみました(v2 = v1 + 2):

しかし、私の計算結果は次のとおりです。

これは実際には何も表示しません。変数2の結果は、v1またはv3よりもはるかに重要性が低いことを示していると思います。私の仮定のどれが間違っていますか?

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

r - R ロングフォームの PCA

長い形式のデータフレームで PCA を実行したいと思います。

時間1 id1 データ11

時間1 id2 データ12

time2 id1 data21

これを行う簡単な方法はありますか、それとも標準的な方法reshapeですprincomp。私のデータセットはかなり大きく、約 40,000 回と 4,000 個の ID があります。

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

r - 共分散行列にゼロがある場合、Rでprincomp()関数を使用する方法は?

princomp()R で関数を使用しているときに、次のエラーが発生しました: "covariance matrix is not non-negative definite".

これは、共分散行列で一部の値がゼロになっている (実際にはゼロに近いが、丸め中にゼロになる) ためだと思います。

共分散行列にゼロが含まれている場合に PCA を続行するための回避策はありますか?

princomp()[FYI : 共分散行列の取得は、呼び出し内の中間ステップです。このエラーを再現するためのデータ ファイルは、ここからダウンロードできます - http://tinyurl.com/6rtxrc3]

0 投票する
3 に答える
1837 参照

r - R-summary.princompの出力を制限します

1000を超える変数を持つデータセットで主成分分析を実行しています。R Studioを使用していますが、サマリーを実行してコンポーネントの累積差異を確認すると、最後の数百のコンポーネントしか表示されません。たとえば、最初の100個のコンポーネントのみを表示するように要約を制限するにはどうすればよいですか?

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

r - Rを使用してPCA分析を行う前に、NAとデータ代入を省略します

princompR の関数を使用して PCA 分析を実行しようとしています。

以下はコード例です。

データセットからを削除しようとしましたNAが、うまくいきません。

を削除できたNAとしても、すべての行または列に少なくとも 1 つの欠損値があるため、役に立たない可能性があります。PCA 分析を行うデータを代入できる R メソッドはありますか?


更新:回答に基づいて:

これは機能しますが、デフォルトna.actionは機能しません。

実際のデータでは、ほとんどすべての列に欠損値があるため、データを代入できる方法はありますか? このような省略の結果、NA〜0行または列が得られます。

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

matlab - 主成分分析

人間の行動認識に使用する分類子 (ガウス混合モデル) を作成する必要があります。ビデオの 4 つのデータセットがあります。そのうちの 3 つをトレーニング セットとして、1 つをテスト セットとして選択します。トレーニング セットに gm モデルを適用する前に、pca を実行します。

テスト段階では何​​をすればよいですか? テストデータで新しいprincompを実行する必要がありますか

または、トレーニング データに対して計算した pca_coeff を使用する必要がありますか?

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

r - データを転置せずに、大規模なデータセットでRでprincomp()またはprcomp()関数を使用する方法は?

私はPCAを知り始めたばかりで、400,000行を超える巨大なマイクロアレイデータセットに使用したいと考えています。私の列はサンプルの形で、行は遺伝子/遺伝子座の形であります。私はPCAの使用に関するいくつかのチュートリアルを経験し、princomp()とprcomp()および他のいくつかに出くわしました。

ここで学習したように、バイプロットに「サンプル」をプロットするには、行にそれらを、列に遺伝子/遺伝子座を配置する必要があるため、データを転置してから使用する必要があります。 PCA。

ただし、行数が4,00,000を超えているため、列が限られているため、実際には列に転置できません。だから私の質問は、これらのR関数を使用して、データを転置せずにデータに対してPCAを実行する方法はありますか?そうでない場合、あなたの誰かが私にそうするための他の方法や方法を提案できますか?

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

r - 主成分分析-Prin.Comp。への各パラメーターの寄与(%)を取得する方法は?

測定/パラメータが計算された主成分の1つにどの程度寄与するかを知りたいです。

実際の説明:

  1. 種の地理的分布に対する5つの気候パラメータがあります
  2. これらの5つのパラメーターを使用してPCAを実行しました
  3. PC1とPC2のプロットは興味深いパターンを示しています

質問:各PCへの(各パラメーターの)貢献度を取得するにはどうすればよいですか?

私が期待すること:PC1は、parameter1の30%、parameter2の50%、parameter3の20%、parameter4の0%、parameter5の0%で構成されています。PC2は構成されています...

5つのダミーパラメータの例:

私の情報はどこに隠されていますか?

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

r - Rでprincompローディングからスコアを構築する

ローディングを使用して主成分分析のスコアを構築できるようにしたいと考えていますが、princomp 関数がデータセットのスコアを計算するときに実際に何をしているのかわかりません。おもちゃの例:

私の理解では、スコアはローディングと再スケーリングされた元のデータの線形結合です。「手」で試す:

列は、それぞれ 1.707825、2、および 1.333333 の係数でずれています。どうしてこれなの?おもちゃのデータ マトリックスは各列の分散が同じであるため、ここでは正規化は必要ありません。どんな助けでも大歓迎です。

ありがとう!

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

r - SASのproc princompとRのprincompコマンドの違いは?

現在、SAS の proc princomp コマンドと R の princomp() コマンド (stats パッケージ内) を使用して、同等の結果を得ようとしています。得られる結果は非常によく似ており、これは 2 つのコマンドのオプション設定が異なることによる問題ではないと思われます。ただし、出力も十分に異なるため、各データ行のコンポーネント スコアは著しく異なります。それらも符号反転されていますが、これはもちろん問題ではありません。

この分析の最終目標は、PCA ルーチンの外部でデータをスコアリングするための PCA から一連の係数を作成することです (つまり、スコアリングされたデータを簡単に作成するために新しいデータセットに適用できる式)。

すべてのデータを投稿することなく、これら 2 つのコマンドが計算でどのように異なるかについて誰かが情報を提供できることを願っています。これがプロセスの概念的な違いなのか、内部の丸めの違いのようなものなのかを判断するのに十分な PCA 数学についてはわかりません。簡単にするために、PC1 と PC2 の固有ベクトルのみを掲載します。

SAS では:

戻り値

Rで:

戻り値

ご覧のとおり、値は似ていますが (符号が逆)、同一ではありません。違いはスコアリングされたデータで重要です。最初の行は次のようになります。

GLM (SAS の場合) または lm() (R の場合) を使用して、スコアリングされたデータから係数を計算すると、切片を除いて非常によく似た数値 (逆符号) が得られます。そのようです:

SASで:

Rで:

戻り値

したがって、モデルの切片がスコアリングされたデータの値を変更しているように見えます。これが発生する理由 (切片が異なる理由) についての考えをいただければ幸いです。