2014-10-13 11 views
5

यह मेरे सम्मान थीसिस के लिए है! मेरे सलाहकार को पता नहीं है कि आर का उपयोग कैसे करें और मुझे नहीं पता कि किसी और चीज का उपयोग कैसे करें, इसलिए मैं यहां हूं।आर में एनोवा: आजादी की डिग्री लगभग सभी बराबर 1

> d.weight 
    R N P C D.weight 
1 1 0 0 GO  45.3 
2 2 0 0 GO  34.0 
3 3 0 0 GO  19.1 
4 4 0 0 GO  26.6 
5 5 0 0 GO  23.5 
6 1 45 0 GO  22.1 
7 2 45 0 GO  15.5 
8 3 45 0 GO  23.4 
9 4 45 0 GO  15.8 
10 5 45 0 GO  42.9 
... 

और इतने पर:

मैं किसी डेटा सेट है कि इस तरह शुरू होता है।

  • आर प्रतिनिधि है और उनमें से 5 (1-5) हैं।
  • एन नाइट्रोजन स्तर है, और 5 भी हैं (0, 45, 90, 180, 360)।
  • पी फॉस्फोरस स्तर है, और 5 भी हैं (0, 35, 70, 140, 280)।
  • सी पौधे संयोजन है, और 4 (जाओ, जीबी, LO, एलबी) हैं।
  • डी। वजन ग्राम में सूखा वजन है।

हालांकि, जब मैं एक एनोवा करता हूं तो मुझे स्वतंत्रता की गलत डिग्री मिलती है। मैं आमतौर पर डेटा के उस पूर्ण सेट के सबसेट पर अपने एनोवा चलाता हूं, लेकिन आइए केवल एक विश्लेषण करें जो मैं वास्तव में अन्यथा नहीं करता हूं, बस आप देख सकते हैं कि लगभग सभी डीएफ गलत हैं।

> example.aov=aov(D.weight ~ R+N+P+C, data=d.weight) 
> summary(example.aov) 
     Df Sum Sq Mean Sq F value Pr(>F)  
R    1 1158 1158 9.484 0.00226 ** 
N    1 202  202 1.657 0.19900  
P    1 11040 11040 90.408 < 2e-16 *** 
C    3 41032 13677 112.010 < 2e-16 *** 
Residuals 313 38220  122 

तो, मूल रूप से, केवल एक ही सही है सी कारक है। क्या ऐसा इसलिए है क्योंकि इसमें संख्याओं के बजाय अक्षर हैं?

मुझे कहीं पता चला कि अगर मैं प्रत्येक शब्द के साथ इंटरैक्शन() लिखता हूं, तो मुझे सही डीएफ मिल जाता है, लेकिन मुझे नहीं पता कि यह समग्र रूप से करने के लिए सही बात है या नहीं। उदाहरण के लिए:

> example.aov2=aov(D.weight ~ interaction(R)+interaction(N)+interaction(P)+interaction(C), data=d.weight) 
> summary(example.aov2) 
       Df Sum Sq Mean Sq F value Pr(>F)  
interaction(R) 4 7423 1856 19.544 2.51e-14 *** 
interaction(N) 4 543  136 1.429 0.224  
interaction(P) 4 13788 3447 36.301 < 2e-16 *** 
interaction(C) 3 41032 13677 144.042 < 2e-16 *** 
Residuals  304 28866  95 

मैं इसे सी कारक के साथ करने की कोशिश की है, तो यह कुछ भी में गड़बड़ केवल देखने के लिए:

> example.aov3=aov(D.weight ~ C, data=d.weight) 
> summary(example.aov3) 
      Df Sum Sq Mean Sq F value Pr(>F)  
C    3 41032 13677 85.38 <2e-16 *** 
Residuals 316 50620  160     
> 
> example.aov4=aov(D.weight ~ interaction(C), data=d.weight) 
> summary(example.aov4) 
       Df Sum Sq Mean Sq F value Pr(>F)  
interaction(C) 3 41032 13677 85.38 <2e-16 *** 
Residuals  316 50620  160 

और यह एक ही लग रहा है। क्या मुझे हर जगह बातचीत() जोड़ना चाहिए?

सहायता के लिए धन्यवाद!

+2

अपने न्यूमेरिक चर को कारकों में परिवर्तित करें ... उदा। 'facs <- सी (" आर "," एन "," पी "); d_weight [facs] <- lapply (d.weight [facs], कारक) ' –

+0

वाह। मैं 1h की तरह पागल हो गया, यह खुद को समझने की कोशिश कर रहा था, और आपने इसे 1 मिनट से भी कम समय में तय किया। धन्यवाद। – XGF

+0

ठीक है, जिसने एक समस्या तय की है लेकिन अब यह एक और कारण है। जब मैं एक्स-अक्ष में एन या पी के साथ लाइन प्लॉट बनाने की कोशिश करता हूं, चूंकि एन और पी निरंतर चर नहीं हैं, तो मुझे इसके बजाय एक बार साजिश मिलती है ... आश्चर्यजनक रूप से पर्याप्त है। मुझे एन और पी के बारे में कुछ मामलों में निरंतर सोचने के लिए कार्यक्रम की ज़रूरत है, इसलिए ... मुझे क्या करना चाहिए? – XGF

उत्तर

4

आर यह निर्धारित करता है कि क्या यह numeric या factor चर हैं या नहीं, यह निर्धारित करके यह वैरिएबल (एनोवा-प्रकार विश्लेषण) या निरंतर (प्रतिगमन-प्रकार विश्लेषण) के रूप में वैरिएबल का इलाज करना चाहिए या नहीं। अधिकांश बस, आप के माध्यम से

facs <- c("R","N","P") 
d_weight[facs] <- lapply(d.weight[facs],factor) 

कारकों को अपने भविष्यवक्ता (स्वतंत्र) चर परिवर्तित कर सकते हैं आप अधिलेखित आप की तरह

for (varname in facs) { 
    d_weight[[paste0("f",varname)]] <- factor(d_weight[[varname]]) 
} 

कुछ कर सकते हैं के बजाय सहायक चर बनाने का एक अधिक कॉम्पैक्ट हो सकता है चाहते हैं ऐसा करने का तरीका है लेकिन इसे सेवा देना चाहिए ...

+0

फॉलो अप प्रश्न: क्या आपने "d_weight [facs]" लिखा था, या आप "d.weight [facs]" लिखने का मतलब था, तो क्या आप एक नया चर बनाने का मतलब रखते थे? – daOnlyBG

संबंधित मुद्दे