2013-03-26 44 views
0

我需要計算data.frame的協方差,但如果data.frame只有一行,我會得到NaN的矩陣。 我應該如何處理data.frame與一行的協方差?R cov(x)其中x是data.frame,有一行

那麼主要問題是: 我從正態分佈的觀察(是的,有時它太小) 我要計算均值和方差矩陣最大化似然函數

如果只有一個觀察它可能?

+0

要將數據幀與一行的協方差取爲不合理,因爲協方差被定義爲在兩組或更多組數據之間。你爲什麼想要採取一行的協方差? – peeol 2013-03-26 08:24:58

+0

我想要自己的協力矢量 – 2013-03-26 08:32:35

+0

這與方差是一樣的。嘗試改變矢量的方差。 – peeol 2013-03-26 08:34:22

回答

0

?cov

The denominator n - 1 is used which gives an unbiased estimator of 
the (co)variance for i.i.d. observations. These functions return 
‘NA’ when there is only one observation (whereas S-PLUS has been 
returning ‘NaN’), and fail if ‘x’ has length zero. 

如果需要通過n而不是n-1劃分摘錄,我建議寫一個特殊的協方差函數。

+0

是否有任何建立在一個或其太少罕見有一個觀察 在我的程序中改變一些常數避免數據。有一行的幀 – 2013-03-27 17:52:10

+0

您可以測試單個觀察值,如果爲真,則構建歸零矩陣。 – ndoogan 2013-03-27 18:49:28

+0

歸零是不好的,因爲它不能是協變矩陣的gause分佈 如果你熱衷於加工學習和概率你會建議做什麼與單一的obseervation矩陣 可能我應該計算協方差與n作爲分母,當我只有一個觀察 – 2013-03-27 20:11:22

0

如果您只有一個觀察值,則未定義協方差。因此,NaN的矩陣是完全合理的輸出。

至於如何在問題的背景下最好地處理這個問題,如果不瞭解更多關於您的問題的信息,就無法說出來。

+0

可能是我從統計課程中誤解了一些東西,但協方差可以在數學中定義爲一個矢量? – 2013-03-26 08:29:30

+0

@YaroslavKishchenko:這是另一回事:'var(c(1,2,3,4))'。 – NPE 2013-03-26 08:35:14

+0

var和cov之間有什麼區別 我的觀察是來自多變量分佈 – 2013-03-26 08:38:23

0

基於您的評論,請執行以下操作:

檢查數據幀只有一行。如果它有一行,請使用R中的var函數而不是cov函數查找差異。如果它有多行,請使用cov

請注意,向量與其自身的協方差與該向量的方差相同。

+0

謝謝我現在得到,但一個小問題,以清除 我從未見過covar功能之前我使用cov 他們是一樣的嗎? – 2013-03-26 08:43:27

+0

是的,我的錯誤。 'cov'函數是用於協變的正確函數(沒有函數稱爲'covar',我記錯了)。 – peeol 2013-03-26 08:45:17

+0

現在我得到了謝謝 – 2013-03-26 08:45:53

相關問題