2016-08-30 3 views
-1

私はSIMPLSメソッドでRのplsrパッケージを使用していますが、これは私に重み行列Wを与えませんでした。誰かが私を助けて、このW行列をどのように作成するか教えてください。これは私のコードの一部です:Rをplsrで重み付けするには?

plsr(Y ~ X, ncomp, validation = "CV", dframe = T, method = "SIMPLS") 

VIPメソッドを実装するにはWマトリックスが必要です。

+0

のために行く(?つまり、 '' T''ものです)データをご提供ください。また説明問題はより完全に。 "これは私にウェイト行列W"を与えませんでした - コマンド '' plsr''はW行列を返すと仮定していますか?それが戻ってこない場合は、警告メッセージまたはエラーが表示されますか? –

+0

また、 '' method = SIMPLS''の大文字のように、 '' dframe''を渡すのがちょっと変わってしまいます。代わりに '' plsr(Y〜X、ncomp、validation = "CV"、data = T、method = "simpls") '' –

+0

'T = TRUE'です。 Matlab 'plsregress'(パッケージ)はWの行列(重み行列)を返しますが、Rでは' plsr'はこのオプションを持たないので、Wの行列を得るための選択肢が必要です。これはmatlabの実装です[リンク](http://www.mathworks.com/help/stats/plsregress.html?requestedDomain=www.mathworks.com) –

答えて

0
library(pls) #only for preloaded data 
library(plsdepot) 
plsreg1(yarn$NIR, yarn$density) #using preloaded yarn dataset from pls library 

PLS Regression 1 
-------------------------------------------- 
$x.scores  X-scores (T-components) 
$x.loads  X-loadings 
$y.scores  Y-scores (U-components) 
$y.loads  Y-loadings 
$cor.xyt  score correlations 
$raw.wgs  raw weights 
$mod.wgs  modified weights 
$std.coefs standard coefficients 
$reg.coefs regular coefficients 
$R2   R-squared 
$R2Xy   explained variance of X-y by T 
$y.pred  y-predicted 
$resid  residuals 
$T2   T2 hotelling 
$Q2   Q2 cross validation 
-------------------------------------------- 

私たちは、経由して、生の重みにアクセスすることができます。

#Example of first 5 rows of weights matrix. 
head(plsreg1(yarn$NIR, yarn$density)$raw.wgs #or plsreg1(yarn$NIR, yarn$density)[6] 

    w1   w2 
X1 0.01716477 -0.04809644 
X2 0.03875600 -0.06025352 
X3 0.04857839 -0.06807797 
X4 0.05023674 -0.07540982 
X5 0.04571729 -0.08515648 
X6 0.03690089 -0.09647263 

同じことが$mod.wgs modified weights

関連する問題