Python實現固定效應回歸模型實現因果關係推斷

2021-01-17 deephub

眾所周知,「相關並不意味著因果關係」。 我要告訴你,相關可以表示因果關係,但需要一定條件。 這些條件已在計量經濟學文獻中被廣泛討論。 在本文中,我將以一種易於理解的方式對其進行總結。 我將解釋如果不滿足這些條件為什麼標準的普通最小二乘(OLS)無法確定因果關係。 然後,我將介紹可以提供有效解決方案的固定效應(FE)模型。 之後,我將使用兩套數據分析示例向您展示如何在python中進行操作。 我希望本文能夠通過良好的設計和令人信服的結果增強您對因果關係的理解。

相關可以表示因果關係 — 僅在滿足某些條件時

讓我們給出因果關係的正式定義。 因果關係是x導致y。 關聯意味著x和y沿相同或相反的方向一起移動。 因果關係應滿足以下三個經典條件:

x必須在y之前發生x必須與y相關x和y之間的關係不能用其他原因解釋。從相關性推斷因果關係是一件很難的事

在圖(A)中,冰淇淋銷量的增長與夏季鯊魚的襲擊密切相關。 您認為這有意義嗎? 這是一種關聯,但不是因果關係,因為並非以上三個條件中的所有條件都成立。 首先,鯊魚襲擊的次數不會隨著冰淇淋銷售的增加而增加。

其次,冰淇淋銷售量的增長與鯊魚襲擊之間的相關性可能始終存在,也可能不是始終存在。 第三,也是最重要的一點,兩個因素之間的關係可以用夏季來解釋。 實際上,炎熱的夏天是冰淇淋銷售量增加和鯊魚襲擊增加的驅動力。

混雜因素(Confounding Factor):冰淇淋銷售量x和鯊魚襲擊次數y都受夏季熱量,混雜因素z的驅動,如圖(B)所示。 混雜因素是一個既影響因變量y又影響自變量x的變量,從而導致了虛假關聯。 一項研究可能會忽略混雜因素。 因為我們沒有收集足夠的數據,所以它是不可觀察的。 而補救措施是將混雜因素識別為可觀察的因素。

內生性:如果存在一個混雜因素可以解釋x和y之間的關係,則x是內生的。x和y之間的相關性也無法解釋或毫無意義。 您能說冰淇淋銷售與鯊魚襲擊之間存在正相關關係嗎? 我們不應試圖從正號或負號得出任何結論。 事實是該係數可以更高,更低,甚至不同。

如何量化X對Y的影響?

為了衡量治療的效果,我們必須與沒有治療的事實進行比較。 換句話說,我們討論如果個人不接受治療會產生什麼結果。

隨機對照試驗(RCT)通常是非常好的標準

我們要怎麼解決這個難題呢? 隨機對照試驗(RCT)通常被視為非常好的標準,因為可以確定因果關係(Shadish et al,2002)。 如果我們可以將個體隨機分配到治療組和對照組,那麼兩組的個體特徵將大致相等。 那麼,治療效果就是兩組之間的y之差。

讓我用一種統計的方式來進行以上描述。 普通最小二乘(OLS)假設x與不可觀察項之間沒有相關性,即沒有內生性。 這可以用RCT中實現,因為隨機分配下不可能出現內生性或混雜問題。 在下式中描述了OLS,其中i是N個個體中每個個體的標識符。 第二個方程是矩陣形式。 關鍵假設是E(X)= 0,這表示x與不可觀測項之間沒有相關性。 錯誤項可能是任何不可觀察的項。

但是,在大多數情況下進行RCT會不可行。 RCT可能很耗時,或很昂貴,或難以向需要合作的公眾解釋,並且有時是不道德的。 例如,在醫院中,研究人員可能會建議將患者保留為對照組。 這顯然不可行,因為該研究使患者處於危險之中。 並非所有決策問題或臨床實驗都可以遵循RCT。 那我們還有什麼辦法? 研究人員越來越依賴於準實驗設計並取得了令人信服的結果。 「準」一詞表面上看起來表示不是真的。 準實驗設計類似於隨機對照試驗,但沒有對研究者進行隨機分配(Cook&Campbell,1979)。

準實驗接近「一樣好」

RCT中無法進行大量研究。 因此,我們使用了準實驗設計,其中已曝光和未曝光單位之間的唯一區別是曝光本身。 典型的準實驗包括回歸不連續性回歸——Regression Discontinuity(RD),差異——Difference-in-differences(DiD)和固定效應模型——Fixed-Effects Model (FE)。

不連續性回歸(RD)

RD設計將剛好高於和剛好低於閾值的對象進行比較,如圖(D)中「Before」方案中的綠色框所示。 預計綠色框中的主題非常相似。 在「After」場景中,正確的小組受到幹預,結果有所不同。 結果的這種跳躍或不連續可以解釋為幹預的結果。

在「After」期間(「 1」 =After)對Y的預期影響為E [Y(1)| X],而「Before」期間(「 0」 =Before)為E [Y(0)| X ]。 在小綠色框中,所有X都非常相似,因此,「之前」和「之後」期間的X被認為是相同的。 RD的結果接近RCT。

面板數據(Panel Data):也稱為縱向或橫向時間序列數據。 在面板數據中,您擁有所有時間段內個人的數據點。 基本的面板數據回歸模型類似於方程式(1),其中和是係數,而i和t是個體和時間的指標。 面板數據使您可以控制變量並說明各個變量的差異性。 有趣的是,在Python中使用Pandas模塊時,您可能會奇怪為什麼開發人員將其稱為「 Pandas」-非常可愛! 實際上,它來自「面板數據」。

假設我們可以在OLS中詳盡詳盡地指定所有因素:如果我們想知道一個人的婚姻狀況是否會增加一個人的收入。 假設我們可以指定一個詳盡的模型,明確列出影響收入水平的所有因素:

其中yit是時間t中i的收入,xit是婚姻狀況,Zit都是觀察到的隨時間變化的變量,例如年齡或工作數量。 Wi都是觀察到的不隨時間變化變量,例如種族,_it是誤差項。 如果我們可以列出所有因素,則可以得到的無偏差估計。

在面板數據上運行OLS時,它也稱為「池化OLS」。 當每個觀察值彼此獨立時,這是沒問題的,雖然這不太可能,因為面板數據中同一個人的觀察是相關的。 話雖如此,有時觀察結果在面板內的相關性很小,可以忽略不計。 然後,您可以這樣做。

但是,我們不太可能在OLS中指定所有可能的因素:很可能我們無法詳盡列出所有OLS的因素。 假設我們從上面的方程式中省略了Zit和Wi,而僅將yit回歸到xit上。 我們知道婚姻狀況(xit),年齡(Zit)和種族(Wi)很可能相關。 在沒有明確指定Zit和Wi的情況下,OLS中的估計幾乎可以肯定是有偏差的。 這是因為未在方程式中指定Zit和Wi使得它們變得不可觀察並合併到誤差項it中。 這使得婚姻狀況(x_it)是內生的(請參見上面的說明)。 所以結果,無論是正數還是負數,都將毫無意義。 因此,遺漏變量的問題是一個非常嚴重的問題。 如果省略了任何已知變量,則OLS中的結果都是不可靠的。

固定效果模型

上面的_i變量稱為固定效果,因為它不會隨時間變化。 它捕獲了個人的所有不隨時間變化的因素,例如性別,種族甚至個人特質。 yit和xit是i的收入和婚姻狀況,Zit代表i的所有其他隨時間變化的因素。 假定誤差it與所有上述因素都不相關(如果違反了此假設,則將面臨省略變量導致的偏差)。

如何估算方程式(3)? 在幾乎所有教科書中,您都可以看到像方程式(3)一樣的基本表述形式。 可以將其視為i = 0,1。當有多個個體i = 1,…N時,_i可以視為具有各自係數i的一組(N-1)個虛擬變量Di的簡寫,如圖所示。 等式(4)是您在回歸輸出中看到的。

DiD是FE模型的特例

DiD是FE模型的特例。

DiD背後的想法很簡單。 首先,我們計算在「Before」期間兩組之間的結果均值之差,即圖(E)中的「 A」。 其次,我們在「After」期間計算相同的值,即「 B」。 然後我們取「第二差異」,即「A」和「 B」之間的差異,並標記為「 C」。 第二差異衡量兩組結果的變化如何不同。 差異歸因於幹預的因果效應。

以面板數據形式,可以通過「differencing out」混淆因素從有限元模型中得出DiD。 因為沒有混淆因素,所以影響確實是因果關係。 典型設置類似於公式(5)。

假設個體i在治療組(xi = 1)或對照組(xi = 0)中,並且在治療前(ti = 1)或治療後(ti = 0)。 後期的效應為_2,如圖(E)所示。 這是通過以下方式得出的:

DiD模型和FE模型之間的區別在於更改是外生的。 更改是在個人i的選擇之外進行的。 例如,某州更改了其最低飲酒年齡法律。 此政策是外生的。

固定效應數據分析示例1 —投資與市場價值

公司投資的主要驅動力是什麼? 有大量的文獻討論了其驅動因素。 Grunfeld認為,公司的市場價值是投資的主要解釋和預測指標。 在以下練習中,我將使用Grunfeld數據集(可在statsmodels.datasets中獲得)來演示固定效果模型的使用。 順便說一句,Grunfeld數據集是計量經濟學中的知名數據集,就像Machine Learning中的虹膜數據集一樣。 這篇學術文章「 50歲時的Grunfeld數據」指出了它的廣泛用途。

該數據包含11家公司中每家20年的數據:IBM,通用電氣,美國鋼鐵,大西洋煉油,鑽石比賽,西屋電氣,通用汽車,固特異,克萊斯勒,聯合石油和美國鋼鐵。 在面板數據中,將「確定」和「年份」設置為索引。 固定效果模型指定如下,其中單個公司因子為_i或在以下代碼中稱為`entity_effects。 時間因子是_t或稱為time_effects。

或如下所示,其中Dj是公司i的虛擬變量,而It是t年的虛擬變量。

from statsmodels.datasets import grunfelddata = grunfeld.load_pandas().datadata = data.set_index(["firm","year"])print(data.head())

模塊linearmodels提供PandelOLS進行固定效果模型。 entity_effects=True表示模擬企業特定因素。 這意味著為11家公司創建10(N-1)個虛擬變量。 下面我展示了兩種回歸方法的代碼。 兩者產生相同的結果。

# Coding method 1from linearmodels.panel import PanelOLSimport statsmodels.api as smexog = sm.add_constant(gf[['value','capital']])grunfeld_fe = PanelOLS(gf['invest'], exog, entity_effects=True, time_effects=False)grunfeld_fe = grunfeld_fe.fit()print(grunfeld_fe)# Coding method 2grunfeld_fe = PanelOLS.from_formula("invest ~ value + capital + EntityEffects", data=gf) print(grunfeld_fe.fit())

「value」的係數在95%時具有統計學意義上的0.1101。 因此,Grunfeld得出了因果關係,即高投資是由高市場價值驅動的。

下面的代碼同時指定了公司特有的效果和時間效果。 結論保持不變。

# Coding method 1from linearmodels.panel import PanelOLSimport statsmodels.api as smexog = sm.add_constant(gf[['value','capital']])grunfeld_fet = PanelOLS(gf['invest'], exog, entity_effects=True, time_effects=True)grunfeld_fet = grunfeld_fe.fit()print(grunfeld_fet)# Coding method 2grunfeld_fet = PanelOLS.from_formula("invest ~ value + capital + EntityEffects + TimeEffects", data=gf) print(grunfeld_fet.fit())

固定收益數據分析示例2 –交通死亡率與啤酒稅

更高的啤酒稅是否有助於減少交通致死率? 許多州降低了啤酒稅,交通事故死亡率更高。 我們可以說降低啤酒稅會導致更高的死亡率嗎? 這種因果關係具有深遠的政策含義。 我將使用Stock&Watson廣為接受的書籍「計量經濟學概論」中的死亡數據集。

import pandas as pdimport numpy as npimport seaborn as snsfatalities = pd.read_csv('/fatality.csv')fatalities.head()

mrall = 車輛總死亡率beertax = 酒精稅mlda = 最低法定飲酒年齡jaild = 強制性入獄comserd = 強制性社區服務vmiles = 每位駕駛員的平均裡程unrate = 失業率perinc = 人均個人收入我將每年的數據生成平均值,以顯示每年的平均啤酒稅和死亡率。 1982–1984年的平均啤酒稅高於1986–1988年的啤酒稅。

avg = fatalities.groupby('year')['mrall','beertax'].mean()avg

我將使用`seaborn來顯示相關性。

sns.set(style="darkgrid")g = sns.jointplot("beertax", "mrall", data=avg, kind="reg", color="m", height=6)

我們可以建立任何因果關係嗎? 我將使用固定效果模型進行測試。 下面,我演示了兩個固定效果模型並用於討論和匯總OLS。

模型 1: 實體效果+時間效果模型 2: Entity_effects模型 3: 匯總OLS

或如下所示,其中Dj是狀態i的虛擬變量,而It是狀態t的虛擬變量。

下面對州的不隨時間變化的變量(例如州文化,州居民對飲酒的態度(可能是不隨時間進行變化)等)進行控制。對所有州隨時間變化的遺漏變量的時效控制。 例如,宏觀經濟條件或聯邦政策措施在所有州都是通用的,但會隨時間而變化。

您可能會詢問如何確認需要固定效果的模型規範。 這是通過可合併性測試(Poolability Test)完成的。 許多模塊已經包含測試結果。 用於F-test for poolability並顯示輸出。 這是對沒有固定效果的原假設的檢驗。 模型1中的F-test是40.158,p值是0.0,因此我們可以拒絕原假設,並得出固定效果模型規格合適的結論。

模型1:實體效果+時間效果

# Coding method 1from linearmodels.panel import PanelOLSimport statsmodels.api as smexog = sm.add_constant(fatalities[['beertax','mlda','jaild','comserd','vmiles','unrate','perinc']])fe = PanelOLS(fatalities['mrall'], exog, entity_effects=True, time_effects=True)fe = fe.fit()print(fe)# Coding method 2from linearmodels.panel import PanelOLSfe = PanelOLS.from_formula("mrall ~ beertax + mlda + jaild + comserd + vmiles + unrate + perinc + EntityEffects + TimeEffects", data=fatalities) print(fe.fit())

模型1告訴我們,啤酒稅與死亡率之間存在負相關關係(啤酒稅係數為-.4649)。 因此,我們可以得出因果關係,即較高的啤酒稅會導致較低的死亡率。

模型2:Entity_effects

如何理解三個模型中的R-squared值? 模型1中的R-squared為0.3577,高於模型2中的R-squared0.1286。這意味著模型1的擬合效果更好。 模型3中的0.4662怎麼樣? 儘管它比模型1和2的模型高得多,但是合併的OLS是一個錯誤指定的模型,如上面的公式(1)和(2)所述。 由於模型3無法解決內生性問題,因此它無法幫助我們得出啤酒稅和死亡率之間的因果關係。

# Coding method 1from linearmodels.panel import PanelOLSimport statsmodels.api as smexog = sm.add_constant(fatalities[['beertax','mlda','jaild','comserd','vmiles','unrate','perinc']])fe2 = PanelOLS(fatalities['mrall'], exog, entity_effects=True, time_effects=False)fe2 = fe2.fit()print(fe2)# Coding method 2from linearmodels.panel import PanelOLSfe2 = PanelOLS.from_formula("mrall ~ beertax + mlda + jaild + comserd + vmiles + unrate + perinc + EntityEffects", data=fatalities) print(fe2.fit())

模型3:匯總OLS

# Coding method 1from linearmodels.panel import PanelOLSimport statsmodels.api as smexog = sm.add_constant(fatalities[['beertax','mlda','jaild','comserd','vmiles','unrate','perinc']])pooledOLS = PanelOLS(fatalities['mrall'], exog, entity_effects=False, time_effects=False)pooledOLS = pooledOLS.fit()print(pooledOLS)# Coding method 2from linearmodels.panel import PanelOLSpooledOLS = PanelOLS.from_formula("mrall ~ beertax + mlda + jaild + comserd + vmiles + unrate + perinc ", data=fatalities) print(pooledOLS.fit())

作者:Dr. Dataman

deephub翻譯組:孟翔傑

相關焦點

  • python數據分析:如何用python做路徑分析,附資料庫實例操練
    會以驗證性因素分析(CFA)來分析;另一個部分則為結構模型(structural model),探討研究者提出的特定行為科學理論,其變數間複雜的因果路徑關係,因此也稱為路徑分析(Path analysis,以下簡稱PA)。  1921年美國遺傳學者Sewell Wright首先提出了路徑分析(PA)的概念,用來處理演化與突變的機制關係。
  • 元分析:固定效應模型和隨機效應模型
    兩種常用見的元分析統計模型:固定效應模型和隨機效應模型在固定效應模型下,我們假定在納入分析的所有研究存在一個真實的效應量,並且觀察效應量的所有差異均歸因於取樣誤差。雖然我們遵循將其稱為固定效應模型的做法,但更具描述性的術語將是共同效應模型(common-effect model)。無論哪種情況,我們都使用單數(effect),因為只有一個真實的效應量。
  • 面板數據固定效應 vs. 隨機效應
    從而面對面板數據時,或者用固定效應估計,或者用隨機效應估計。  什麼叫固定效應模型或者隨機效應模型呢?對於如下的靜態面板模型(解釋變量中不包含被解釋變量的滯後項,否則叫動態面板模型):  其中,下表i表示個體,t表示時間。對於所有的解釋變量,可以將其劃分為隨時間變化的個體特徵(比如年齡和收入)以及不隨時間變化的個體特徵(比如性別)。
  • 貝葉斯網絡之父Judea Pearl:新因果科學與數據科學、人工智慧的思考
    其實,這個「信息」就是因果關係的關鍵,還是以上面那個疫苗為例,沒有一個數據能夠表示疫苗是好還是壞,所以你必須超越數據做假設。另外,因果推理的一個重要秘訣是準確區分「做」和「看」。比如,你光憑藉灑水器是開著的,無法做出季節是什麼以及是否下雨等預測。這裡的問題是:實際上X1~X3這一層的關係被你切斷了,所以無法推測出「季節」,如右所示,切斷X1~X3的是一個殘缺的模型。
  • Python多階段框架實現虛擬試衣間,超逼真
    在標準數據集上進行的大量實驗表明,他們提出的框架實現了最先進的性能,特別是在保存服裝紋理和面部識別的視覺細節方面。故今天我們將在他們代碼的基礎上,實現虛擬換衣系統。argparse 是python自帶的命令行參數解析包,可以用來方便地讀取命令行參數。網絡模型的定義和訓練其中已經訓練好的模型地址如下:https://drive.google.com/open?
  • 一場因果革命,Judea Pearl最新力作《為什麼》中文版發布
    研究者應該考慮採用因果推斷模型,從因果而非單純的數據角度進行研究。他認為,我們在過去一段時間錯過了對因果推斷的研究機會,這原本是科學研究的核心:尋找變量的因果關係。圖註:Judea Pearl然而,當前統計機器學習主要關注對表徵的擬合,尋找的是變量之間的相關性,而非潛在的因果性。
  • 因果關係的新哲學解釋
    既可以從英國的經驗主義和邏輯經驗主義解釋哲學概念的因果論,也可以從德囯的理性主義和辯證理性主義解釋哲學範疇的因果關係,「英式哲學」和「德式哲學」對因果論或因果關係的兩種解釋方式符合解釋哲學方法論和目的論的等效原理。
  • 乾貨| 請收下這份2018學習清單:150個最好的機器學習,NLP和Python...
    5、回歸算法線性回歸分析簡介(duke.edu)http://people.duke.edu/~rnau/regintro.htm線性回歸 (ufldl.stanford.edu)http://ufldl.stanford.edu/tutorial/supervised/LinearRegression
  • Python開發簡單爬蟲【學習資料總結】
    實現方式.png 將待爬取的URL和已爬取的URL存放在內容中。 將URL存放在關係型數據中 將URL存儲在緩存資料庫中 三、網頁下載器和urllib2模塊 網頁下載器類似於瀏覽器,會將網際網路對應的網頁以HTML的形式下載到本地,存儲成本地文件或內存字符串,然後進行後續的分析。
  • 使用OpenCV和Python構建自己的車輛檢測模型
    這不禁讓我思考——我能用我的數據科學知識來建立一個車輛檢測模型,在智能交通管理中發揮作用嗎?想想看,如果你能在紅綠燈攝像頭中集成車輛檢測系統,你可以輕鬆地同時跟蹤許多有用的東西:白天交通路口有多少輛車?什麼時候交通堵塞?什麼樣的車輛(重型車輛、汽車等)正在通過交叉路口?有沒有辦法優化交通,並通過不同的街道進行分配?還有很多例子就不一一列舉。應用程式是無止境的!
  • 找亮點:解決問題法,其實還是回歸因果
    這相當於從觀察數據中,計算出所有可能的影響因素的效果,可以看成是因果推斷在現實中的應用。其威力來源於其能夠釐清問題出現背後的混雜因素,找到真正的成因,即問題的本質。在《如何形成清晰的觀點》中寫道:「歸納的本質是它可以從一套事實中推斷出另一套相似的事實,而假設是從一種事實推斷出另一種不同的事實。」。要想提高亮點出現的概率,避免偶然因素的帶來的失敗,就是用歸納去找出一次次嘗試間的共性,排除一切可能的幹擾;而要想超越之前的表現,則要通過假設,去問如果不是這樣,那又會發生什麼?
  • 回歸、分類與聚類:三大方向剖解機器學習算法的優缺點(附Python和R...
    所以,當你使用一個固定的數據測試集來評估性能,挑選最適合算法時,你應該針對你的問題嘗試多種不同的算法。當然,你所使用的算法必須要適合於你試圖解決的問題,這也就有了如何選擇正確的機器學習任務這一問題。做個類比,如果你需要打掃你的房子,你可能會用吸塵器、掃帚或者是拖把,但是你絕不會掏出一把鏟子然後開始挖地。
  • 驗證碼識別實例,python簡單圖像處理和實現
    問題來源某系統門戶登陸界面如下:現在我們要實現自動的驗證碼識別。圖像特徵首先,我們仔細觀察下這個驗證碼圖像,可以發現一些固定特徵:1、驗證碼中的字符數始終為6,並且是灰度圖像。2、字符間的間隔看起來每次都一樣。3、 每個字符都是完全定義的。
  • 你應該掌握的七種回歸技術
    回歸分析是一種預測性的建模技術,它研究的是因變量(目標)和自變量(預測器)之間的關係。這種技術通常用於預測分析,時間序列模型以及發現變量之間的因果關係。例如,司機的魯莽駕駛與道路交通事故數量之間的關係,最好的研究方法就是回歸。回歸分析是建模和分析數據的重要工具。在這裡,我們使用曲線/線來擬合這些數據點,在這種方式下,從曲線或線到數據點的距離差異最小。
  • 算法系列 | 如何在 S32V 中實現危險駕駛行為檢測
    本篇文章我們就來跟大家如何在 NXP S32V 平臺上危險實現駕駛行為檢測。一、 危險行為行為1.1、概念簡介我們經常遇到這樣的場景:一盞燈變成綠色,你面前的車不走。 另外,在沒有任何意外發生的情況下,前面的車輛突然減速,或者轉彎變道。 等等這些現象,給道路安全帶來了很大的影響。
  • Python科學計算入門書籍推薦
    話說回來,這近些日子,隨著機器學習的熱潮,python也算是程序界的蒂花之秀了,幾乎到處都能看到它的聲影。算下來,我也有「幾乎4年」的python開發時間了,期間還使用python來參加全國研究生數學建模比賽並連續兩年拿到了國二。都說python入門簡單,網上也有很多學習資源。但是大多數都比較亂,沒有一個明確的順序和方向。
  • 實現童年寶可夢,教你用Python畫一隻屬於自己的皮卡丘
    經過一整天的苦戰,從未接觸過turtle庫的文摘菌實現了從0到1,成就感滿滿。先看下效果基本思路:選好畫板大小,設置好畫筆顏色,粗細,定位好位置,然後畫鼻子,頭、耳朵,眼睛,嘴,身體,手腳,尾巴。都知道,turtle 是 python 內置的一個比較有趣味的模塊,俗稱 海龜繪圖,它是基於tkinter模塊打造,提供一些簡單的繪圖工具。turtle的繪圖方式非常簡單直觀,想像有一隻尾巴上蘸著顏料的小海龜在電腦屏幕上爬行,隨著它的移動就能畫出線條來。
  • 雅思寫作:因果關係表達的乾貨總結
    雅思寫作考試中,因果關係的表達常常難倒很多考生。本文中,筆者精選雅思常考話題,將雅思寫作中因果關係表達的乾貨做了詳盡整理,希望對大家備考雅思有幫助。 雅思大作文中有一類題目是因果關係類,具體包括三小類:cause and effect、cause and solution、problem and solution。這三小類問題也可以穿起來,即針對某個topic的cause—effect (即problem) – solution。 無論哪種題目,寫明因果關係很重要。
  • Python——網絡爬蟲、登錄、代理設置
    這樣我們同樣可以正常訪問網頁,但這個過程中web伺服器識別出的真是ip就不在是我們自己的ip了,就成功實現了ip偽裝。可以使用關係型資料庫表示和存儲,表現為二維形式的數據,一般特點是:數據以行為單位,一行數據表示一個實體的信息,每一行數據的屬性是相同的。2)、半結構化數據結構化數據的一種形式,並不符合關係型資料庫或其它數據表的形式關聯起來的數據模型結構,但包含相關標記,用來分隔語義元素以及對記錄和欄位進行分層。因此它也被稱為自描述的結構。