簡體   English   中英

如何在r中設置異方差數據的加權最小二乘?

[英]How to set a weighted least-squares in r for heteroscedastic data?

我正在對人口普查數據進行回歸,其中我的因變量是預期壽命,我有八個自變量。 數據匯總為城市,因此我有數千個觀測值。

我的模型雖然有些異方差。 我想運行加權最小二乘法,其中每個觀測值都按城市人口加權。 在這種情況下,這意味着我想通過人口平方根的倒數來加權觀察。 然而,我不清楚什么是最好的語法。 目前,我有:

Model=lm(…,weights=(1/population))

那是對的嗎? 或者應該是:

Model=lm(…,weights=(1/sqrt(population)))

(我在這里發現了這個問題: 加權最小二乘 - R但它沒有說明R如何解釋權重參數。)

?lm :“權重:在擬合過程中使用的可選權重向量。應該是NULL或數字向量。如果非NULL,加權最小二乘用於權weightsweights (即最小化和(W *) e ^ 2));否則使用普通的最小二乘法。“ R不對權重參數做任何進一步的解釋。

所以,如果你想要最小化的是(從每個點到擬合線的平方距離* 1 / sqrt(人口)那么你想要...weights=(1/sqrt(population)) 。如果你想要為了最小化(從每個點到擬合線的平方距離* 1 /總體),你需要...weights=1/population

至於哪一個最合適...這是CrossValidated的問題!

為了回答你的問題,盧卡斯,我想你想要權重=(1 /人口)。 R將權重參數化為與方差成反比,因此以這種方式指定權重等於假設誤差項的方差與城市的人口成比例,這是此設置中的常見假設。

但檢查一下假設! 如果誤差項的方差確實與種群大小成比例,那么如果您將每個殘差除以其相應樣本大小的平方根,則殘差應具有恆定方差。 請記住,將隨機變量除以常數會導致方差除以該常數的平方。

以下是檢查方法:從回歸中獲得殘差

residuals = lm(..., weights = 1/population)$residuals

然后將殘差除以總體方差的平方根:

standardized_residuals = residuals/sqrt(population)

然后比較對應於人口規模下半部分的殘差中的樣本方差:

variance1 = var(standardized_residuals[population < median(population)])

對應於人口規模上半部分的殘差中的樣本方差:

variance2 = var(standardized_residuals[population > median(population)])

如果這兩個數字, variance1variance2相似,那么你正在做正確的事情。 如果它們完全不同,那么可能違反了您的假設。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM