2017-03-25 7 views
0

RでタイプIII SSを使用していますが、これは何の問題もありませんでした。しかし、今では、車のパッケージで非常に矛盾した結果を生み出すRの四角形のタイプIIIの問題に問題があります。RタイプIII SSが一貫性のない結果を生成する

はい、毎回このコード行を実行します。

M1 <- aov(Response ~ Location + Time + Fish*Nutrient, data=data) 
Anova(M1, type="III") 

場所(2)、タイム(3)、魚(3)、及び栄養(3)すべてのカテゴリ変数がある(#レベル:

options(contrasts = c("contr.treatment", "contr.poly")) 

私が使用しているモデルはこれですカッコ内は)。これらのカテゴリ変数は、データファイルに数値として表示されている場合、私は(一例)を実行します。

data$Fish <- as.factor(data$Fish) 

これらは私がSASで得た結果、次のとおりです。私は当初、RIでこれを実行しました

  Sum Sq Df F value Pr(>F)  
Location  13.122 1 22.08 <.0001 
Time   15.746 2 7.87 <.0001 
Fish   25.876 2 12.94 <.0001 
Nutrient  22.074 2 11.04 <.0001  
Fish:Nutrient 13.780 4 3.44 0.0006 

異なっている魚やニューいる上記

  Sum Sq Df F value Pr(>F)  
(Intercept) 56.827 1 95.6078 2.758e-13 *** 
Location  13.122 1 22.0767 2.020e-05 *** 
Time   15.746 2 13.2459 2.328e-05 *** 
Fish   24.682 2 20.7632 2.531e-07 *** 
Nutrient  0.424 2 0.3567 0.7017240  
Fish:Nutrient 13.780 4 5.7959 0.0006352 *** 
Residuals  30.313 51  

変数のみ:これらの結果を栄養と魚は、各レベルのすべての数値としていたし、各変数のas.factorを実行し、受信しました3回繰り返され、以下の各反復で同じことが行われます。

その後、データシートに少し変更を加え、3つのレベルの魚(元々0,1,2)を(z、1,2)に変更しました。出力は次のように変更されました:

   Sum Sq Df F value Pr(>F)  
(Intercept) 5.3556 1 9.0104 0.0041488 ** 
Location  13.1220 1 22.0767 2.020e-05 *** 
Time   15.7462 2 13.2459 2.328e-05 *** 
Fish   24.6825 2 20.7632 2.531e-07 *** 
Nutrient  17.7692 2 14.9477 7.780e-06 *** 
Fish:Nutrient 13.7799 4 5.7959 0.0006352 *** 
Residuals  30.3134 51 

巨大な変更!そして、これらの新しいレベルに対してas.factorを実行するかどうかによって、出力は変化しません。

それから魚の別のレベル(今:Z、O、2)変化のみわずかに変更出力:魚(Z、O、T)の最後のレベルを変更した後

   Sum Sq Df F value Pr(>F)  
(Intercept) 7.6351 1 12.8455 0.0007557 *** 
Location  13.1220 1 22.0767 2.020e-05 *** 
Time   15.7462 2 13.2459 2.328e-05 *** 
Fish   24.6825 2 20.7632 2.531e-07 *** 
Nutrient  17.6604 2 14.8562 8.243e-06 *** 
Fish:Nutrient 13.7799 4 5.7959 0.0006352 *** 
Residuals  30.3134 51 

出力はわずかに変更されました。

   Sum Sq Df F value Pr(>F)  
(Intercept) 5.3556 1 9.0104 0.0041488 ** 
Location  13.1220 1 22.0767 2.020e-05 *** 
Time   15.7462 2 13.2459 2.328e-05 *** 
Fish   24.6825 2 20.7632 2.531e-07 *** 
Nutrient  17.7692 2 14.9477 7.780e-06 *** 
Fish:Nutrient 13.7799 4 5.7959 0.0006352 *** 
Residuals  30.3134 51 

上記の出力は、以下に表示される最後の3つと同じです。

そして、私は魚を新しいレベル(z、o、t)に保ちながら栄養素(元々は0,4,8)を操作しました。

   Sum Sq Df F value Pr(>F)  
(Intercept) 27.783 1 46.7425 9.854e-09 *** 
Location  13.122 1 22.0767 2.020e-05 *** 
Time   15.746 2 13.2459 2.328e-05 *** 
Fish   14.578 2 12.2628 4.484e-05 *** 
Nutrient  17.769 2 14.9477 7.780e-06 *** 
Fish:Nutrient 13.780 4 5.7959 0.0006352 *** 
Residuals  30.313 51 

変更する二つのレベル(C、F、8):私は、最初の(8、C、4)に栄養を変え

    Sum Sq Df F value Pr(>F)  
(Intercept) 51.708 1 86.9940 1.313e-12 *** 
Location  13.122 1 22.0767 2.020e-05 *** 
Time   15.746 2 13.2459 2.328e-05 *** 
Fish   0.396 2 0.3332 0.7182029  
Nutrient  17.769 2 14.9477 7.780e-06 *** 
Fish:Nutrient 13.780 4 5.7959 0.0006352 *** 
Residuals  30.313 51 

もう一つの大きな変更! SASのものに最も近い結果を

三レベルフィッシュにおける別の大きな変化(C、F、E)結果:

   Sum Sq Df F value Pr(>F)  
(Intercept) 5.3556 1 9.0104 0.0041488 ** 
Location  13.1220 1 22.0767 2.020e-05 *** 
Time   15.7462 2 13.2459 2.328e-05 *** 
Fish   24.6825 2 20.7632 2.531e-07 *** 
Nutrient  17.7692 2 14.9477 7.780e-06 *** 
Fish:Nutrient 13.7799 4 5.7959 0.0006352 *** 
Residuals  30.3134 51  

場所はまた、2つのレベルの本来数値変数であった(1 、2)。

   Sum Sq Df F value Pr(>F)  
(Intercept) 24.474 1 41.1763 4.535e-08 *** 
Location  13.122 1 22.0767 2.020e-05 *** 
Time   15.746 2 13.2459 2.328e-05 *** 
Fish   24.683 2 20.7632 2.531e-07 *** 
Nutrient  17.769 2 14.9477 7.780e-06 *** 
Fish:Nutrient 13.780 4 5.7959 0.0006352 *** 
Residuals  30.313 51 

そして、二つのレベル(Y、Z)::だから私は、(Y、2)1つのレベルを変更し

   Sum Sq Df F value Pr(>F)  
(Intercept) 5.3556 1 9.0104 0.0041488 ** 
Location  13.1220 1 22.0767 2.020e-05 *** 
Time   15.7462 2 13.2459 2.328e-05 *** 
Fish   24.6825 2 20.7632 2.531e-07 *** 
Nutrient  17.7692 2 14.9477 7.780e-06 *** 
Fish:Nutrient 13.7799 4 5.7959 0.0006352 *** 
Residuals  30.3134 51 

が変化しない場所を操作し、同じ時間のために行きます。だからこそ、場所、時間、魚の栄養素の相互作用は、SASのものと同じで、なぜなら魚や栄養素の結果は常に変化し、決して同じではないのですか?

このような巨大な変更は、データシートのわずかな変更だけで発生するものであり、それ自体は結果に影響を与えないはずです。私は上記のモデルを全く同じ条件で動かすためにあらゆる努力をしましたが、唯一の変更は私が言及したデータシートに対するものです。

同様の操作で完全に構成されたデータを使用して、同様の変数とレベルのセットで問題を再現できました。

答えて

0

ここでRが順序付けられた要素を使用しているように見えるので、レベル名を変更すると、順序(アルファベット順はデフォルト)、したがってフィットが変更されます。お試しくださいdata$Fish <- factor(data$Fish,ordered=FALSE) - と栄養素のために。 Locationに2つのレベルしかない場合は問題ありません。時間はおそらく順序付けされるべきです。

+0

それはうまくいった。ありがとう! – Matt

関連する問題