# 在pycharm中ols拟合出现nan,inf

``````import numpy as np
import pandas as pd
#载入数据
excel_path = r"Testingdata_shiyou.xlsx"
# 给列名重新命名，每一列就是一个自（因）变量的观测值
data_df.columns = ['year', 'I', 'P', 'A', 'Te', 'Ts', 'Td', 'Tc']
# 量纲恢复

# 数据标准化
def normalize(data):
"""对因变量作标准化变换，标准化因子是标准差"""
return (data - data.mean()) / data.std()
#%%
import statsmodels.api as sm
X = np.log(data_df.iloc[:, 2:])
'''
用value值来代替nan 或inf
'''
return y

y = np.log(data_df.iloc[:, 1])
ols_model = sm.OLS(y,X).fit()
print(ols_model.summary())
``````

``````                            OLS Regression Results
==============================================================================
Dep. Variable:                      I   R-squared:                       1.000
Method:                 Least Squares   F-statistic:                       nan
Date:                Wed, 13 Apr 2022   Prob (F-statistic):                nan
Time:                        16:29:49   Log-Likelihood:                 148.10
No. Observations:                   5   AIC:                            -286.2
Df Residuals:                       0   BIC:                            -288.2
Df Model:                           4
Covariance Type:            nonrobust
==============================================================================
coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const         -0.0678        inf         -0        nan         nan         nan
P              0.9989        inf          0        nan         nan         nan
A              0.9892        inf          0        nan         nan         nan
Te             0.9672        inf          0        nan         nan         nan
Ts            -0.2405        inf         -0        nan         nan         nan
Td             0.0003        inf          0        nan         nan         nan
Tc             0.9808        inf          0        nan         nan         nan
==============================================================================
Omnibus:                          nan   Durbin-Watson:                   0.035
Prob(Omnibus):                    nan   Jarque-Bera (JB):                0.362
Skew:                          -0.201   Prob(JB):                        0.834
Kurtosis:                       1.745   Cond. No.                         631.
==============================================================================

Notes:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
[2] The input rank is higher than the number of observations.

``````

• 写回答

#### 4条回答默认 最新

• 歇歇 2022-04-13 21:49
关注

NaN：not a number
不是一个数字
每个变量都Print一下“变量名称”+变量值，看看哪个变量不是数字，这样做还可以看出程序执行到哪步，哪里有问题。
这么几个变量，很快就能排查出问题。
如果用这个方法解决了问题，望采纳。

本回答被题主选为最佳回答 , 对您是否有帮助呢?
评论

#### 问题事件

• 系统已结题 4月28日
• 已采纳回答 4月20日
• 赞助了问题酬金5元 4月13日
• 创建了问题 4月13日

#### 悬赏问题

• ¥50 labview采集不了数据
• ¥15 请上面代码做什么处理或什么混淆
• ¥15 英雄联盟自定义房间置顶
• ¥15 W5500网线插上无反应
• ¥15 如何用字典的Key，显示在WPF的xaml中
• ¥15 weautomate读取Excel表格信息然后填写到网页一直报错，如何解决？
• ¥15 C#如何在Webview2中获取网页验证码
• ¥15 esp32烧录失败，具体情况在图片上
• ¥15 selenium安装报错
• ¥15 在node.js中无法安装yarn