2017-10-12 19 views
0

Rパッケージnlmeの関数glsを使用して、少なくともいくつかの空間座標で多くのサンプルが重なっているネストされた空間サンプルのセットを分析したいとします。私は、応答変数(各空間サンプルで測定しているもの)の非独立性をcorStructオブジェクトまたはpdMatオブジェクトのどちらかを使って考慮したいが、これを行う方法については混乱している。共分散行列を使用して、nlme関数glsの相関構造を指定できますか?

空間サンプル間の非独立性に関するすべての情報をエンコードする必要がある共分散行列を生成しました。各行/列は異なる空間サンプルであり、対角線は各空間サンプルによって捕捉されたサンプリング単位の総数を含み、非対角要素は空間サンプル間で共有されるサンプリング単位の数を含む。

おそらく、corSymmまたはpdMatオブジェクトを使用して、相関構造を指定するときにnlme関数glを使うべきだと思います。しかし、私は、glの相関構造が式を使って指定されている例しか見ていませんでした。私が作成した共分散行列を使うにはどうすればいいですか?

+0

データをモデル化する最良の方法について質問がある場合は、[stats.se]にお尋ねください。これはスタックオーバーフローに適した特定のプログラミング問題のようには見えません。 – MrFlick

+0

私は、共分散構造をnlme関数glに具体的に与える方法を尋ねています。私はcorSymmを使うべきですか? pdMat? – Roger

答えて

0

corSymmで提供される一般的な相関構造を使用して、nlme関数glsを正定値相関行列に渡すことができることを発見しました。

# convert your variance covariance matrix into a correlation matrix 
CM <- cov2cor(vcv_matrix) 

# if your correlation matrix contains zeros, as mine did, you need to convert it to a positive-definite matrix that substitutes very small numbers for those zeros 
CM <- nearPD(CM)$mat 

# convert into a corStruct object using general correlation structure provided by corSymm 
C <- corSymm(CM[lower.tri(CM)], fixed = T) 

# correlation structure can now be included in a gls model 
gls(y ~ x, correlation = C, method = "ML") 
関連する問題