Aritalab:Lecture/Math/PLS/R PLS

From Metabolomics.JP
< Aritalab:Lecture | Math | PLS(Difference between revisions)
Jump to: navigation, search
(Created page with ";参考資料 * [http://mevik.net/work/software/pls.html PLSパッケージの解説] ==RによるPLS== Rでは pls パッケージを使います。 <pre> > install.package...")
 
m
Line 5: Line 5:
  
 
Rでは pls パッケージを使います。
 
Rでは pls パッケージを使います。
 +
 
<pre>
 
<pre>
 
> install.packages("pls")
 
> install.packages("pls")
 
> library(pls)
 
> library(pls)
 +
> summary(oliveoil)
 +
  chemical.Acidity    chemical.Peroxide      chemical.K232        chemical.K270          chemical.DK   
 +
Min.  :0.150000      Min.  : 8.1400      Min.  :1.33100      Min.  :0.08500000    Min.  :-0.00500   
 +
1st Qu.:0.190000      1st Qu.:10.9500      1st Qu.:1.53600      1st Qu.:0.10150000    1st Qu.:-0.00325   
 +
Median :0.260000      Median :12.4000      Median :1.65350      Median :0.11600000    Median :-0.00200   
 +
Mean  :0.311875      Mean  :13.2525      Mean  :1.70825      Mean  :0.11814375    Mean  :-0.00175   
 +
3rd Qu.:0.312500      3rd Qu.:15.3750      3rd Qu.:1.89325      3rd Qu.:0.12850000    3rd Qu.: 0.00000   
 +
Max.  :0.730000      Max.  :19.4000      Max.  :2.22200      Max.  :0.16800000    Max.  : 0.00300   
 +
  sensory.yellow      sensory.green      sensory.brown      sensory.glossy      sensory.transp      sensory.syrup 
 +
Min.  :21.400      Min.  : 9.7000    Min.  : 8.00000    Min.  :67.7000    Min.  :63.50000    Min.  :42.300   
 +
1st Qu.:32.075      1st Qu.:12.0750    1st Qu.:10.02500    1st Qu.:77.8000    1st Qu.:74.17500    1st Qu.:46.150   
 +
Median :52.800      Median :31.1500    Median :10.80000    Median :80.4000    Median :77.20000    Median :47.500   
 +
Mean  :50.875      Mean  :33.5125    Mean  :12.33125    Mean  :80.8125    Mean  :78.19375    Mean  :47.975   
 +
3rd Qu.:68.800      3rd Qu.:54.7000    3rd Qu.:11.97500    3rd Qu.:85.3750    3rd Qu.:84.87500    3rd Qu.:50.650   
 +
Max.  :73.500      Max.  :73.4000    Max.  :28.40000    Max.  :89.9000    Max.  :89.70000    Max.  :52.800   
 
</pre>
 
</pre>
 +
ここではオリーブオイル 16種(ギリシャ5, イタリア5, スペイン6)のデータを利用します。chemical カテゴリーに Acidity, Peroxide, K232, K270, DK の 5 項目、sensory カテゴリーに yellow, green, brown, glossy, transp, syrup の 6 項目の情報があります。
 +
 +
"Chemical" はオイルの品質基準で,いずれも低い方がよいとされます。
 +
* Acidity 脂肪酸の割合 (EUにおける許容最大値 0.80)
 +
* Peroxide 酸化の状態 (EUにおける許容最大値 20)
 +
* K232, K270, DeltaK オイルに含まれる酸性物質の量 (EUにおける許容最大値それぞれ 2.50, 0.20, 0.01)
 +
"Sensory" は官能試験のスコアです。どちらも相関の高い軸を持っています。
 +
 +
[[File:oliveoilChemicalPairsR.png|250px]] [[File:oliveoilSensoryPairsR.png|250px]]
 +
  
PLSは共線性を持つ変量が多いデータに適するため、PCAなどで使った iris データでは面白くありません。ここではオリーブオイル 16種(ギリシャ5, イタリア5, スペイン6)の官能試験データを利用します。chemical カテゴリーに Acidity, Peroxide, K232, K270, DK の 5 項目、sensory カテゴリーに yellow, green, brown, glossy, transp, syrup の 6 項目の情報があります。3 軸のchemical 主成分で、6項目の値を予測してみます。
+
3 軸のchemical 主成分で、6項目の値を予測してみます。
  
 
<pre>
 
<pre>

Revision as of 09:20, 19 June 2020

参考資料

RによるPLS

Rでは pls パッケージを使います。

> install.packages("pls")
> library(pls)
> summary(oliveoil)
   chemical.Acidity     chemical.Peroxide       chemical.K232         chemical.K270          chemical.DK     
 Min.   :0.150000      Min.   : 8.1400       Min.   :1.33100       Min.   :0.08500000    Min.   :-0.00500    
 1st Qu.:0.190000      1st Qu.:10.9500       1st Qu.:1.53600       1st Qu.:0.10150000    1st Qu.:-0.00325    
 Median :0.260000      Median :12.4000       Median :1.65350       Median :0.11600000    Median :-0.00200    
 Mean   :0.311875      Mean   :13.2525       Mean   :1.70825       Mean   :0.11814375    Mean   :-0.00175    
 3rd Qu.:0.312500      3rd Qu.:15.3750       3rd Qu.:1.89325       3rd Qu.:0.12850000    3rd Qu.: 0.00000    
 Max.   :0.730000      Max.   :19.4000       Max.   :2.22200       Max.   :0.16800000    Max.   : 0.00300    
   sensory.yellow      sensory.green       sensory.brown       sensory.glossy      sensory.transp      sensory.syrup   
 Min.   :21.400      Min.   : 9.7000     Min.   : 8.00000    Min.   :67.7000     Min.   :63.50000    Min.   :42.300    
 1st Qu.:32.075      1st Qu.:12.0750     1st Qu.:10.02500    1st Qu.:77.8000     1st Qu.:74.17500    1st Qu.:46.150    
 Median :52.800      Median :31.1500     Median :10.80000    Median :80.4000     Median :77.20000    Median :47.500    
 Mean   :50.875      Mean   :33.5125     Mean   :12.33125    Mean   :80.8125     Mean   :78.19375    Mean   :47.975    
 3rd Qu.:68.800      3rd Qu.:54.7000     3rd Qu.:11.97500    3rd Qu.:85.3750     3rd Qu.:84.87500    3rd Qu.:50.650    
 Max.   :73.500      Max.   :73.4000     Max.   :28.40000    Max.   :89.9000     Max.   :89.70000    Max.   :52.800    

ここではオリーブオイル 16種(ギリシャ5, イタリア5, スペイン6)のデータを利用します。chemical カテゴリーに Acidity, Peroxide, K232, K270, DK の 5 項目、sensory カテゴリーに yellow, green, brown, glossy, transp, syrup の 6 項目の情報があります。

"Chemical" はオイルの品質基準で,いずれも低い方がよいとされます。

  • Acidity 脂肪酸の割合 (EUにおける許容最大値 0.80)
  • Peroxide 酸化の状態 (EUにおける許容最大値 20)
  • K232, K270, DeltaK オイルに含まれる酸性物質の量 (EUにおける許容最大値それぞれ 2.50, 0.20, 0.01)

"Sensory" は官能試験のスコアです。どちらも相関の高い軸を持っています。

OliveoilChemicalPairsR.png OliveoilSensoryPairsR.png


3 軸のchemical 主成分で、6項目の値を予測してみます。

> s <- plsr(sensory ~ chemical, ncomp=3, data=oliveoil)
> summary(s)
Data:   X dimension: 16 5 
        Y dimension: 16 6
Fit method: kernelpls
Number of components considered: 3
TRAINING: % variance explained
        1 comps  2 comps  3 comps
X         99.59    99.87   100.00
yellow    17.33    47.00    49.48
green     11.64    43.80    45.38
brown     60.41    63.24    68.91
glossy    45.00    51.46    52.98
transp    35.81    45.65    45.96
syrup     57.62    58.80    58.80

3軸目では説明能力があまり上がっていないことがわかります。 各項目への一致度や軸のローディングは plot 関数でわかります。

> plot(s, ncomp=2, asp=1, line=TRUE)
> plot(s, "loadings", comps=1:2, legendpos = "topleft")
Personal tools
Namespaces

Variants
Actions
Navigation
metabolites
Toolbox