我一直在使用MatLab作爲統計工具。我喜歡我可以自定義和編碼自己。 我很高興地發現,在MatLab中進行加權線性迴歸相當簡單。作爲一個稍微愚蠢的例子,我可以加載「carbig」數據文件,並將美國汽車的馬力和里程數與其他國家的汽車數進行比較,但決定我只信任8缸汽車。從8缸汽車如何比較MatLab中的兩個加權迴歸?
load carbig
w=(Cylinders==8)+0.5*(Cylinders~=8)%1 if 8 cylinders, 0.5 otherwise.
for i=1:length(org)
o(i,1)=strcmp(org(i,:),org(1,:));%strcmp only works on one string.
end
x1=Horsepower(o==1)
x2=Horsepower(o==0)
y1=MPG(o==1)
y2=MPG(o==0)
w1=w(o==1)
w2=w(o==0)
lm1=fitlm(x1,y1,'Weights',w1)
lm2=fitlm(x2,y2,'Weights',w2)
這種方式,數據將計爲一個數據點,和數據FRM 3,4,5,6-筒車將計爲一半的數據點。
問題是,兩個迴歸比較明顯的方法是使用協方差分析,其中MATLAB具有的功能爲:
aoctool(Horsepower,MPG,o)
此功能線性迴歸對兩組進行比較,但我還沒有找到一個明顯的方法來包含權重。
我懷疑我可以仔細看看ANCOVA的功能,並手動添加砝碼。更簡單的解決方案