想請教各位python高手,做多元線性回歸的時候,應該如何取得每個observation的標準差?
拜託大家救救可能需要壓一千次SPSS的我ˊˋ
各大網站的標準差都是針對「某一控制(自)變數」做標準差,換言之,我無法取得每個observation的標準差,以至於無法刪除最大的outlier,相當困擾,拜託救救我QAQQQ
我看了許多類似的網站https://stackoverflow.com/questions/31523921/print-std-err-value-from-statsmodels-ols-results,但都沒有就各別的標準差@@
這是目前寫的語法
import pandas as pd
import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt
from sklearn import preprocessing, linear_model
df = pd.read_excel(r"data.xlsx",header = [0,1])
print(df.head()) #check data
# 自變量
X = df[['w1','w2','w3','w4']]
# 因變量
y = df['z'].values
X2 = sm.add_constant(X)
res = sm.OLS(y, X2)
res = res.fit()
print(res.summary())
#另一種函式庫的線性回歸(不知道哪個比較方便取得標準差)
regr=linear_model.LinearRegression()
regr.fit(X, y)
如果data大概長這樣,「因變數」為z,「自變數」為w1、w2、w3、w4。
company name | w1 | w2 | w3 | w4
------------- | -------------
data0 | 99 | 13 | 1 | 26
data1 | 82 | 3 | 2 | 13
data2 | 80 | 42 | 8 | 91
data3 | 10 | 50 | 15 | 34
data4 | 20 | 12 | 71 | 17
我希望可以各別print出data1、data2、data3、data4的標準差!
還請各位幫幫忙,非常感謝,萬分感謝QAQQQQ
我願意寫一些關於統計軟體與python的相關應用回饋給這個版~
懇請大家救救可能需要壓SPSS一千次的我阿阿,拜託大家
一組單變數樣本只有一個標準差,個別觀察值沒有所謂的標準差。
你應該是指觀察值的預測誤差吧。 如果是,程式碼如下:
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
lin_model = LinearRegression()
lin_model.fit(X_train, Y_train)
y_test_predict = lin_model.predict(X_test)
rmse = (np.sqrt(mean_squared_error(Y_test, y_test_predict)))
r2 = r2_score(Y_test, y_test_predict)
# 觀察值的預測誤差
y_test_predict - Y_test