1

R を学習しながら、潜在成分分析を学習しようとしています。 poLCA パッケージを使用しており、属性へのアクセスに少し問題があります。サンプル コードを問題なく実行できます。

ds = read.csv("http://www.math.smith.edu/r/data/help.csv")
ds = within(ds, (cesdcut = ifelse(cesd>20, 1, 0)))

library(poLCA)
res2 = poLCA(cbind(homeless=homeless+1, 
    cesdcut=cesdcut+1, satreat=satreat+1, 
    linkstatus=linkstatus+1) ~ 1, 
    maxiter=50000, nclass=3, 
    nrep=10, data=ds)

しかし、これをより便利にするために、poLCA クラスによって作成されたオブジェクト内の属性にアクセスしたいと思います。

attr(res2, 'Nobs')
attr(res2, 'maxiter')

しかし、どちらも「Null」として表示されます。Nobs は 453 (関数によって決定される) であり、maxiter は 50000 (入力値によって決定される) であると予想しています。

私は単純なだけだと確信していますが、利用可能なヘルプを使用できます。どうもありがとう!

4

1 に答える 1

3

R へようこそ。モデルを取得できるという点で、モデル フィッティングの構文は適切です (潜在成分分析がどのように機能するかがわからないため、結果の統計的妥当性について話すことはできません)。ただし、R がモデルに関連する情報を格納できるさまざまな方法を混同しています。

poLCApoLCAクラスのオブジェクトを返します。

次の要素を含むリスト:

(. . .)

Nobs完全に観測されたケースの数 (N 以下)。

maxiter推定アルゴリズムが実行されるように設定された反復の最大数。

$これはリストなので、演算子を使用してモデル オブジェクトから個々の要素を抽出できます。

res2$Nobs      # number of observations
res2$maxiter   # maximum iterations

場合によっては、低レベルのインデックス作成を行わずにこの情報を取得するためのエクストラクタ関数が存在することがあります。たとえば、多くのモデル フィッティング関数にはfitted、トレーニング データのフィッティング値のベクトルを引き出すメソッドがあります。同様にresiduals、残差のベクトルを引き出します。poLCAパッケージによって提供されるそのような抽出関数があるかどうかを確認し、可能であればそれらを使用する必要があります。そうすれば、将来壊れる可能性のあるモデル オブジェクトの構造について仮定することはありません。

これは、使用するオブジェクトの属性を取得することとは異なりますattr。R の属性は、メタデータと呼ばれるものです。属性には、オブジェクトが関連するものに関する情報ではなく、オブジェクト自体に関する R 固有の情報が含まれています。一般的な属性の例には、(classオブジェクトのクラス)、dim(配列または行列の次元)、names(ベクトル/リスト/配列の個々の要素の名前) などがあります。

于 2013-07-19T08:28:55.427 に答える