How can I fit linear regression model with the measured data with a known intercept?
7 次查看(过去 30 天)
显示 更早的评论
I am working on close-in reference path loss model in MATLAB, where the code is given below:
PL_dB= file(:,2); dis_inch=file(:,1); dis_m= dis_inch * 0.0254
c = 3*10^8; %in light speed in free space fc = 2.4*10^9; lamda=c/fc; do =0.0254; % free space refernce distance for 5.8Ghz 1 inch=0.3048m PL_do = 20*log10(4*pi*do/lamda);% y intercept dis_dB = 10* log10 (dis_m/do); % slope of the regression line/ path loss exponent, n % find the z-score of measurement values z_dis = dis_dB- mean(dis_dB)/sqrt(var(dis_dB)); z_PL = PL_dB- mean(PL_dB)/sqrt(var(PL_dB)); r= sum(z_dis.* z_PL)/ length(z_PL) % correlation coefficient
In this case, the intercept is known. How can I find the linear regression plot based on y and x-axis data?
0 个评论
采纳的回答
Star Strider
2018-2-2
You have not stated what ‘x’ and ‘y’ are in your code. However, knowing that ‘PL_do’ is the desired y-intercept, I would do:
b = x(:) \ [y(:)-PL_do]; % Linear Regression
then to estimate a linear regression line to plot with the desired x-data:
y_fit = x(:)*b + PL_do;
You can then plot ‘y_fit’ as a function of ‘x’.
0 个评论
更多回答(2 个)
Mahfuza Khatun
2018-2-2
编辑:Mahfuza Khatun
2018-2-2
1 个评论
Star Strider
2018-2-3
As always, my pleasure!
The revised code (using your variables) are:
b = dis_dB(:) \ [PL_dB(:)-PL_do]; % Linear Regression
y_fit = dis_dB(:)*b + PL_do;
The regression that calculates ‘b’ will have a 0 intercept. Adding ‘PL_do’ to the evaluated line will produce the linear regression with the y-intercept you want.
mer potter
2022-6-28
Hello. Do you still happen to have a code for this problem, cause I have a very simillar asignment and i'm completely lost. Thank you in advance.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear Regression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!