利用php進(jìn)行線性回歸

筆者在一家中石化內(nèi)部的企業(yè)工作跪呈,主要從事高分子聚合物的相關(guān)開發(fā)嚷量。
目前因工作需要圆裕,需要學(xué)習(xí)聚合物特性黏度測(cè)試方面的知識(shí)广鳍,采用多點(diǎn)稀釋法進(jìn)行測(cè)試。在得到數(shù)據(jù)后吓妆,通過(guò)外推法求得純?nèi)垠w的特性黏度赊时。
比如我們?cè)谌N濃度下測(cè)得特性黏度分別如下:
純?nèi)軇?t0=76.56s ηr ηsp ηsp/c lnηr/c
0.04g/dl t1=228.16 2.98 1.98 49.5 27.3
0.02g/dl t2=135.37 1.77 0.77 38.5 28.5
0.01g/dl t3=105.25 1.37 0.37 37 31.38
定義為溶液濃度無(wú)限稀釋時(shí)的比濃黏度和比濃對(duì)數(shù)黏度。其值與濃度無(wú)關(guān)行拢。


特性黏度

我們可以通過(guò)作圖推算出濃度為零時(shí)的特性黏度祖秒,如下圖:


特性黏度推算

當(dāng)然我們更準(zhǔn)確的可以通過(guò)EXCEL工具進(jìn)行作圖并線性模擬出計(jì)算公式。
因?yàn)楣P者在PHP編程方面頗有一些研究舟奠,下面通過(guò)PHP編程計(jì)算出線性方程式竭缝。
如果兩組數(shù)據(jù)相關(guān)系數(shù)很高, 可以用一條近似直線Y=a + bX 來(lái)預(yù)估, 謂之線性回歸
根據(jù)統(tǒng)計(jì)學(xué)理論, Y = a + bX 中
斜率 b = X,Y 離均差交乘積和 / X離均差平方和
常數(shù)項(xiàng) a = Y平均值 - b * X平均值
具體實(shí)現(xiàn)代碼如下:
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
    <title>線性回歸 Linear Regression</title>
</head>
<body>
<h2>計(jì)算線性回歸方程式 Y = a + bX</h2>
<p>
    如果兩組數(shù)據(jù)相關(guān)系數(shù)很高, 可以用一條近似直線Y=a + bX 來(lái)預(yù)估, 謂之線性回歸<br />
    根據(jù)統(tǒng)計(jì)學(xué)理論, Y = a + bX 中 <br />
 
    斜率 b = X,Y 離均差交乘積和 / X離均差平方和 <br />
    常數(shù)項(xiàng) a = Y平均值 - b * X平均值<br />
</p>
<?php
header("Content-Type: text/html; charset=utf-8");
if (empty($_REQUEST["X"])) {
    ?>
    <form method="post" action="jisuan.php">
        X : <input type="text" name="X" size="30" value="25,23,27,35,30"><br>
        Y : <input type="text" name="Y" size="30" value="35,27,36,45,42"><br>
        <input type="submit" value="ok">
    </form>
<?php
} else {
    $X = explode(",",$_REQUEST["X"]);
    $Y = explode(",",$_REQUEST["Y"]);
    $xavg = array_sum($X)/count($X); // X 平均值
    $yavg = array_sum($Y)/count($Y); // Y 平均值
    $XMD = Array();         // X 離均差
    $YMD = Array();         // Y 離均差
    $mdcross_sum = 0;       // X,Y 離均差交乘積和
    $xdif_square_sum = 0;   // X 離均差平方和
    $count = count($X);
    for ($i=0; $i<$count; $i++) {
        $xdif = (float)$X[$i]-$xavg; // X 離均差
        $ydif = (float)$Y[$i]-$yavg; // Y 離均差
        $XMD[$i] = $xdif;
        $YMD[$i] = $ydif;
        $mdcross_sum += $xdif*$ydif;       // X,Y 離均差交乘積和
        $xdif_square_sum += pow($xdif, 2); // X 離均差平方和
    } //end of for
    $b = round($mdcross_sum/$xdif_square_sum, 2);   // 計(jì)算斜率 b
    $a = round($yavg-$b*$xavg, 2);                  // 計(jì)算常數(shù)項(xiàng) a
    echo "X = ".join(", ",$X)."<br>";
    echo "Y = ".join(", ",$Y)."<br>";
    echo "常數(shù)項(xiàng) a = ".$a."<br>";
    echo "斜率 b = ".$b."<br>";
    echo "線性回歸方程式 Y = ".$a." + (".$b.")X<br>";
    echo "X 平均值 = ".$xavg."<br>";
    echo "Y 平均值 = ".$yavg."<br>";
    echo "X 離均差 = ".join(", ",$XMD)."<br>";
    echo "Y 離均差 = ".join(", ",$YMD)."<br>";
    echo "X,Y 離均差交乘積和 = ".$mdcross_sum."<br>";
    echo "X 離均差平方和 = ".$xdif_square_sum."<br>";
}
 
echo '<hr />';
 
echo '計(jì)算兩點(diǎn)之間的角度。';
$a = array('x' => 10, 'y' => 0);
$c = array('x' => 80, 'y' => 80);
$pi_v = atan2($c['y'] - $a['y'], $c['x'] - $a['x']);
$n_v = rad2deg($pi_v);
echo '弧度:',$pi_v,' 角度:',$n_v;
 
 
?>
</body>
</html>

根據(jù)我們前面提供的數(shù)據(jù)沼瘫,可計(jì)算出
X = 0.04, 0.02
Y = 7, 6.5
常數(shù)項(xiàng) a = 6
斜率 b = 25
線性回歸方程式 Y = 6 + (25)X
X 平均值 = 0.03
Y 平均值 = 6.75
X 離均差 = 0.01, -0.01
Y 離均差 = 0.25, -0.25
X,Y 離均差交乘積和 = 0.005
X 離均差平方和 = 0.0002

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末抬纸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子耿戚,更是在濱河造成了極大的恐慌湿故,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件溅话,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡歌焦,警方通過(guò)查閱死者的電腦和手機(jī)飞几,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)独撇,“玉大人屑墨,你說(shuō)我怎么就攤上這事》紫常” “怎么了卵史?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)搜立。 經(jīng)常有香客問(wèn)我以躯,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任忧设,我火速辦了婚禮刁标,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘址晕。我一直安慰自己膀懈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布谨垃。 她就那樣靜靜地躺著启搂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪刘陶。 梳的紋絲不亂的頭發(fā)上胳赌,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音易核,去河邊找鬼匈织。 笑死,一個(gè)胖子當(dāng)著我的面吹牛牡直,可吹牛的內(nèi)容都是我干的缀匕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼碰逸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼乡小!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起饵史,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤满钟,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后胳喷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體湃番,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年吭露,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了吠撮。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡讲竿,死狀恐怖泥兰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情题禀,我是刑警寧澤鞋诗,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站迈嘹,受9級(jí)特大地震影響削彬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一吃警、第九天 我趴在偏房一處隱蔽的房頂上張望糕篇。 院中可真熱鬧,春花似錦酌心、人聲如沸拌消。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)墩崩。三九已至,卻和暖如春侯勉,著一層夾襖步出監(jiān)牢的瞬間鹦筹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工址貌, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铐拐,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓练对,卻偏偏與公主長(zhǎng)得像遍蟋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子螟凭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容