查看完整版本: 關於線性回歸的問題
頁: [1]

CodeMonk 發表於 2018-1-6 01:27 AM

關於線性回歸的問題

本帖最後由 CodeMonk 於 2018-1-6 01:39 AM 編輯

首先我現在是用R遇到問題的,任何其他語言解決這個問題(像是python、matlab)我想我都看得懂。

先說一下目標資料

他不能表示成多項式,紅色的線我是這樣畫出來的:
composite = function(f,g) function(...) f(g(...))
rep_obj<-function(f,n) {
     c<-list()
     for( i in c(1:n) ) {
          c = c(c,f)
     }
     c
}
f_grwoth = {function(t) Reduce(composite, rep_obj({function(n) (1.15 - 0.00025*n)*n}, t))(100)   }
x1=1:100
lines( x1, Map( f_grwoth, x1), col="red")要如何找到回歸直線的function?

...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

scottdepot 發表於 2018-1-10 10:36 AM

可能要回到回歸直線的本質來算,首先你的數據沒有標準化,所以
回歸直線的方程式是
y-(y的平均值)=m(x-x的平均值)

m是斜率,公式請見附件數學式我打不出來
你可以先用迴圈算出平均值及附件中那些加總求出斜率
然後回歸直線一定過(x的平均值,y的平均值)這一點

下面借用一下一個高中課本的範例

CodeMonk 發表於 2018-1-10 03:48 PM

scottdepot 發表於 2018-1-10 10:36 AM static/image/common/back.gif
可能要回到回歸直線的本質來算,首先你的數據沒有標準化,所以
回歸直線的方程式是
y-(y的平均值)=m(x-x的 ...

試了一下,這樣求出來的線,是直線,對於資料本身是非線性的疊代函數Iterated function沒有甚麼意義,畫出來的圖長這樣...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

scottdepot 發表於 2018-1-11 10:12 AM

這樣的數據用回歸直線來表現出來的意義
大概就只有正相關,還有相關係數低離1遠離0近吧
頁: [1]