我一直在使用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的功能,并手动添加砝码。更简单的解决方案