วันอาทิตย์ที่ 16 สิงหาคม พ.ศ. 2552

Code ตัวอย่างการวิเคราะห์สมการการถดถอยอย่างง่าย


ตัวอย่างการวิเคราะห์สมการการถดถอย จากข้อมูลความสูง c และน้ำหนัก d ของชายไทยที่สุ่มตัวอย่างมา 10 คน ดังนี้
ซี่งในกรณีนี้จะใช้ for loop ในการคำนวณ
c=[150 160 162 165 170 175 175 178 180 185];
d=[50 61 68 73 77 82 84 89 91 98];
n=10;
for i= 1
p=b(c,d,n);
q=a(c,d,p);
z=reg(q,p,c);
plot(c,d,'ob')
hold on
plot(c,z,'-r')
end
outputที่ได้จากการวิเคราะห์การถดถอยอย่างง่ายจะแสดงผลออกมาในรูปของกราฟเส้นตรง

ตัวอย่าง while loop ที่ใช้คำนวณ
c=[150 160 162 165 170 175 175 178 180 185];
d=[50 61 68 73 77 82 84 89 91 98];
n=10;
i=0;
while (i==0)
p=b(c,d,n);
q=a(c,d,p);
z=reg(q,p,c);
plot(c,d,'ob')
hold on
plot(c,z,'-r')
i=i+1;
end
ผลที่แสดงออกมาก็จะเหมือนกับ for loop
โดย ฟังก์ชันหลักที่ใช้ในการคำนวณถ้าหากเป็นข้อมูลใดๆจะได้เป็น
function reg=reg(a,b,x)
reg=a+(b.*x)

function a=a(x,y,b)
a=mean(y)-b.*mean(x)

function b=b(x,y,n)
b=(sum(x.*y)-(sum(x).*sum(y))./n)./(sum(x.^2)-(sum(x)^2)./n)

x=[x1 x2 x3 ... xn];
y=[y1 y2 y3 ... yn];
n=จำนวนข้อมูล;
for i= 1
p=b(x,y,n);
q=a(x,y,p);
z=reg(q,p,x);
plot(x,y,'ob')
hold on
plot(x,z,'-r')
end

ไม่มีความคิดเห็น:

แสดงความคิดเห็น