كيفية عمل إنحدار بسيط regression


(mohds) #1

أريد معرفة كيفية عمل إنحدار بسيط حسب معادلة الأنحدار التالية:

[FONT=Courier New][SIZE=2][COLOR=#228b22]
[SIZE=2][FONT=Courier New][COLOR=#228b22][SIZE=2][FONT=Courier New][COLOR=#228b22]y=s+bX+e regression con bajo precio cartera[/color][/font][/size]
[SIZE=2][FONT=Courier New][COLOR=#228b22]% y = depiendente variable[/color][/font][/size]
[SIZE=2][FONT=Courier New][COLOR=#228b22]% x = indepiendente variable[/color][/font][/size]
[SIZE=2][FONT=Courier New][COLOR=#228b22]% s = interspecto.[/color][/font][/size]
[SIZE=2][FONT=Courier New][COLOR=#228b22]% b = coefficient.[/color][/font][/size]
[SIZE=2][FONT=Courier New][COLOR=#228b22]% e = error[/color][/font][/size]
 
 
[/color][/font][/size][/color][/size][/font][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][COLOR=#000000] i=N;[/color][/size][/font]
[SIZE=2][FONT=Courier New]x= fechasbajo(i,:);[/font][/size]
[SIZE=2][FONT=Courier New]x(:,1:3)=[];[/font][/size]
[SIZE=2][FONT=Courier New]y=bajodes;[/font][/size]
[SIZE=2][FONT=Courier New]b=glmfit(y,x);[/font][/size]
[SIZE=2][FONT=Courier New][r,c]=size(x);[/font][/size]
[SIZE=2][FONT=Courier New][w.u]=size(y);[/font][/size]
[SIZE=2][FONT=Courier New]n=length(x);[/font][/size]
[SIZE=2][FONT=Courier New][b,bint] = regress(y,x,n);[/font][/size]
[SIZE=2][FONT=Courier New]R=corrcoef(y,x);[/font][/size]
[SIZE=2][FONT=Courier New]b1=y\x;[/font][/size]
[SIZE=2][FONT=Courier New]b=regress(y,x);[/font][/size]
 
[/size][/font][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]end[/color][/size][/font]
[/color][/size][/font][/color][/size][/font]

هل الأكواد صحيحة المستخدمة لأن بيتا والسلوب لم يطلعوا لي أرشدوني جزاكم الله خيراً


#2

أخى العزيز أرفق ملف البيانات فى الموضوع
fechasbajo


(mohds) #3

المعادلة الصح هي حسب الكود التالي

[FONT=Courier New][SIZE=2][COLOR=#228b22][FONT=Courier New][SIZE=2][COLOR=#228b22][FONT=Courier New][SIZE=2][COLOR=#228b22]
%Programa que creas una regression contiene rentabilidad y con preciobajo cartera
%como el modelo siguiente
% y=s+bX+e regression con bajo precio cartera
% y = depiendente variable
% x = indepiendente variable
% s = interspecto.
% b = slop coefficient.
% e = error

[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]for[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][COLOR=#000000] i=1;[/color]
xx=mean(bajodes(2:101,:));
dejo=bajodes(2:101,:).*xx;
y=bajodes;
[r,c]=size(xx);
[w,u]=size(y);
regstats(y,xx,[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'linear'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]);
stats = regstats([/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'beta'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'adjrsquare'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]...[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][COLOR=#228b22][FONT=Courier New][SIZE=2][COLOR=#228b22][FONT=Courier New][SIZE=2][COLOR=#228b22])
[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]whichstats = {[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'yhat'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'r'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]}; 
stats = regstats(y,xx,[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'linear'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],whichstats)


[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff][FONT=Courier New][SIZE=2][COLOR=#0000ff]end
[/color][/size][/font][/color][/size][/font][/color][/size][/font]

لكن المشكلة عندي عندما أطلع المتوسط في المصفوفة يطلع لي أرقام كثيرة في صف واحدفقط وأنا أريد متوسط كل صف من 2إلى غاية 101كل واحد لحاله كيف أخي أحمد جزاك الله خيراً


(mohds) #4

لقد أرسلت لك الفايل أنظر أخي أحمد للمصفوفةbajodes هي التي أخرج منها المتوسط وأضربه في العائد هي نفسها bajodesوهل يمكن أخرج متوسط كل صف في المصفوفة


#5

أخى العزيز أرفق الفايل فى المنتدى او ضع رابط له
ليس انا فقط من يساعدك ربما قد تجد شخص أخر قد يساعدك أيضا
وبالنسبة للكود الذى أرسلته فهو يحتوى على كلام باللغة الأسبانية وهذا غير مسموح به فقط اللغة العربية او اللغة الانجليزية لانه لا أحد يعرف الاسبانية الا انت ولا أحد سيساعدك بهذه الصورة .


(mohds) #6

جزاك الله خيراً عني أخي أحمد الفايل حجمه كبير جداً أرسل لي رابط أحمله وأظهره على صفحات المنتدى

xx=mean( bajodes(2,:));

لقد حاولت أطلع متوسط كل صف لحاله 1،2،3إلي101بالمعادلة ولكن الإجابة NAN


#7

يمكنك رفع الملف على أحدى مراكز الرفع مثل الرابد شير ومن ثم ضع رابط التحميل فى المنتدى


(mohds) #8

http://rapidshare.com/files/404312551/matlab.mat.html

هذا الرابط للفايل أخي أحمد جزاك الله خيرا وعلى كل الأعضاء التفاعل مع الموضوع


#9
>> bajodes
??? Undefined function or variable 'bajodes'.

أخى العزيز هذا المتغير غير موجود فى الملف الذى ارفقته نرجو التأكد أولا قبل السؤال لعدم أضاعة وقت من يحاول ان يساعدك


(mohds) #10

هذا المتغير bajodesتقدر تطلعه من قائمةeditor ملفbajom جاهزة المعادلات أضغط الزر الأخضر change directoryفقط وتطلع النتجية أخي أحمد والمشاركين الأخرين وجزاك الله خيراً أخي وعزيزي أحمد


#11

أخى العزيز ما أرسله فقط هو الملف matlab.mat ولا يحتوى على ما ذكرته
من فضلك نرجو التوضيح


(mohds) #12

http://rapidshare.com/files/404455551/bajom.m.html
أخي أحمد لقد أعتقدت أن التحميل أخذ معه صفحةeditorولكن شكرا وجزاك الله خيراً هذا رابط المتغير وهو جاهز فقط أضغط على السهم الأخضر


#13

أخى العزيز اتمنى انك تتأكد من كل شيىء قبل ارسال الموضوع حتى لا تسبب فى ازعاج واضاعة وقت من يقوم بمساعدتك وهذا ما حدث بالفعل كل مرة أحاول تنفيذ البرامج اكتشف انه هناك شيىء ناقص وانت لم ترسله اعتقد انك لو أرسلت كل شيىء من البداية كانت الأومور أسهل من ذلك.

وبالنسبة للأمر mean فانه يقوم بحساب المتوسط لكل عمود واذا كانت حساب المتوسط لكل صف قم بعمل transpose للمتغير


(mohds) #14

أخي وعزيزي أحمد لقد أرسلت لكم كل التطبيق كامل من بداية أول مشاركة وهذا تابع للموضوع وأمشي حسب طلب المشرف كل يوم يطلع لي مشكلة لذلك تحملوني شوي كوني مبتدئي في هذا الموضوع وأستخدام نظام ماتلاب


#15

انت لم ترسل التطبيق كامل
اولا أرسلت كود وبعدها أرسلت كود أخر وقلت الكود الأول خطأ
وبعدها أرسلت ملف البيانات حيث لم تضعه فى البداية
ثم بعد ذلك أرسلت ام فايل أخر
يعنى وضعت موضوعك على أربعة مراحل وكل مرة أحاول ان اشوفك المشكلة ألافى ان فى شيىء ناقص


(mohds) #16

جزاك الله خيراً أخي أحمد أولاً :تطبقت الذي قلت لي transpose ولكن الصف الأول يطلع لي له وسط وهو رقم للدلالة على الشركات كيف أتجنب الصف الأول هذا.ثانياً هذه الفايلات حسب الترتيب من التطبيق الأول إلى الرابع الأخير أرشدني أين الخطأ أخي وعزيزي أحمد جزا لله خيراً

http://rapidshare.com/files/404765306/identificarcarteras_2.m

http://rapidshare.com/files/404766576/bajom.m

http://rapidshare.com/files/404766996/rentabili.m

http://rapidshare.com/files/404767116/regression2.m


(mohds) #17

أخي وعزيزي أحمد الtranspose يعكس الأعمدة لصفوف وكذلك الأمر بالنسبة للصفوف تتحول إلى أعمدة
هذا الكود شبه مقبول التالي ولكنه مازال يعمل لي متوسط لأرقام الشركات لذلك أشك في صحته

 [FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]
xx= mean( bajodes(2:101) );
y=xx.*bajodes;
[/size][/font][/size][/font]

#18

طبق الأمر الاتى

xx= mean( bajodes(2:101)' );

(mohds) #19

أخي وعزيزي أحمد هي نفس النتجية سواء بالكود السابق أم الحالي ولكن المشكلة في ضرب المتوسط في عائد الأسهم اليومية تقربياً صح ولكن أيضاً يتم ضرب الصف الأول وهو ليس عوائد بل رقم الشركة كيف أستثني الصف الأول من الضرب بيحث أبدأ من الصف 2الى غاية 101جزاك الله خيراً وشكراً على التفاعل مع الموضوع البحثي وهذه جميع الأكواد المستخدمة

[FONT=Courier New][SIZE=2]
[SIZE=2][FONT=Courier New]i=1;[/font][/size]
[SIZE=2][FONT=Courier New]xx= mean( bajodes(2:101)' );[/font][/size]
[SIZE=2][FONT=Courier New]xx1=xx.*bajodes;[/font][/size]
[SIZE=2][FONT=Courier New]y=bajodes;[/font][/size]
[SIZE=2][FONT=Courier New][r,c]=size(xx1);[/font][/size]
[SIZE=2][FONT=Courier New][w,u]=size(y);[/font][/size]
[SIZE=2][FONT=Courier New]regstats(y,xx1,[/font][/size][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'linear'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]);[/size][/font]
[SIZE=2][FONT=Courier New]stats = regstats([/font][/size][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'beta'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'adjrsquare'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]);[/size][/font]
[SIZE=2][FONT=Courier New]whichstats = {[/font][/size][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'yhat'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],[/size][/font][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'r'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]}; [/size][/font]
[SIZE=2][FONT=Courier New]stats = regstats(y,xx1,[/font][/size][/size][/font][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0][FONT=Courier New][SIZE=2][COLOR=#a020f0]'linear'[/color][/size][/font][/color][/size][/font][/color][/size][/font][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2],whichstats)[/size][/font]
[SIZE=2][FONT=Courier New]yhat = stats.yhat;[/font][/size]
[SIZE=2][FONT=Courier New]r = stats.r[/font][/size]
[/size][/font]

الإجابة يعني في خطأ

??? Error using ==> regstats at 113
RESPONSES must have a single column.
Error in ==> regression2 at 16
    regstats(y,xx1,'linear');

(mohds) #20

هذا المتوسط