#資料預處理
data <- student_data[,-
1]#刪除缺失值
lm_data <- na.omit(data)
#散點圖
plot(height,weight, data = data,main=
"scatter plot",col=
1,pch)
#col為顏色,pch為形狀
#箱線圖
boxplot(height~weight)
#建立模型
model = lm(weight~height,data=lm_data)
summary(model)
abline(h = mean(weight)
, col =
"red"
)#橫著來一刀
abline(v =
170, col =
"red"
)#豎著來一刀
假設檢驗:身高體重是否有線性關係
區間估計(看是否包含0)不常用
t =
-qt(
0.025
, df = model$df.residual)
#t分布的quantile,qnorm是正態分佈的分位點
#區間為estimate-t*std.error到estimate+t*std.error
p值法
t =β
1^−0
se(β
1^
)t = \frac-0})}
t=se(β
1^
)β1
^−0
se為std.error,自由度為n-r
f檢驗f=m
srms
ef=\frac
f=msem
sr通過anova()函式得到
df為自由度
sum sq列為ssr和sse(risiduals那一行)
mean sq列為mer和mse
f value 為msr/mse
pr為自由度
summary(model)
t =-qt(
0.025
,df=
)
區間為estimate-t*std.error到estimate+t*std.error
或者直接用confint函式
confint(model)
點估計
model$coefficients
區間估計
x = data.frame(height = c(
165,
180)
)predict(model, newdata = x, interval =
"predict"
)
par(mfrow = c(1,
2))#以下兩圖一樣 殘差圖
plot(model, which =1)
plot(model$fitted.values,model$residuals)
#以下兩圖一樣 qq圖
plot(model, which =2)
qqnorm(variable y)
qqline(variable y)
#以下兩圖一樣 位置尺圖
plot(model, which =3)
plot(model$fitted.values,sqrt(abs(scale(model$residuals)))
)
簡單線性回歸
真實值 y theta x varepsilon 值 hat theta x varepsilon 為誤差 項,服從 均值為0 方差為 為誤差項,服從均值為0,方差為 為誤差項,服 從均值為 0,方差 為 sigma 的高斯分布。已知若干樣本,可以得到若干 varepsilon 值,根 據極大似 然...
2 1 簡單線性回歸
使用一種基於自變數 x 來 因變數 y 的方法,假設這兩個變數是線性相關的,因此我們嘗試尋找一種根據特徵或自變數 x 的線性函式來精確 響應值 y import pandas as pd import numpy as np import matplotlib.pyplot as plt datas...
簡單線性回歸演算法
一 目標 尋找一條直線,最大程度的 擬合 樣本特徵和樣本輸出標記之間的關係。在回歸問題中我們 的是乙個具體的數值,這個具體的數值是在乙個連續的空間裡的,如果想看兩個特徵的回歸問題就需要在三維空間裡進行觀察。樣本特徵有多個的回歸稱為多元線性回歸 損失函式 對a求偏導數 最後得到的結果 求a b的pyt...