请教多元线性回归C++算法或程序

请教多元线性回归C++算法或程序,第1张

多元线性回归大含袜C++程序滚激:

Dim a() As String, b() As String

Private Sub Command1_Click()

Dim temp1 As String

Dim i As Integer, k As Integer

temp1 = Text1.Text

a = Split(temp1, ",")

lenolds = Len("->")

For i = 0 To UBound(a)

s = a(i)

j = InStr(s, "->")

Do While j >0

ReDim Preserve b(i, k)

b(i, k) = Val(Left(s, j + lenolds))

s = Left(s, j - 1) + "->" + Mid(s, j + lenolds + 1)

k = k + 1

j = InStr(s, "老侍->")

Loop

ReDim Preserve b(i, k)

b(i, k) = s

Next i

For i = 0 To UBound(a)

For j = 0 To k

Text2.Text = Text2.Text + b(i, j)

Next j

Next i

End Sub

一元线性回归是一个主要影响因素作为自变量来解释因变量的变化,在现实问题研究中,因变量的变化往往受并乎缺几个重要因素的影响,此时就需要用两个或两个以上的影响因素作为自变量来解释因变量的变化,这就是多元回归亦称多重回归。

当多个自变量与因变量之间是线性关系时,所进行的回归分析就是多元线性回归。设y为因变量,x_1,x_2,\cdotsx_k为自变量,并且自变量与因变量之间为线性关系时,则多元线性回归模型为:y=b_0+b_1x_1+b_2x_2+\cdots+b_kx_k+e其中,b0为常数项,b_1,b_2,\cdotsb_k为回归系数。

b1为x_2,x_3\cdotsx_k固定时,x1每增加一个单位对y的效应,即x1对y的偏回归系数;同理b2为x1,xk固顷森定时,x2每增加一个单绝辩位对y的效应,即,x2对y的偏回归系数,等等。如果两个自变量x1,x2同一个因变量y呈线性相关时,可用二元线性回归模型描述为:y=b0+b1x1+b2x2+e。

进行多元线性回归统计数F, t 测验的小程序:

clear,clc

x=rand(50,10)y=rand(50,1)% example

[n,k]=size(x)

X=[ones(n,1),x]%构建结构阵X,

A=X'*X%求算信息阵A,

C=inv(A)%求算信息阵的逆阵,

b=X\y, % 求算回归统计数向量,其中第一行为回归截陵升距a,

RSS=y'*y-b'*X'*y, %求算离回归平方和,

MSe=RSS/(n-k-1),%求算离回归方差,

Up=b.*b./diag(C)%求算偏回归平方和,其中数汪闷第一行是a与0差异的偏平方和,

F=Up/MSe,%F测验,其中第一行为a与0差异的F值,

sb=sqrt(MSe*diag(C))%求算回归统计数标准误,

t=b./sb, % 回归统计数的 t 测验,其中第一行为a与0差异的t测验值。

[t, t.^2, F],%验证t^2=F

SSy=var(y)*(n-1)

R2=(SSy-RSS)/SSy

顺便说一下,你的ttest(x,m)的 t 测验指的是单个样本(平均数)与 m 之间差异显著薯弯性的 t 测验,而非多元线性回归系数的 t 测验。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8254674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存