小编spl*_*ter的帖子

R中的多项logit:mlogit与nnet

我想运行中的R多项式Logit并使用了两个库,nnet并且mlogit,其产生不同的结果和报告不同类型的统计数据.我的问题是:

  1. 什么是系数和报告标准误差之间discrepency的来源nnet和那些报道mlogit

  2. 我想用Latex文件将结果报告给文件stargazer.这样做时,存在一个有问题的权衡:

    • 如果我使用mlogit从那时开始的结果,我得到了我想要的统计数据,例如psuedo R平方,但输出是长格式的(见下面的例子).

    • 如果我使用nnet那时的结果,格式是预期的,但它报告我不感兴趣的统计数据,如AIC,但不包括,例如,psuedo R平方.

    我想在我使用时mlogit的格式化中报告统计数据.nnetstargazer

这是一个可重复的示例,有三种选择:

library(mlogit)

df = data.frame(c(0,1,1,2,0,1,0), c(1,6,7,4,2,2,1), c(683,276,756,487,776,100,982))
colnames(df) <- c('y', 'col1', 'col2')
mydata = df

mldata <- mlogit.data(mydata, choice="y", shape="wide")
mlogit.model1 <- mlogit(y ~ 1| col1+col2, data=mldata)
Run Code Online (Sandbox Code Playgroud)

编译时的tex输出是我所说的"长格式",我认为这是不希望的:

在此输入图像描述

现在,使用nnet:

library(nnet)
mlogit.model2 = multinom(y ~ 1 + col1+col2, data=mydata)
stargazer(mlogit.model2)
Run Code Online (Sandbox Code Playgroud)

给出tex输出:

在此输入图像描述

这是我想要的"宽"格式.注意不同的系数和标准误差.

r multinomial stargazer mlogit non-linear-regression

10
推荐指数
2
解决办法
4161
查看次数

如何在Jupyter Notebook中编写Matlab函数?

概观

我在Jupyter Notebook中使用Matlab内核.我想在笔记本中编写一个函数,而不是引用另一个.m文件中保存的函数.问题是,当我尝试这样做时,我收到错误:

错误:在此上下文中不允许使用函数定义.

视觉示例:

在新的笔记本中,它看起来如下图:

在此输入图像描述

现在,如果我创建一个新.m文件,它确实有效:

在此输入图像描述

然后通过笔记本调用then函数:

在此输入图像描述

但这很不方便.有没有办法直接在Jupyter Notebook中定义函数?

我的软件

  • Matlab 2017b
  • Windows 10
  • 跑在镀铬物的Jupyter
  • Jupyter通过anaconda安装

matlab function ipython jupyter-notebook

9
推荐指数
1
解决办法
3019
查看次数

在python中确定变量的类型是NoneType

我想检查变量是否属于该NoneType类型.对于其他类型,我们可以做以下事情:

    type([])==list
Run Code Online (Sandbox Code Playgroud)

但是NoneType这种简单的方法是不可能的.也就是说,我们不能说type(None)==NoneType.还有另一种方法吗?为什么有些类型而不是其他类型可能?谢谢.

python types python-3.x nonetype

8
推荐指数
2
解决办法
2万
查看次数

使用 pip 为 Python 3 安装 rpy2

我正在尝试rpy2在 Windows 7 上安装python 3的包。所以我只是在命令行中输入 pip install rpy2 。但是,由于我不明白的原因,它失败了,有人可以解决这个问题吗?它在命令行中返回以下内容:

    Collecting rpy2
    Using cached rpy2-2.8.2.tar.gz
    Complete output from command python setup.py egg_info:
    Warning: Tried to guess R's HOME but no command <R> in the PATH.
    _______________________________
    Command "python setup.py egg_info" failed with error code 1 in C:\Users\...\AppData\Local\Temp\pip-build-14jn4kdx\rpy2\
Run Code Online (Sandbox Code Playgroud)

r pip rpy2 python-3.x

7
推荐指数
2
解决办法
2万
查看次数

在pandas中使用groupby进行布尔运算

我想以pandas.groupby特定的方式使用.给定一个数据帧有两个布尔列(叫他们col1col2)和ID列,我想通过以下方式添加一列:

对于每个条目,if(col2为True)和(col1对于具有相同id的任何条目为True),则指定True.否则为假.

我举了一个简单的例子:

df = pd.DataFrame([[0,1,1,2,2,3,3],[False, False, False, False, False, False, True],[False, True, False, False, True ,True, False]]).transpose()
df.columns = ['id', 'col1', 'col2']
Run Code Online (Sandbox Code Playgroud)

给出以下内容DataFrame:

     id   col1   col2
0    0   False   False
1    1   False   True
2    1   False   False
3    2   False   False
4    2   False   True
5    3   False   True
6    3   True    False
Run Code Online (Sandbox Code Playgroud)

根据上述规则,应添加以下列:

0    False
1    False
2    False
3    False
4    False
5     True …
Run Code Online (Sandbox Code Playgroud)

python dataframe python-3.x pandas pandas-groupby

6
推荐指数
2
解决办法
2810
查看次数

使用R中的xtable写入文件

我正在使用它xtable来生成tex数据帧的输出R.3.3.有没有办法将输出写入文件?当我使用它时,我只能tex在我的R控制台中获取代码.

file-io r tex dataframe xtable

6
推荐指数
1
解决办法
2401
查看次数

pandas用groupby滚动最大值

我有一个问题,让rollingPandas 的功能做我想做的.我希望每个人都能计算到目前为止的最大值.这是一个例子:

df = pd.DataFrame([[1,3], [1,6], [1,3], [2,2], [2,1]], columns=['id', 'value'])
Run Code Online (Sandbox Code Playgroud)

好像

   id  value
0   1      3
1   1      6
2   1      3
3   2      2
4   2      1
Run Code Online (Sandbox Code Playgroud)

现在我希望获得以下DataFrame:

   id  value
0   1      3
1   1      6
2   1      6
3   2      2
4   2      2
Run Code Online (Sandbox Code Playgroud)

问题是,当我这样做

df.groupby('id')['value'].rolling(1).max()
Run Code Online (Sandbox Code Playgroud)

我得到了相同的DataFrame.而当我这样做

df.groupby('id')['value'].rolling(3).max()
Run Code Online (Sandbox Code Playgroud)

我得到了一个N​​ans的DataFrame.有人可以解释如何正确使用rolling或其他一些Pandas函数来获取我想要的DataFrame吗?

python group-by dataframe python-3.x pandas

6
推荐指数
1
解决办法
2352
查看次数

更改悬停在等值线图上的等值线图时出现的内容的属性

我在Python 3.6.3中使用plotly,我正在尝试像这里一样做一个Choropleth地图.我想改变悬停在地图上方时出现的属性.也就是说,例如,如果我们考虑加利福尼亚的第一张地图和悬停,它看起来像:

在此输入图像描述

我想更改显示的内容的字体大小和框的大小.有没有办法访问这些?

以下是生成它的代码:

import plotly.plotly as py
import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/2011_us_ag_exports.csv')

for col in df.columns:
    df[col] = df[col].astype(str)

scl = [[0.0, 'rgb(242,240,247)'],[0.2, 'rgb(218,218,235)'],[0.4, 'rgb(188,189,220)'],\
            [0.6, 'rgb(158,154,200)'],[0.8, 'rgb(117,107,177)'],[1.0, 'rgb(84,39,143)']]

df['text'] = df['state'] + '<br>' +\
    'Beef '+df['beef']+' Dairy '+df['dairy']+'<br>'+\
    'Fruits '+df['total fruits']+' Veggies ' + df['total veggies']+'<br>'+\
    'Wheat '+df['wheat']+' Corn '+df['corn']

data = [ dict(
        type='choropleth',
        colorscale = scl,
        autocolorscale = False,
        locations = df['code'],
        z = df['total exports'].astype(float),
        locationmode = 'USA-states',
        text …
Run Code Online (Sandbox Code Playgroud)

hover python-3.x plotly choropleth

6
推荐指数
1
解决办法
363
查看次数

高效地使用Numpy将函数值分配给数组

我对寻找使用Numpy在Python3.6中进行简单操作的最快方法感兴趣。我希望创建一个函数,并从给定的数组到函数值的数组。这是使用以下代码的简化代码map

import numpy as np
def func(x):
    return x**2
xRange = np.arange(0,1,0.01)
arr_func = np.array(list(map(func, xRange)))
Run Code Online (Sandbox Code Playgroud)

但是,由于我使用复杂的函数运行它并使用大型数组,因此运行时速度对我来说非常重要。有没有已知的更快方法?

编辑我的问题与这一问题不同,因为我要问的是从函数而不是生成器进行赋值。

python arrays numpy python-3.x

5
推荐指数
1
解决办法
1005
查看次数

在 Pandas 中使用 multiIndexing 时显示所有索引值

我希望在查看我的 DataFrame 时,我将看到 multiIndex 的所有值,包括当后续行对其中一个级别具有相同的索引时。下面是一个例子:

arrays = [['20', '50', '20', '20'],['N/A', 'N/A', '10', '30']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['Jim', 'Betty'])
pd.DataFrame([np.random.rand(1)]*4,index=index)
Run Code Online (Sandbox Code Playgroud)

输出是:

                                0
Jim         Betty           
20          N/A          0.954973
50          N/A          0.954973
20          10           0.954973
            30           0.954973
Run Code Online (Sandbox Code Playgroud)

我想在西南角也有一个 20。也就是说,我希望我的 DataFrame 是:

                                0
Jim         Betty           
20          N/A          0.954973
50          N/A          0.954973
20          10           0.954973
20          30           0.954973
Run Code Online (Sandbox Code Playgroud)

Pandas 有能力做到这一点吗?

python multi-index python-3.x pandas

4
推荐指数
1
解决办法
1032
查看次数