我需要計算data.frame的協方差,但如果data.frame只有一行,我會得到NaN的矩陣。 我應該如何處理data.frame與一行的協方差?R cov(x)其中x是data.frame,有一行
那麼主要問題是: 我從正態分佈的觀察(是的,有時它太小) 我要計算均值和方差矩陣最大化似然函數
如果只有一個觀察它可能?
我需要計算data.frame的協方差,但如果data.frame只有一行,我會得到NaN的矩陣。 我應該如何處理data.frame與一行的協方差?R cov(x)其中x是data.frame,有一行
那麼主要問題是: 我從正態分佈的觀察(是的,有時它太小) 我要計算均值和方差矩陣最大化似然函數
如果只有一個觀察它可能?
從?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
劃分摘錄,我建議寫一個特殊的協方差函數。
是否有任何建立在一個或其太少罕見有一個觀察 在我的程序中改變一些常數避免數據。有一行的幀 – 2013-03-27 17:52:10
您可以測試單個觀察值,如果爲真,則構建歸零矩陣。 – ndoogan 2013-03-27 18:49:28
歸零是不好的,因爲它不能是協變矩陣的gause分佈 如果你熱衷於加工學習和概率你會建議做什麼與單一的obseervation矩陣 可能我應該計算協方差與n作爲分母,當我只有一個觀察 – 2013-03-27 20:11:22
如果您只有一個觀察值,則未定義協方差。因此,NaN
的矩陣是完全合理的輸出。
至於如何在問題的背景下最好地處理這個問題,如果不瞭解更多關於您的問題的信息,就無法說出來。
可能是我從統計課程中誤解了一些東西,但協方差可以在數學中定義爲一個矢量? – 2013-03-26 08:29:30
@YaroslavKishchenko:這是另一回事:'var(c(1,2,3,4))'。 – NPE 2013-03-26 08:35:14
var和cov之間有什麼區別 我的觀察是來自多變量分佈 – 2013-03-26 08:38:23
基於您的評論,請執行以下操作:
檢查數據幀只有一行。如果它有一行,請使用R中的var
函數而不是cov
函數查找差異。如果它有多行,請使用cov
。
請注意,向量與其自身的協方差與該向量的方差相同。
謝謝我現在得到,但一個小問題,以清除 我從未見過covar功能之前我使用cov 他們是一樣的嗎? – 2013-03-26 08:43:27
是的,我的錯誤。 'cov'函數是用於協變的正確函數(沒有函數稱爲'covar',我記錯了)。 – peeol 2013-03-26 08:45:17
現在我得到了謝謝 – 2013-03-26 08:45:53
要將數據幀與一行的協方差取爲不合理,因爲協方差被定義爲在兩組或更多組數據之間。你爲什麼想要採取一行的協方差? – peeol 2013-03-26 08:24:58
我想要自己的協力矢量 – 2013-03-26 08:32:35
這與方差是一樣的。嘗試改變矢量的方差。 – peeol 2013-03-26 08:34:22