2018年4月11日 星期三

孤獨對健康的影響

台灣單身人口節節增加, 單身雖說未必寂寞, 但機率總是比非單身者高很多,小魯最近讀了一些醫學論文, 發現孤獨對健康真的有很大影響, 這方面的研究裡面, 小弟找到一篇期刊, heart, 算是impact factor 頗高的期刊, 裡面提到了孤獨感會導致心肌梗賽,中風,以及死亡率上升,而且這篇文章非常猛, 利用英國biobank的資料, 總共蒐集了四十六萬筆資料, 以醫學研究來說, 算是人數非常多, 當然證據力就強很多啦; 在另外一篇文章裡面提到孤獨感也會導致失智症的發生, 這篇文章也是滿猛的, 利用19篇文章做整合, 來發表meta-analysis; 之後我又找到一篇, 孤獨會導致憂鬱症狀增加.

感覺單身真的快要變成一種疾病的因子了說, 雖說有伴侶不一定好, 但若能心靈相通, 有人能和你一起分享生活, 對心情來說也會比較快樂!

以上就是從醫學角度分享孤獨感對生理心理的影響囉!!!
希望大家都能趕快找到自己喜歡的人XD
這篇不想再打下去了, 再打下去, 都覺得自己寂寞了起來~

其實以公共衛生的角度來看, 政府舉辦聯誼除了能夠增加結婚人數, 提高生育率外, 應該也能當作一種疾病預防吧XD

reference:
1. Hakulinen, C., Pulkki-Råback, L., Virtanen, M., Jokela, M., Kivimäki, M., & Elovainio, M. (2018). Social isolation and loneliness as risk factors for myocardial infarction, stroke and mortality: UK Biobank cohort study of 479 054 men and women. Heart, heartjnl-2017.
2. Kuiper, J. S., Zuidersma, M., Voshaar, R. C. O., Zuidema, S. U., van den Heuvel, E. R., Stolk, R. P., & Smidt, N. (2015). Social relationships and risk of dementia: a systematic review and meta-analysis of longitudinal cohort studies. Ageing research reviews22, 39-57.
3. Cacioppo, J. T., Hughes, M. E., Waite, L. J., Hawkley, L. C., & Thisted, R. A. (2006). Loneliness as a specific risk factor for depressive symptoms: cross-sectional and longitudinal analyses. Psychology and aging21(1), 140.

2018年2月15日 星期四

臨床感想

最近值班特別累 趁著休假空檔 想說寫個網誌抒發一下心情 不然網誌真的好久沒更新的
其實我覺得台灣的醫療在健保制度下 真的變得好扭曲 健保的精神是要讓每個人都能得到醫療
但在民眾的濫用下 已經快負荷不住  許多民眾都認為我有繳健保費了 就希望能被排更多的檢查 但這些檢查是否真的有必要?? 醫學書籍告訴我們 不要亂槍打鳥 因為若一開始沒有相關症狀 盲目做檢查會比較容易得到 false positive 的結果  也許是因為台灣的吃到飽文化吧 呵呵
重量不重質 反正有做檢查就覺得自己賺到 根本不管有沒有需要

PS. 上面所提到為生物統計原理,這裡簡單介紹一下,在生物統計裡,

sensitivity=>檢驗陽性,且病人真的有病的比例
specificity=>檢驗陰性,且病人真的沒病的機率


今天假設一個病有五個特徵,今天我們如果規定要診斷這個病要五個特徵都被我們看到,那一但五個特徵都被我們看到,sensitivity會不錯,因為所有的特徵都有,會很像這個疾病.但缺點是specificity會很糟,因為可能有一個特徵沒被觀察到,我們就認為病人沒這個病

相反的,我們如果只規定診斷這個病只需要一個特徵,那sensitivity會比上面差,但specificity會比較好

所以臨床上做檢查要sensitivity高,當然是一開始符合越多疾病的條件越好(有就是越像那個疾病),這樣sensitivity才會高,才不會一堆偽陽性,自己嚇自己

如果大家都知道這個概念,應該就部會一直想做檢查了啦, 呵呵~


在來就是小病往大醫院就醫的問題 許多病人根本就不需要來大醫院啊  台灣的扭曲健保生態 造就一堆人來大醫院就醫 每件健保給付又很少 為了生存 大家只好衝病人量 結果就是醫護過勞 薪水又少少  大家都很累 但臨床品質根本沒有提升啊 呵呵 反而越來越差 一堆護理人員不斷離職 永遠都要靠剛畢業的新鮮肝  反正台灣人不在乎品質啊 呵呵 有就好了

其實沒有又要馬兒好又要馬兒不吃草的道理  台灣醫療要提高品質 回到過去榮光 只有調高保費 提升醫護人員待遇 吸引更多人留下 並且提高部分負擔 以價制量 否則醫療崩壞必將越來越糟 直至完全崩壞為止!

2018年1月19日 星期五

normal equation for linear regression

normal equation, 其實就是直接從線性代數中拿過來用的, 在線性代數中最小平方法的章節, 就可以用 normal equation 來使誤差最小, 其方程式如下:

$ w = (X^T X)^{-1}X^T y$
其中 $ w$為目標函數的係數,$X$為輸入的資料,$y$為結果,利用此方程式可求出$w$,使得方程式誤差最小
此處有一點需要注意, 若$ X^T X $ is not invertible, 則需使用pseudoinverse, 但這種情況在實際應用時相對少見,故此處略表不提




reference:
1. learning from data
2. machine learning by andrew ng

2017年10月18日 星期三

高血壓筆記

先看高血壓定義:

依據JNC8, 我們可依族群設定不同的血壓目標,主要分為兩種
1. 若病患大於60歲且無糖尿病以及慢性腎臟病 => 150/90 開始治療
2. 其餘情況 => 140/90 開始治療


成因:
1. primary (essential)
2. secondary

治療方式:
1. 生活型態調整(每項降收縮壓 5mmHg)

(1)  減重
(2)  有氧運動
(3)  飲食
(4)  限鹽
(5)  限酒

2. 藥物治療
=> 若病患有慢性腎臟病或高血壓, 使用ACEI/ARB, 再考慮加其他種藥
=> 其他病患依族群分類 => 黑人=> TZD or CCB , 再考慮加其他種藥
                                           => 其他族群 => TZD or ACEI or ARB or CCB, 再考慮加其他種藥

藥物作用機轉:

1. ACEI

(1)  抑制 RAA system內的 angiotensin-converting enzyme inhibitor
(2) 常見的有:

 captopril (也就是常聽到的capoten)

2. ARB
(1) 機轉類似ACEI, block RAA system 的 angiotensin receptor
(2) 常見的有 Losartan

p.s. 因為ACEI 和 ARB 機轉類似, 故不得合併使用
p.s. ACEI/ARB 有致畸胎性 => 孕婦禁用

3. β-Blockers:
(1) 氣喘患者絕對不可使用(切記切記,所以值班若不了解病人情況,降血壓請選別種,比較安全)
(2) 常見的有:

atenolol
Labetalol(trandate)
                               

4. CCB
(1) 阻斷 calcium chanel
(2) 常見的有

Amlodipine(Norvasc): 門診超常見用藥,也就是常聽到的脈優
Nicardipine(也就perdipine) => 臨床常用降血壓藥,洗腎病患也可用
adalat => 古早時期常用舌下服法來降血壓,後來發現容易降太快,導致病人collapse,現在多用口服了~

5. TZD
(1) 利尿劑 => 降低身體的volume, 導致血壓下降

reference:
1. JNC 8
2. The Massechusette General  Hospital Handbook of Internal Medicine
3. http://www.ktgh.com.tw

2017年10月15日 星期日

Octave/Matlab 介紹

Matlab 是一套理工科常用的數學軟體, 功能極端強大, 但缺點是需付費, 不過開源軟體社群開發出一套免費的軟體Octave,其指令可以涵蓋matlab, 非常好用, 下載地址:octave

p.s. 本文用>>取代原本開頭(ex. octave:1>) ,來方便簡化
其指令為 PS1('>> ')
指令教學:

1. 繪圖

(1)二維繪圖:
>> x=[1,2,4,6,8]
>> y=[3,4,6,7,9]
>> plot(x,y)

圖案如下:
其實還蠻漂亮的XD

2. vector:

(1) row vector:
>> v=[1 2 3]
v=
      1  2  3

(2) column vector:
>>v=[1;2;3]
v=
      1
      2
      3

3.  matrix 運算:
(1) matrix 宣告

>> A=[1 2 ; 3 4 ; 5 6]
A=
        1  2
        3  4
        5  6

(2) matrix transport
>> A'
A=
        1  2  3
        4  5  6

4. control statement:

(1) loop:
>> for i=1:5,
> v(i)=i;
> end;
> v
v=
      1  2  3  4  5

5.  其他功能

(1) 如果需要加註解, 利用%符號
>> 6+7   % 6 add 7
13

(2)  如果不知道這個指令如何使用,可以在指令前面加help
>> help help % 查詢help指令如何使用

(3) linux 的許多指令也能使用,例如pwd, ls, cd


reference:
1. https://www.gnu.org/software/octave/
2. Machine learning by andrew ng
3. mathwork
4. Octave

2017年10月7日 星期六

trie 介紹

trie 是一種樹狀的數據結構,用來儲存大量字串,每個節點由個一個字組成,先創原點,再將單字逐個加入,若遇到之前沒有的,則加入那個分枝

其主要應用領域在bioinformatics,information retrieval

trie可分為好幾種,以下由我一一道來

1. 26 way trie: 一個節點有26個分支,主要用在英文單字的儲存,圖解如下=>

假設有aaa,aab,efg三個單字,先創原點,用@表示
         
            先加入aaa                再加入aab           最後加入efg
            @                                   @                       @
           /                                       /                         / \
         a                                      a                        a     e
        /        =>                           /              =>       /       \
       a                                      a                        a         f
      /                                       / \                       / \         \
     a                                     a   b                   a   b         g

須注意每個節點需用一個變數來表示是否為終點,比如說上圖我們搜尋aa,也能找到,但是aa實際上不存在於我們的資料中;此外,每新增一個節點,其實我們需要新增26個指標,來指向NULL


來看trie的複雜度,假設有n個字串,字串長度最長為L,建立trie所需複雜度為O(n*L),insert的複雜度為O(L),search的複雜度亦為O(L),非常的快,且能支援prefix search, 意思為輸入前綴,有相同前綴的單字都會跑出來, 舉例來說,輸入pet,可能會跑出peter,petty之類的

另一種分析複雜度的方法,假設全部的字數為N,理想狀態下,若字串長度差不多,則insert,search,delete的complexity皆為O(log N),因為高度為log N

缺點: space complexity實在太大太大, 需要27*N(reference), 因此若搜尋筆數不多,可能使用其他方法更有效率

2. Ternary search tries(TST):

和上面的trie類似, 也是每個節點儲存一個字以及變數,但不同的是每個節點只有三個子節點,分別是左邊接值小(表示字串開始的值比目前節點小),值相等往下方走,右方值大(表示字串開始的值比目前節點大)

TST insert, 圖解=>

     先加入aaa                再加入dcb                       再加入ef
                                (d比a大,所以接右邊)        (e比a大,往下再比,又比d大,所以接右邊)                  
       a                                        a                        a     
       |                                 =>    |\              =>      |\      
       a                                       a d                     a d        
       |                                         |  |                      |  | \       
       a                                       a  c                     a c e       
                                                    |                         |   |
                                                    b                        b  f 

其實訣竅很簡單, 就是比大小XD,遇到值大右走,值小左走,值相等往下

有一點很值得提的,就是TST是由Robert Sedgewick和Jon L. Bentley在1990年代提出,
其中Robert Sedgewick 就是參考資料2的作者

複雜度分析,其實很明顯可以看出time complexity 比26-way多, 但是 space complexity 少非常多
分析如下,search 和 insert 都變成 O(L+logN),其中L是字串長度,N是總字數,原因很簡單,因為原本字串
長度就是L, logN代表最多能被多接幾個; 至於空間複雜度很簡單,就是4N(reference)


reference:
1. https://www.coursera.org/learn/gaoji-shuju-jiegou/lecture/1s2Nc/trie-shu
2. http://algs4.cs.princeton.edu/lectures/52Tries.pdf

2017年10月2日 星期一

win10 ubuntu 安裝於外接硬碟心得

如題,試了好久才成功,寫個紀錄以免忘記,我本身電腦是win10系統,最近想要使用ubuntu,但又怕裝ubuntu影響到原本系統,於是決定將ubuntu安裝在外接硬碟裡
需要物品:
USB隨身碟:用來做開機光碟
外接硬碟:用來做Ubuntu系統空間


首先.先下載ubuntu iso檔,下載網址: https://www.ubuntu.com/download/desktop

之後,下載unetbootin,將iso灌入usb檔,將usb製作成開機光碟

之後重新開機(win10要壓住F2),進入bios模式,選擇boot,將模式改為legacy(UEFI怎麼試都不成功@@),將USB FDD的順位拉到最前面,此時選擇儲存設定後開機

成功開機後,即可開始安裝ubuntu,在installation type那裡,記得要選something else,來進行磁碟分割,到達下一個頁面後,將bootloader安裝在隨身硬碟,並將隨身硬碟空間拆成swap area和ext4即可
(記得留下free space給bootloader),還有就是ext4必須mount,可以選擇 " / "


p.s. 如果之後拔掉隨身硬碟,想換回win10開機,記得bios模式要改回UEFI




reference:
1. https://blog.gtwang.org/linux/install-ubuntu-linux-to-usb-stick/